<?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>190555</bug_id>
          
          <creation_ts>2018-10-13 13:38:12 -0700</creation_ts>
          <short_desc>[WHLSL] Migrated WebGPUShadingLanguageRI to the W3C</short_desc>
          <delta_ts>2018-10-15 12:20:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>justin_fan</cc>
    
    <cc>realdawei</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1468785</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 13:38:12 -0700</bug_when>
    <thetext>[WHLSL] Migrated WebGPUShadingLanguageRI to the W3C</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468787</commentid>
    <comment_count>1</comment_count>
      <attachid>352257</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 13:44:03 -0700</bug_when>
    <thetext>Created attachment 352257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469036</commentid>
    <comment_count>2</comment_count>
      <attachid>352257</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-13 23:31:10 -0700</bug_when>
    <thetext>Comment on attachment 352257
Patch

Rejecting attachment 352257 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 352257, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
geRI/Program.js
	D	Tools/WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js
	D	Tools/WebGPUShadingLanguageRI/PropertyAccessExpression.js
	D	Tools/WebGPUShadingLanguageRI/PropertyResolver.js
	D	Tools/WebGPUShadingLanguageRI/PtrType.js
	D	Tools/WebGPUShadingLanguageRI/ReadModifyWriteExpression.js
	D	Tools/WebGPUShadingLanguageRI/RecursionChecker.js
	D	Tools/WebGPUShadingLanguageRI/RecursiveTypeChecker.js
	D	Tools/WebGPUShadingLanguageRI/ReferenceType.js
	D	Tools/WebGPUShadingLanguageRI/ResolveNames.js
	D	Tools/WebGPUShadingLanguageRI/ResolveOverloadImpl.js
	D	Tools/WebGPUShadingLanguageRI/ResolveProperties.js
	D	Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js
	D	Tools/WebGPUShadingLanguageRI/ResourceSemantic.js
	D	Tools/WebGPUShadingLanguageRI/Return.js
	D	Tools/WebGPUShadingLanguageRI/ReturnChecker.js
	D	Tools/WebGPUShadingLanguageRI/ReturnException.js
	D	Tools/WebGPUShadingLanguageRI/Rewriter.js
	D	Tools/WebGPUShadingLanguageRI/SPIR-V.js
	D	Tools/WebGPUShadingLanguageRI/SPIRV.html
	D	Tools/WebGPUShadingLanguageRI/SPIRVCodegen.js
	D	Tools/WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js
	D	Tools/WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js
	D	Tools/WebGPUShadingLanguageRI/Sampler.js
	D	Tools/WebGPUShadingLanguageRI/Semantic.js
	D	Tools/WebGPUShadingLanguageRI/SpecializationConstantSemantic.js
	D	Tools/WebGPUShadingLanguageRI/StageInOutSemantic.js
	D	Tools/WebGPUShadingLanguageRI/StandardLibrary.js
	D	Tools/WebGPUShadingLanguageRI/StatementCloner.js
	D	Tools/WebGPUShadingLanguageRI/StructLayoutBuilder.js
	D	Tools/WebGPUShadingLanguageRI/StructType.js
	D	Tools/WebGPUShadingLanguageRI/SwitchCase.js
	D	Tools/WebGPUShadingLanguageRI/SwitchStatement.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeArrayOperatorLength.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeCopyConstructorOperator.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js
	D	Tools/WebGPUShadingLanguageRI/TernaryExpression.js
	D	Tools/WebGPUShadingLanguageRI/Test.html
	D	Tools/WebGPUShadingLanguageRI/Test.js
	D	Tools/WebGPUShadingLanguageRI/Texture.js
	D	Tools/WebGPUShadingLanguageRI/TextureOperations.js
	D	Tools/WebGPUShadingLanguageRI/TrapStatement.js
	D	Tools/WebGPUShadingLanguageRI/Type.js
	D	Tools/WebGPUShadingLanguageRI/TypeDef.js
	D	Tools/WebGPUShadingLanguageRI/TypeDefResolver.js
	D	Tools/WebGPUShadingLanguageRI/TypeOverloadResolutionFailure.js
	D	Tools/WebGPUShadingLanguageRI/TypeRef.js
	D	Tools/WebGPUShadingLanguageRI/TypedValue.js
	D	Tools/WebGPUShadingLanguageRI/UintLiteral.js
	D	Tools/WebGPUShadingLanguageRI/UintLiteralType.js
	D	Tools/WebGPUShadingLanguageRI/UnificationContext.js
	D	Tools/WebGPUShadingLanguageRI/UnreachableCodeChecker.js
	D	Tools/WebGPUShadingLanguageRI/Value.js
	D	Tools/WebGPUShadingLanguageRI/VariableDecl.js
	D	Tools/WebGPUShadingLanguageRI/VariableRef.js
	D	Tools/WebGPUShadingLanguageRI/VectorType.js
	D	Tools/WebGPUShadingLanguageRI/VisitingSet.js
	D	Tools/WebGPUShadingLanguageRI/Visitor.js
	D	Tools/WebGPUShadingLanguageRI/WLexicalError.js
	D	Tools/WebGPUShadingLanguageRI/WSyntaxError.js
	D	Tools/WebGPUShadingLanguageRI/WTrapError.js
	D	Tools/WebGPUShadingLanguageRI/WTypeError.js
	D	Tools/WebGPUShadingLanguageRI/WhileLoop.js
	D	Tools/WebGPUShadingLanguageRI/WrapChecker.js
	D	Tools/WebGPUShadingLanguageRI/index.html
	D	Tools/WebGPUShadingLanguageRI/spirv.core.grammar.json
	D	Tools/WebGPUShadingLanguageRI/wsl-tests.yaml
	M	Tools/ChangeLog
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/AppIcon.appiconset/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Base.lproj/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL ToyTests/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/
	D+	Tools/WebGPUShadingLanguageRI/Metal/
	D+	Tools/WebGPUShadingLanguageRI/

ERROR from SVN:
A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with output:
Commits are currently disabled while we update infrastructure.
W: 180c8c41a3d8dadcec578204e33934eebc985135 and refs/remotes/origin/master differ, using rebase:
:040000 040000 d8067588fee8b9358f1a4051d0219295c1ad32cf 9c8b0ceaa22b2c82d26c613ffc9416cb23f803a7 M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
Current branch master is up to date.

Full output: https://webkit-queues.webkit.org/results/9565361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469136</commentid>
    <comment_count>3</comment_count>
      <attachid>352257</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-14 22:03:38 -0700</bug_when>
    <thetext>Comment on attachment 352257
Patch

Rejecting attachment 352257 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 352257, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
geRI/Program.js
	D	Tools/WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js
	D	Tools/WebGPUShadingLanguageRI/PropertyAccessExpression.js
	D	Tools/WebGPUShadingLanguageRI/PropertyResolver.js
	D	Tools/WebGPUShadingLanguageRI/PtrType.js
	D	Tools/WebGPUShadingLanguageRI/ReadModifyWriteExpression.js
	D	Tools/WebGPUShadingLanguageRI/RecursionChecker.js
	D	Tools/WebGPUShadingLanguageRI/RecursiveTypeChecker.js
	D	Tools/WebGPUShadingLanguageRI/ReferenceType.js
	D	Tools/WebGPUShadingLanguageRI/ResolveNames.js
	D	Tools/WebGPUShadingLanguageRI/ResolveOverloadImpl.js
	D	Tools/WebGPUShadingLanguageRI/ResolveProperties.js
	D	Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js
	D	Tools/WebGPUShadingLanguageRI/ResourceSemantic.js
	D	Tools/WebGPUShadingLanguageRI/Return.js
	D	Tools/WebGPUShadingLanguageRI/ReturnChecker.js
	D	Tools/WebGPUShadingLanguageRI/ReturnException.js
	D	Tools/WebGPUShadingLanguageRI/Rewriter.js
	D	Tools/WebGPUShadingLanguageRI/SPIR-V.js
	D	Tools/WebGPUShadingLanguageRI/SPIRV.html
	D	Tools/WebGPUShadingLanguageRI/SPIRVCodegen.js
	D	Tools/WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js
	D	Tools/WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js
	D	Tools/WebGPUShadingLanguageRI/Sampler.js
	D	Tools/WebGPUShadingLanguageRI/Semantic.js
	D	Tools/WebGPUShadingLanguageRI/SpecializationConstantSemantic.js
	D	Tools/WebGPUShadingLanguageRI/StageInOutSemantic.js
	D	Tools/WebGPUShadingLanguageRI/StandardLibrary.js
	D	Tools/WebGPUShadingLanguageRI/StatementCloner.js
	D	Tools/WebGPUShadingLanguageRI/StructLayoutBuilder.js
	D	Tools/WebGPUShadingLanguageRI/StructType.js
	D	Tools/WebGPUShadingLanguageRI/SwitchCase.js
	D	Tools/WebGPUShadingLanguageRI/SwitchStatement.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeArrayOperatorLength.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeCopyConstructorOperator.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js
	D	Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js
	D	Tools/WebGPUShadingLanguageRI/TernaryExpression.js
	D	Tools/WebGPUShadingLanguageRI/Test.html
	D	Tools/WebGPUShadingLanguageRI/Test.js
	D	Tools/WebGPUShadingLanguageRI/Texture.js
	D	Tools/WebGPUShadingLanguageRI/TextureOperations.js
	D	Tools/WebGPUShadingLanguageRI/TrapStatement.js
	D	Tools/WebGPUShadingLanguageRI/Type.js
	D	Tools/WebGPUShadingLanguageRI/TypeDef.js
	D	Tools/WebGPUShadingLanguageRI/TypeDefResolver.js
	D	Tools/WebGPUShadingLanguageRI/TypeOverloadResolutionFailure.js
	D	Tools/WebGPUShadingLanguageRI/TypeRef.js
	D	Tools/WebGPUShadingLanguageRI/TypedValue.js
	D	Tools/WebGPUShadingLanguageRI/UintLiteral.js
	D	Tools/WebGPUShadingLanguageRI/UintLiteralType.js
	D	Tools/WebGPUShadingLanguageRI/UnificationContext.js
	D	Tools/WebGPUShadingLanguageRI/UnreachableCodeChecker.js
	D	Tools/WebGPUShadingLanguageRI/Value.js
	D	Tools/WebGPUShadingLanguageRI/VariableDecl.js
	D	Tools/WebGPUShadingLanguageRI/VariableRef.js
	D	Tools/WebGPUShadingLanguageRI/VectorType.js
	D	Tools/WebGPUShadingLanguageRI/VisitingSet.js
	D	Tools/WebGPUShadingLanguageRI/Visitor.js
	D	Tools/WebGPUShadingLanguageRI/WLexicalError.js
	D	Tools/WebGPUShadingLanguageRI/WSyntaxError.js
	D	Tools/WebGPUShadingLanguageRI/WTrapError.js
	D	Tools/WebGPUShadingLanguageRI/WTypeError.js
	D	Tools/WebGPUShadingLanguageRI/WhileLoop.js
	D	Tools/WebGPUShadingLanguageRI/WrapChecker.js
	D	Tools/WebGPUShadingLanguageRI/index.html
	D	Tools/WebGPUShadingLanguageRI/spirv.core.grammar.json
	D	Tools/WebGPUShadingLanguageRI/wsl-tests.yaml
	M	Tools/ChangeLog
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/AppIcon.appiconset/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Base.lproj/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL ToyTests/
	D+	Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/
	D+	Tools/WebGPUShadingLanguageRI/Metal/
	D+	Tools/WebGPUShadingLanguageRI/

ERROR from SVN:
A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with output:
Commits are currently disabled while we update infrastructure.
W: 02253e88c95fe79e51e338ec88b3a20170a8d336 and refs/remotes/origin/master differ, using rebase:
:040000 040000 4a6979eb607f5bf01aef87fc49ebf5f6c7482cc8 9c8b0ceaa22b2c82d26c613ffc9416cb23f803a7 M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
Current branch master is up to date.

Full output: https://webkit-queues.webkit.org/results/9576762</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469252</commentid>
    <comment_count>4</comment_count>
      <attachid>352257</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-15 08:55:21 -0700</bug_when>
    <thetext>Comment on attachment 352257
Patch

Clearing flags on attachment: 352257

Committed r237115: &lt;https://trac.webkit.org/changeset/237115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469253</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-15 08:55:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469254</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-15 08:56:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/45272370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469327</commentid>
    <comment_count>7</comment_count>
    <who name="Dawei Fenton (:realdawei)">realdawei</who>
    <bug_when>2018-10-15 10:51:22 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #4)
&gt; Comment on attachment 352257 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 352257
&gt; 
&gt; Committed r237115: &lt;https://trac.webkit.org/changeset/237115&gt;

Seeing this error on the JSC bots:

https://build.webkit.org/builders/Apple%20High%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/2709/steps/webkit-32bit-jsc-test/logs/stdio

Tools/Scripts/run-jsc-stress-tests:1462:in `realpath&apos;: No such file or directory @ realpath_rec - /Volumes/Data/slave/highsierra-32bitJSC-debug/build/Tools/WebGPUShadingLanguageRI (Errno::ENOENT)
	from Tools/Scripts/run-jsc-stress-tests:1462:in `realpath&apos;
	from Tools/Scripts/run-jsc-stress-tests:1462:in `prepareCollection&apos;
	from Tools/Scripts/run-jsc-stress-tests:1560:in `handleCollectionDirectory&apos;
	from Tools/Scripts/run-jsc-stress-tests:1582:in `handleCollection&apos;
	from Tools/Scripts/run-jsc-stress-tests:1693:in `block in prepareBundle&apos;
	from Tools/Scripts/run-jsc-stress-tests:1691:in `each&apos;
	from Tools/Scripts/run-jsc-stress-tests:1691:in `prepareBundle&apos;
	from Tools/Scripts/run-jsc-stress-tests:2060:in `runNormal&apos;
	from Tools/Scripts/run-jsc-stress-tests:2103:in `&lt;main&gt;&apos;

also:
https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/1599/steps/jscore-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469373</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-10-15 12:20:29 -0700</bug_when>
    <thetext>(In reply to Dawei Fenton (:realdawei) from comment #7)
&gt; (In reply to WebKit Commit Bot from comment #4)
&gt; &gt; Comment on attachment 352257 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 352257
&gt; &gt; 
&gt; &gt; Committed r237115: &lt;https://trac.webkit.org/changeset/237115&gt;
&gt; 
&gt; Seeing this error on the JSC bots:
&gt; 
&gt; https://build.webkit.org/builders/Apple%20High%20Sierra%2032-
&gt; bit%20JSC%20%28BuildAndTest%29/builds/2709/steps/webkit-32bit-jsc-test/logs/
&gt; stdio
&gt; 
&gt; Tools/Scripts/run-jsc-stress-tests:1462:in `realpath&apos;: No such file or
&gt; directory @ realpath_rec -
&gt; /Volumes/Data/slave/highsierra-32bitJSC-debug/build/Tools/
&gt; WebGPUShadingLanguageRI (Errno::ENOENT)
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1462:in `realpath&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1462:in `prepareCollection&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1560:in `handleCollectionDirectory&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1582:in `handleCollection&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1693:in `block in prepareBundle&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1691:in `each&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:1691:in `prepareBundle&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:2060:in `runNormal&apos;
&gt; 	from Tools/Scripts/run-jsc-stress-tests:2103:in `&lt;main&gt;&apos;
&gt; 
&gt; also:
&gt; https://build.webkit.org/builders/
&gt; Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/1599/steps/jscore-
&gt; test/logs/stdio

I removed WebGPUShadingLanguageRI tests from run-jsc-stress-tests script in https://trac.webkit.org/r237130</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352257</attachid>
            <date>2018-10-13 13:44:03 -0700</date>
            <delta_ts>2018-10-15 08:55:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>file.txt</filename>
            <type>text/plain</type>
            <size>2062744</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGE1MWY5MWFiNTY1NGE1NTZjOGU1NDAwNmM1ZjNhNDg0YTg3YzM1ZTMKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDEz
IDEzOjQxOjU4IDIwMTggLTA3MDAKCiAgICBbV0hMU0xdIE1pZ3JhdGVkIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJIHRvIHRoZSBXM0MKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTA1NTUKCiAgICBVbnJldmlld2VkLgoKICAgIE1pZ3JhdGVkIHRvIGh0dHBzOi8v
Z2l0aHViLmNvbS9ncHV3ZWIvV0hMU0wvdHJlZS9tYXN0ZXIvU291cmNlCgogICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BZGRyZXNzU3BhY2UuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0FsbC5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Bbm9ueW1vdXNWYXJpYWJsZS5qczogUmVtb3ZlZC4KICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQXJyYXlSZWZUeXBlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BcnJheVR5cGUuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Fzc2lnbm1lbnQuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9CbG9jay5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Qm9vbExpdGVyYWwuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Jy
ZWFrLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdEluU2Vt
YW50aWMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5N
YXRyaXhHZXR0ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1
aWx0aW5NYXRyaXhTZXR0ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0J1aWx0aW5WZWN0b3JHZXR0ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JTZXR0ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9DaGVjay5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Q2hlY2tMaXRlcmFsVHlwZXMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NoZWNrTG9vcHMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NoZWNrTmF0aXZlRnVuY1N0YWdlcy5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2hlY2tSZWN1cnNpb24uanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NoZWNrUmVjdXJzaXZlVHlwZXMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NoZWNrUmV0dXJucy5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhBcmd1bWVudHMuanM6IFJlbW92ZWQuCiAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrVW5yZWFjaGFibGVDb2RlLmpzOiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1dyYXBwZWQuanM6IFJlbW92ZWQu
CiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanM6IFJlbW92ZWQuCiAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nsb25lUHJvZ3JhbS5qczogUmVtb3ZlZC4KICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29tbWFFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgogICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanM6IFJlbW92ZWQuCiAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnRpbnVlLmpzOiBSZW1vdmVkLgogICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWwuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBl
LmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9EZXJlZmVyZW5jZUV4
cHJlc3Npb24uanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0RvV2hp
bGVMb29wLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Eb3RFeHBy
ZXNzaW9uLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQXJyYXlS
ZWYuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VCdWZmZXIuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VCdWZmZXJCdWlsZGVyLmpz
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzOiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FbnVtTGl0ZXJhbC5qczogUmVtb3ZlZC4K
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRW51bU1lbWJlci5qczogUmVtb3ZlZC4KICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRW51bVR5cGUuanM6IFJlbW92ZWQuCiAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRpb25Db21tb24uanM6IFJlbW92ZWQuCiAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qczogUmVtb3ZlZC4KICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbi5qczogUmVtb3ZlZC4KICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qczogUmVtb3ZlZC4KICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRXh0ZXJuYWxPcmlnaW4uanM6IFJlbW92ZWQuCiAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZpZWxkLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GaW5kSGlnaFpvbWJpZXMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzOiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanM6IFJlbW92ZWQu
CiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUuanM6IFJlbW92
ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZvbGRDb25zdGV4cHJzLmpzOiBSZW1v
dmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Gb3JMb29wLmpzOiBSZW1vdmVkLgog
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzOiBSZW1vdmVkLgogICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jQXR0cmlidXRlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qczogUmVtb3ZlZC4KICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY1BhcmFtZXRlci5qczogUmVtb3ZlZC4KICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY3Rpb25MaWtlQmxvY2suanM6IFJlbW92ZWQuCiAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0hpZ2hab21iaWVGaW5kZXIuanM6IFJlbW92ZWQu
CiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lkZW50aXR5RXhwcmVzc2lvbi5qczogUmVt
b3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSWZTdGF0ZW1lbnQuanM6IFJlbW92
ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZGV4RXhwcmVzc2lvbi5qczogUmVt
b3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qczogUmVtb3Zl
ZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qczogUmVtb3ZlZC4KICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50TGl0ZXJhbC5qczogUmVtb3ZlZC4KICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50TGl0ZXJhbFR5cGUuanM6IFJlbW92ZWQuCiAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanM6IFJlbW92ZWQuCiAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xheW91dEJ1ZmZlcnMuanM6IFJlbW92ZWQuCiAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xleGVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9MZXhlclRva2VuLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9MaXRlcmFsVHlwZUNoZWNrZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0xvZ2ljYWxFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgogICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Mb2dpY2FsTm90LmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Mb29wQ2hlY2tlci5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qczogUmVtb3ZlZC4KICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWFrZVB0ckV4cHJlc3Npb24uanM6IFJlbW92ZWQuCiAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUuanM6IFJlbW92ZWQuCiAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEJhY2tlbmQuanM6IFJlbW92ZWQuCiAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENvZGVnZW5BbGwuanM6IFJlbW92
ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENvbXBpbGVSZXN1bHQu
anM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENvbnN0
ZXhwckVtaXR0ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL01TTEZ1bmN0aW9uRGVjbGFyYXRpb24uanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL01TTEZ1bmN0aW9uRGVmaW5pdGlvbi5qczogUmVtb3ZlZC4KICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFy
YXRpb24uanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01T
TEluc2VydFRyYXBQYXJhbWV0ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL01TTE5hbWVNYW5nbGVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xOYXRpdmVGdW5jdGlvbkNhbGwuanM6IFJlbW92ZWQuCiAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTFN0YXRlbWVudEVtaXR0ZXIuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTFR5cGVBdHRy
aWJ1dGVzLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9N
U0xUeXBlQXR0cmlidXRlc01hcC5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTWV0YWwvTVNMVHlwZVVuaWZpZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL1R5cGVPZi5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvLmdpdGlnbm9yZTogUmVtb3ZlZC4KICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9BcHBEZWxlZ2F0
ZS5oOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL0FwcERlbGVnYXRlLm06IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBw
aWNvbnNldC9Db250ZW50cy5qc29uOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0Fzc2V0cy54Y2Fzc2V0cy9Db250ZW50cy5qc29u
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9Db3JlL0Jhc2UubHByb2ovTWFpbi5zdG9yeWJvYXJkOiBSZW1vdmVkLgogICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVSZXN1bHQuaDog
UmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9Db21waWxlUmVzdWx0Lm06IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIuaDogUmVtb3ZlZC4KICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Db21waWxlci5tOiBS
ZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9D
b3JlL0N1c3RvbU1ldGFsVmlldy5oOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0N1c3RvbU1ldGFsVmlldy5tOiBSZW1vdmVkLgog
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0RlbW8g
c2hhZGVycy9EZWZhdWx0LndobHNsOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0RlbW8gc2hhZGVycy9KdWxpYS53aGxzbDogUmVt
b3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29y
ZS9EZW1vIHNoYWRlcnMvTWFuZGVsYnJvdC53aGxzbDogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9JbmZvLnBsaXN0OiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Jl
bmRlcmVyL09mZnNjcmVlblJlbmRlcmVyLmg6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT2Zmc2NyZWVuUmVuZGVy
ZXIubTogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wg
VGVzdHMvQ29yZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLmg6IFJlbW92ZWQuCiAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT25z
Y3JlZW5SZW5kZXJlci5tOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9N
ZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL1JlbmRlcmVyLmg6IFJlbW92ZWQuCiAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIv
UmVuZGVyZXIubTogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9UZXN0Q2FsbEFyZ3VtZW50Lmg6IFJlbW92ZWQuCiAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdENhbGxBcmd1bWVu
dC5tOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5oOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5tOiBSZW1v
dmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3Jl
L1Rlc3RGYW1pbHkuaDogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5Lm06IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseVJ1bm5lci5o
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9Db3JlL1Rlc3RGYW1pbHlSdW5uZXIubTogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9WaWV3Q29udHJvbGxlci5oOiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Zp
ZXdDb250cm9sbGVyLm06IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL1dITFNMIFRlc3RzL0NvcmUvV0hMU0wuZW50aXRsZW1lbnRzOiBSZW1vdmVkLgogICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL19TaGFyZWRNZXRh
bC50eHQ6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL0NvcmUvbWFpbi5tOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9XSExTTCBUb3lUZXN0cy9JbmZvLnBsaXN0OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0cy9XSExTTF9Ub3lUZXN0
cy5tOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XaGxzbFRv
TXNsLmh0bWw6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1do
bHNsVG9Nc2wuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVD
b250ZXh0LmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmlu
ZGVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2
ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMu
anM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanM6IFJlbW92ZWQu
CiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIu
anM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL051bGxMaXRlcmFsLmpz
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OdWxsVHlwZS5qczogUmVt
b3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4ZXIu
anM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQXJyYXlS
ZWZMZW5ndGguanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09yaWdp
bktpbmQuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL092ZXJsb2Fk
UmVzb2x1dGlvbkZhaWx1cmUuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1BhcnNlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVw
YXJlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpz
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtV2l0aFVubmVj
ZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm9wZXJ0eVJlc29sdmVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QdHJUeXBlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgogICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZWN1cnNpb25DaGVja2VyLmpzOiBSZW1vdmVkLgog
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZWN1cnNpdmVUeXBlQ2hlY2tlci5qczogUmVt
b3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVmZXJlbmNlVHlwZS5qczogUmVt
b3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzOiBSZW1v
dmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpz
OiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlUHJvcGVydGll
cy5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVE
ZWZzLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvdXJjZVNl
bWFudGljLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXR1cm4u
anM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JldHVybkNoZWNrZXIu
anM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JldHVybkV4Y2VwdGlv
bi5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVItVi5qczogUmVtb3Zl
ZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDogUmVtb3ZlZC4KICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzOiBSZW1vdmVkLgogICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVlR5cGVBbmFseXplci5qczogUmVtb3ZlZC4K
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZWYXJpYWJsZUFuYWx5emVyLmpzOiBS
ZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzOiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TZW1hbnRpYy5qczogUmVtb3ZlZC4KICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGlj
LmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFnZUluT3V0U2Vt
YW50aWMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJk
TGlicmFyeS5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVt
ZW50Q2xvbmVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1
Y3RMYXlvdXRCdWlsZGVyLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdHJ1Y3RUeXBlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
d2l0Y2hDYXNlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Td2l0
Y2hTdGF0ZW1lbnQuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5
bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanM6IFJlbW92
ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29uc3Ry
dWN0b3JPcGVyYXRvci5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanM6IFJlbW92ZWQuCiAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlcm5hcnlFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgogICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWw6IFJlbW92ZWQuCiAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1RleHR1cmUuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UcmFwU3RhdGVtZW50LmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UeXBlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlRGVmLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVm
UmVzb2x2ZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlUmVmLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UeXBlZFZhbHVlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9VaW50TGl0ZXJhbC5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VWludExpdGVyYWxUeXBlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9VbmlmaWNhdGlvbkNvbnRleHQuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1VucmVhY2hhYmxlQ29kZUNoZWNrZXIuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1ZhbHVlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9WYXJpYWJsZURlY2wuanM6IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1ZhcmlhYmxlUmVmLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9WZWN0b3JUeXBlLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9WaXNpdGluZ1NldC5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VmlzaXRvci5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV0xleGlj
YWxFcnJvci5qczogUmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1N5bnRh
eEVycm9yLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XVHJhcEVy
cm9yLmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XVHlwZUVycm9y
LmpzOiBSZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XaGlsZUxvb3AuanM6
IFJlbW92ZWQuCiAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzOiBS
ZW1vdmVkLgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOiBSZW1vdmVk
LgogICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9zcGlydi5jb3JlLmdyYW1tYXIuanNvbjog
UmVtb3ZlZC4KICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvd3NsLXRlc3RzLnlhbWw6IFJl
bW92ZWQuCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDM3ODQyZjRhNjU5Li5iNmQ3OWQxZDY0NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzNyBAQAorMjAxOC0xMC0xMyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0g
TWlncmF0ZWQgV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkgdG8gdGhlIFczQworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTU1CisKKyAgICAgICAgVW5y
ZXZpZXdlZC4KKworICAgICAgICBNaWdyYXRlZCB0byBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2Vi
L1dITFNML3RyZWUvbWFzdGVyL1NvdXJjZQorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWRkcmVzc1NwYWNlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0FsbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGxvY2F0ZUF0RW50cnlQb2ludHMuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQW5vbnltb3VzVmFyaWFibGUuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXJyYXlSZWZUeXBlLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FycmF5VHlwZS5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Bc3NpZ25tZW50LmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Jsb2NrLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Jvb2xMaXRlcmFsLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0JyZWFrLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0SW5TZW1hbnRpYy5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4R2V0
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0
aW5NYXRyaXhTZXR0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVjay5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja0xpdGVyYWxUeXBlcy5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja0xvb3BzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrTmF0aXZlRnVu
Y1N0YWdlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9D
aGVja1JlY3Vyc2lvbi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DaGVja1JlY3Vyc2l2ZVR5cGVzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NoZWNrUmV0dXJucy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1VucmVhY2hhYmxlQ29kZS5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1dyYXBw
ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tl
ci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DbG9uZVBy
b2dyYW0uanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29t
bWFFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NvbnN0ZXhwckZvbGRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Db250aW51ZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Db252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanM6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbC5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9EZXJlZmVyZW5j
ZUV4cHJlc3Npb24uanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRG9XaGlsZUxvb3AuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRG90RXhwcmVzc2lvbi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FQXJyYXlSZWYuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRUJ1ZmZlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FQnVmZmVyQnVpbGRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0VudW1MaXRlcmFsLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0VudW1NZW1iZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRW51bVR5cGUuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRXZhbHVhdGlvbkNvbW1vbi5qczogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbi5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4dGVybmFsT3JpZ2luLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZpZWxkLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZpbmRIaWdoWm9tYmllcy5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuZWRT
dHJ1Y3RPZmZzZXRHYXRoZXJlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Gb2xkQ29uc3RleHBycy5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Gb3JMb29wLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0F0dHJpYnV0ZS5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNQYXJhbWV0ZXIu
anM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY3Rpb25M
aWtlQmxvY2suanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SGlnaFpvbWJpZUZpbmRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JZGVudGl0eUV4cHJlc3Npb24uanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSWZTdGF0ZW1lbnQuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5kZXhFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JDYWxsLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludExpdGVyYWwuanM6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50TGl0ZXJhbFR5cGUuanM6IFJl
bW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qczog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXlvdXRCdWZmZXJz
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xleGVyLmpz
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xleGVyVG9rZW4u
anM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGl0ZXJhbFR5
cGVDaGVja2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0xvZ2ljYWxFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0xvZ2ljYWxOb3QuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTG9vcENoZWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYWtlUHRyRXhwcmVzc2lvbi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhUeXBlLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEJhY2tlbmQu
anM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNM
Q29kZWdlbkFsbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9NU0xDb21waWxlUmVzdWx0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENvbnN0ZXhwckVtaXR0ZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMRnVuY3Rpb25EZWNsYXJh
dGlvbi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9NU0xGdW5jdGlvbkRlZmluaXRpb24uanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24uanM6IFJl
bW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMSW5zZXJ0
VHJhcFBhcmFtZXRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9NU0xOYW1lTWFuZ2xlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xOYXRpdmVGdW5jdGlvbkNhbGwuanM6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMU3RhdGVtZW50RW1p
dHRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9NU0xUeXBlQXR0cmlidXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlQXR0cmlidXRlc01hcC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlVW5pZmllci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9UeXBlT2YuanM6
IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wg
VGVzdHMvLmdpdGlnbm9yZTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0FwcERlbGVnYXRlLmg6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9BcHBE
ZWxlZ2F0ZS5tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL1dITFNMIFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBwaWNvbnNldC9D
b250ZW50cy5qc29uOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0NvbnRlbnRzLmpzb246IFJl
bW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9CYXNlLmxwcm9qL01haW4uc3Rvcnlib2FyZDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVSZXN1
bHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL0NvbXBpbGVSZXN1bHQubTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVyLmg6IFJl
bW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9Db21waWxlci5tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ3VzdG9tTWV0YWxWaWV3Lmg6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29y
ZS9DdXN0b21NZXRhbFZpZXcubTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0RlbW8gc2hhZGVycy9EZWZhdWx0LndobHNs
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL0NvcmUvRGVtbyBzaGFkZXJzL0p1bGlhLndobHNsOiBSZW1vdmVkLgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvRGVtbyBzaGFk
ZXJzL01hbmRlbGJyb3Qud2hsc2w6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9JbmZvLnBsaXN0OiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVu
ZGVyZXIvT2Zmc2NyZWVuUmVuZGVyZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09mZnNjcmVlblJl
bmRlcmVyLm06IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLmg6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29y
ZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLm06IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9SZW5kZXJl
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvUmVuZGVyZXIubTogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJn
dW1lbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJndW1lbnQubTogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNj
cmlwdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdERlc2NyaXB0aW9uLm06IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFt
aWx5Lmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5Lm06IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5UnVubmVy
Lmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hM
U0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5UnVubmVyLm06IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9WaWV3Q29udHJvbGxl
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvVmlld0NvbnRyb2xsZXIubTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1dITFNMLmVudGl0bGVt
ZW50czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL19TaGFyZWRNZXRhbC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9tYWluLm06IFJlbW92
ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
V0hMU0wgVGVzdHMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0
cy9JbmZvLnBsaXN0OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRveVRlc3RzL1dITFNMX1RveVRlc3RzLm06IFJlbW92
ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV2hsc2xUb01zbC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1do
bHNsVG9Nc2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZUNvbnRleHQuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYW1lUmVzb2x2ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlRnVuYy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05vZGUuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qczogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OdWxsTGl0ZXJhbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OdWxsVHlwZS5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXhlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFycmF5UmVm
TGVuZ3RoLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09y
aWdpbktpbmQuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
T3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Byb2dyYW0uanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanM6IFJlbW92
ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvcGVydHlBY2Nlc3NFeHBy
ZXNzaW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
b3BlcnR5UmVzb2x2ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHRyVHlwZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JlY3Vyc2lvbkNoZWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVjdXJzaXZlVHlwZUNoZWNrZXIuanM6IFJl
bW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVmZXJlbmNlVHlwZS5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFt
ZXMuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2
ZU92ZXJsb2FkSW1wbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXNvbHZlUHJvcGVydGllcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb3VyY2VTZW1hbnRpYy5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXR1cm4uanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV0dXJuQ2hlY2tlci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXR1cm5FeGNlcHRpb24uanM6IFJlbW92
ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUi1WLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWVHlwZUFuYWx5emVy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWVmFy
aWFibGVBbmFseXplci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TYW1wbGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NlbWFudGljLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5qczogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFnZUluT3V0U2VtYW50aWMuanM6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25l
ci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0cnVjdFR5cGUuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3dpdGNoQ2FzZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Td2l0Y2hTdGF0ZW1lbnQuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanM6IFJlbW92ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUNvcHlDb25zdHJ1
Y3Rvck9wZXJhdG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlcm5hcnlFeHByZXNzaW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1RleHR1cmUuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVHJhcFN0YXRlbWVudC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpz
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanM6
IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZWRWYWx1ZS5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0ZXJh
bC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0
ZXJhbFR5cGUuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VW5pZmljYXRpb25Db250ZXh0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1VucmVhY2hhYmxlQ29kZUNoZWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFsdWUuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFyaWFibGVEZWNsLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ZhcmlhYmxlUmVmLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ZlY3RvclR5cGUuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRpbmdTZXQuanM6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XTGV4aWNhbEVycm9yLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTeW50YXhFcnJvci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XVHJhcEVycm9yLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dUeXBlRXJyb3IuanM6
IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV2hpbGVMb29wLmpz
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2Vy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvc3BpcnYuY29y
ZS5ncmFtbWFyLmpzb246IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
Ukkvd3NsLXRlc3RzLnlhbWw6IFJlbW92ZWQuCisKIDIwMTgtMTAtMTIgIEd1aWxsYXVtZSBFbW9u
dCAgPGd1aWplbW9udEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUb29sc11bd2Via2l0cHldIGZp
eCBoYW5kbGluZyBvZiBKU0NURVNUU19PUFRJT05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BZGRyZXNzU3BhY2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9BZGRyZXNzU3BhY2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQz
ZWQyNmRmNzBmLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9BZGRyZXNzU3BhY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNv
bnN0IGFkZHJlc3NTcGFjZXMgPSBbImNvbnN0YW50IiwgImRldmljZSIsICJ0aHJlYWRncm91cCIs
ICJ0aHJlYWQiXTsKLQotZnVuY3Rpb24gaXNBZGRyZXNzU3BhY2UoYWRkcmVzc1NwYWNlKQotewot
ICAgIHN3aXRjaCAoYWRkcmVzc1NwYWNlKSB7Ci0gICAgY2FzZSAiY29uc3RhbnQiOgotICAgIGNh
c2UgImRldmljZSI6Ci0gICAgY2FzZSAidGhyZWFkZ3JvdXAiOgotICAgIGNhc2UgInRocmVhZCI6
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHZhbGlkYXRlQWRkcmVzc1NwYWNlKGFkZHJlc3NTcGFj
ZSkKLXsKLSAgICBpZiAoIWlzQWRkcmVzc1NwYWNlKGFkZHJlc3NTcGFjZSkpCi0gICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIGFkZHJlc3Mgc3BhY2U6ICIgKyBhZGRyZXNzU3BhY2UpOwotfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiYTY1Y2M1ZDU1MS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQWxsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotbG9h
ZCgiTm9kZS5qcyIpOwotbG9hZCgiVHlwZS5qcyIpOwotbG9hZCgiUmVmZXJlbmNlVHlwZS5qcyIp
OwotbG9hZCgiVmFsdWUuanMiKTsKLWxvYWQoIkV4cHJlc3Npb24uanMiKTsKLWxvYWQoIlJld3Jp
dGVyLmpzIik7Ci1sb2FkKCJWaXNpdG9yLmpzIik7Ci1sb2FkKCJDcmVhdGVMaXRlcmFsLmpzIik7
Ci1sb2FkKCJDcmVhdGVMaXRlcmFsVHlwZS5qcyIpOwotbG9hZCgiUHJvcGVydHlBY2Nlc3NFeHBy
ZXNzaW9uLmpzIik7Ci1sb2FkKCJOYXRpdmVUeXBlLmpzIik7Ci1sb2FkKCJTZW1hbnRpYy5qcyIp
OwotCi1sb2FkKCJBZGRyZXNzU3BhY2UuanMiKTsKLWxvYWQoIkFsbG9jYXRlQXRFbnRyeVBvaW50
cy5qcyIpOwotbG9hZCgiQW5vbnltb3VzVmFyaWFibGUuanMiKTsKLWxvYWQoIkFycmF5UmVmVHlw
ZS5qcyIpOwotbG9hZCgiQXJyYXlUeXBlLmpzIik7Ci1sb2FkKCJBc3NpZ25tZW50LmpzIik7Ci1s
b2FkKCJBdXRvV3JhcHBlci5qcyIpOwotbG9hZCgiQmxvY2suanMiKTsKLWxvYWQoIkJvb2xMaXRl
cmFsLmpzIik7Ci1sb2FkKCJCcmVhay5qcyIpOwotbG9hZCgiQnVpbHRJblNlbWFudGljLmpzIik7
Ci1sb2FkKCJCdWlsdGluTWF0cml4R2V0dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGluTWF0cml4U2V0
dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGlu
VmVjdG9yU2V0dGVyLmpzIik7Ci1sb2FkKCJDYWxsRXhwcmVzc2lvbi5qcyIpOwotbG9hZCgiQ2Fs
bEZ1bmN0aW9uLmpzIik7Ci1sb2FkKCJDYXN0cy5qcyIpOwotbG9hZCgiQ2hlY2suanMiKTsKLWxv
YWQoIkNoZWNrTGl0ZXJhbFR5cGVzLmpzIik7Ci1sb2FkKCJDaGVja0xvb3BzLmpzIik7Ci1sb2Fk
KCJDaGVja05hdGl2ZUZ1bmNTdGFnZXMuanMiKTsKLWxvYWQoIkNoZWNrUmVjdXJzaW9uLmpzIik7
Ci1sb2FkKCJDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzIik7Ci1sb2FkKCJDaGVja1JldHVybnMuanMi
KTsKLWxvYWQoIkNoZWNrVHlwZXNXaXRoQXJndW1lbnRzLmpzIik7Ci1sb2FkKCJDaGVja1VucmVh
Y2hhYmxlQ29kZS5qcyIpOwotbG9hZCgiQ2hlY2tXcmFwcGVkLmpzIik7Ci1sb2FkKCJDaGVja2Vy
LmpzIik7Ci1sb2FkKCJDbG9uZVByb2dyYW0uanMiKTsKLWxvYWQoIkNvbW1hRXhwcmVzc2lvbi5q
cyIpOwotbG9hZCgiQ29uc3RleHByRm9sZGVyLmpzIik7Ci1sb2FkKCJDb250aW51ZS5qcyIpOwot
bG9hZCgiQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIik7Ci1sb2FkKCJEb1doaWxl
TG9vcC5qcyIpOwotbG9hZCgiRG90RXhwcmVzc2lvbi5qcyIpOwotbG9hZCgiRGVyZWZlcmVuY2VF
eHByZXNzaW9uLmpzIik7Ci1sb2FkKCJFQXJyYXlSZWYuanMiKTsKLWxvYWQoIkVCdWZmZXIuanMi
KTsKLWxvYWQoIkVCdWZmZXJCdWlsZGVyLmpzIik7Ci1sb2FkKCJFUHRyLmpzIik7Ci1sb2FkKCJF
bnVtTGl0ZXJhbC5qcyIpOwotbG9hZCgiRW51bU1lbWJlci5qcyIpOwotbG9hZCgiRW51bVR5cGUu
anMiKTsKLWxvYWQoIkV2YWx1YXRpb25Db21tb24uanMiKTsKLWxvYWQoIkV2YWx1YXRvci5qcyIp
OwotbG9hZCgiRXhwcmVzc2lvbkZpbmRlci5qcyIpOwotbG9hZCgiRXh0ZXJuYWxPcmlnaW4uanMi
KTsKLWxvYWQoIkZpZWxkLmpzIik7Ci1sb2FkKCJGaW5kSGlnaFpvbWJpZXMuanMiKTsKLWxvYWQo
IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIik7Ci1sb2FkKCJGbG9hdExpdGVyYWwu
anMiKTsKLWxvYWQoIkZsb2F0TGl0ZXJhbFR5cGUuanMiKTsKLWxvYWQoIkZvbGRDb25zdGV4cHJz
LmpzIik7Ci1sb2FkKCJGb3JMb29wLmpzIik7Ci1sb2FkKCJGdW5jLmpzIik7Ci1sb2FkKCJGdW5j
QXR0cmlidXRlLmpzIik7Ci1sb2FkKCJGdW5jRGVmLmpzIik7Ci1sb2FkKCJGdW5jTnVtVGhyZWFk
c0F0dHJpYnV0ZS5qcyIpOwotbG9hZCgiRnVuY1BhcmFtZXRlci5qcyIpOwotbG9hZCgiRnVuY3Rp
b25MaWtlQmxvY2suanMiKTsKLWxvYWQoIkhpZ2hab21iaWVGaW5kZXIuanMiKTsKLWxvYWQoIklk
ZW50aXR5RXhwcmVzc2lvbi5qcyIpOwotbG9hZCgiSWZTdGF0ZW1lbnQuanMiKTsKLWxvYWQoIklu
ZGV4RXhwcmVzc2lvbi5qcyIpOwotbG9hZCgiSW5mZXJUeXBlc0ZvckNhbGwuanMiKTsKLWxvYWQo
IklubGluZS5qcyIpOwotbG9hZCgiSW5saW5lci5qcyIpOwotbG9hZCgiSW50TGl0ZXJhbC5qcyIp
OwotbG9hZCgiSW50TGl0ZXJhbFR5cGUuanMiKTsKLWxvYWQoIkludHJpbnNpY3MuanMiKTsKLWxv
YWQoIkxheW91dEJ1ZmZlcnMuanMiKTsKLWxvYWQoIkxleGVyLmpzIik7Ci1sb2FkKCJMZXhlclRv
a2VuLmpzIik7Ci1sb2FkKCJMaXRlcmFsVHlwZUNoZWNrZXIuanMiKTsKLWxvYWQoIkxvZ2ljYWxF
eHByZXNzaW9uLmpzIik7Ci1sb2FkKCJMb2dpY2FsTm90LmpzIik7Ci1sb2FkKCJMb29wQ2hlY2tl
ci5qcyIpOwotbG9hZCgiTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyIpOwotbG9hZCgiTWFrZVB0
ckV4cHJlc3Npb24uanMiKTsKLWxvYWQoIk1hdHJpeFR5cGUuanMiKTsKLWxvYWQoIk5hbWVDb250
ZXh0LmpzIik7Ci1sb2FkKCJOYW1lRmluZGVyLmpzIik7Ci1sb2FkKCJOYW1lUmVzb2x2ZXIuanMi
KTsKLWxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKLWxvYWQoIk5vcm1hbFVzZVByb3BlcnR5UmVzb2x2
ZXIuanMiKTsKLWxvYWQoIk51bGxMaXRlcmFsLmpzIik7Ci1sb2FkKCJOdWxsVHlwZS5qcyIpOwot
bG9hZCgiT3BlcmF0b3JBbmRlckluZGV4ZXIuanMiKTsKLWxvYWQoIk9wZXJhdG9yQXJyYXlSZWZM
ZW5ndGguanMiKTsKLWxvYWQoIk9yaWdpbktpbmQuanMiKTsKLWxvYWQoIk92ZXJsb2FkUmVzb2x1
dGlvbkZhaWx1cmUuanMiKTsKLWxvYWQoIlBhcnNlLmpzIik7Ci1sb2FkKCJQcmVwYXJlLmpzIik7
Ci1sb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7Ci1sb2FkKCJQcm9ncmFtLmpzIik7Ci1sb2Fk
KCJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyIpOwotbG9hZCgiUHRyVHlw
ZS5qcyIpOwotbG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwotbG9hZCgiUmVj
dXJzaW9uQ2hlY2tlci5qcyIpOwotbG9hZCgiUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMiKTsKLWxv
YWQoIlJlc29sdmVOYW1lcy5qcyIpOwotbG9hZCgiUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyIpOwot
bG9hZCgiUmVzb2x2ZVByb3BlcnRpZXMuanMiKTsKLWxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIp
OwotbG9hZCgiUmVzb3VyY2VTZW1hbnRpYy5qcyIpOwotbG9hZCgiUmV0dXJuLmpzIik7Ci1sb2Fk
KCJSZXR1cm5DaGVja2VyLmpzIik7Ci1sb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKLWxvYWQo
IlNhbXBsZXIuanMiKTsKLWxvYWQoIlNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5qcyIp
OwotbG9hZCgiU3RhZ2VJbk91dFNlbWFudGljLmpzIik7Ci1sb2FkKCJTdGFuZGFyZExpYnJhcnku
anMiKTsKLWxvYWQoIlN0YXRlbWVudENsb25lci5qcyIpOwotbG9hZCgiU3RydWN0TGF5b3V0QnVp
bGRlci5qcyIpOwotbG9hZCgiU3RydWN0VHlwZS5qcyIpOwotbG9hZCgiU3dpdGNoQ2FzZS5qcyIp
OwotbG9hZCgiU3dpdGNoU3RhdGVtZW50LmpzIik7Ci1sb2FkKCJTeW50aGVzaXplQXJyYXlPcGVy
YXRvckxlbmd0aC5qcyIpOwotbG9hZCgiU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMiKTsKLWxv
YWQoIlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiKTsKLWxvYWQoIlN5bnRoZXNpemVDb3B5
Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwotbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1
Y3Rvck9wZXJhdG9yLmpzIik7Ci1sb2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOwotbG9hZCgi
VGV4dHVyZS5qcyIpOwotbG9hZCgiVGV4dHVyZU9wZXJhdGlvbnMuanMiKTsKLWxvYWQoIlRyYXBT
dGF0ZW1lbnQuanMiKTsKLWxvYWQoIlR5cGVEZWYuanMiKTsKLWxvYWQoIlR5cGVEZWZSZXNvbHZl
ci5qcyIpOwotbG9hZCgiVHlwZVJlZi5qcyIpOwotbG9hZCgiVHlwZU92ZXJsb2FkUmVzb2x1dGlv
bkZhaWx1cmUuanMiKTsKLWxvYWQoIlR5cGVkVmFsdWUuanMiKTsKLWxvYWQoIlVpbnRMaXRlcmFs
LmpzIik7Ci1sb2FkKCJVaW50TGl0ZXJhbFR5cGUuanMiKTsKLWxvYWQoIlVuaWZpY2F0aW9uQ29u
dGV4dC5qcyIpOwotbG9hZCgiVW5yZWFjaGFibGVDb2RlQ2hlY2tlci5qcyIpOwotbG9hZCgiVmFy
aWFibGVEZWNsLmpzIik7Ci1sb2FkKCJWYXJpYWJsZVJlZi5qcyIpOwotbG9hZCgiVmVjdG9yVHlw
ZS5qcyIpOwotbG9hZCgiVmlzaXRpbmdTZXQuanMiKTsKLWxvYWQoIldMZXhpY2FsRXJyb3IuanMi
KTsKLWxvYWQoIldTeW50YXhFcnJvci5qcyIpOwotbG9hZCgiV1RyYXBFcnJvci5qcyIpOwotbG9h
ZCgiV1R5cGVFcnJvci5qcyIpOwotbG9hZCgiV2hpbGVMb29wLmpzIik7Ci1sb2FkKCJXcmFwQ2hl
Y2tlci5qcyIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
b2NhdGVBdEVudHJ5UG9pbnRzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
b2NhdGVBdEVudHJ5UG9pbnRzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2Rl
NTNmZjAwZC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjU1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotZnVuY3Rpb24gZ2F0aGVyRW50cnlQb2ludHMocHJvZ3JhbSkKLXsKLSAgICBjb25zdCBlbnRy
eVBvaW50cyA9IG5ldyBTZXQoKTsKLSAgICBmb3IgKGxldCBbbmFtZSwgZnVuY0RlZnNdIG9mIHBy
b2dyYW0uZnVuY3Rpb25zKSB7Ci0gICAgICAgIGZvciAobGV0IGZ1bmNEZWYgb2YgZnVuY0RlZnMp
IHsKLSAgICAgICAgICAgIGlmIChmdW5jRGVmLmlzRW50cnlQb2ludCkKLSAgICAgICAgICAgICAg
ICBlbnRyeVBvaW50cy5hZGQoZnVuY0RlZik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu
IGVudHJ5UG9pbnRzOwotfQotCi1mdW5jdGlvbiBnYXRoZXJDYWxsZWVzKGZ1bmNEZWZzKQotewot
ICAgIGNvbnN0IGNhbGxlZVNldCA9IG5ldyBTZXQoKTsKLSAgICBjbGFzcyBGaW5kRnVuY3Rpb25z
VGhhdEFyZUNhbGxlZCBleHRlbmRzIFZpc2l0b3IKLSAgICB7Ci0gICAgICAgIHZpc2l0Q2FsbEV4
cHJlc3Npb24obm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgc3VwZXIudmlzaXRDYWxsRXhw
cmVzc2lvbihub2RlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmZ1bmMgaW5zdGFuY2VvZiBGdW5j
RGVmICYmICFjYWxsZWVTZXQuaGFzKG5vZGUuZnVuYykpIHsKLSAgICAgICAgICAgICAgICBjYWxs
ZWVTZXQuYWRkKG5vZGUuZnVuYyk7Ci0gICAgICAgICAgICAgICAgbm9kZS5mdW5jLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIGNvbnN0IHZpc2l0b3Ig
PSBuZXcgRmluZEZ1bmN0aW9uc1RoYXRBcmVDYWxsZWQoKTsKLSAgICBmb3IgKGxldCBmdW5jRGVm
IG9mIGZ1bmNEZWZzKQotICAgICAgICBmdW5jRGVmLnZpc2l0KHZpc2l0b3IpOwotICAgIHJldHVy
biBjYWxsZWVTZXQ7Ci19Ci0KLWZ1bmN0aW9uIGdhdGhlclZhcmlhYmxlc0FuZEZ1bmN0aW9uUGFy
YW1ldGVycyhmdW5jRGVmcykKLXsKLSAgICBjb25zdCB2YXJzQW5kUGFyYW1zID0gbmV3IFNldCgp
OwotICAgIGNsYXNzIFZhckFuZFBhcmFtVmlzaXRvciBleHRlbmRzIFZpc2l0b3IgewotCi0gICAg
ICAgIGNvbnN0cnVjdG9yKGlzRW50cnlQb2ludCkKLSAgICAgICAgewotICAgICAgICAgICAgc3Vw
ZXIoKTsKLSAgICAgICAgICAgIHRoaXMuX2lzRW50cnlQb2ludCA9IGlzRW50cnlQb2ludDsKLSAg
ICAgICAgfQotCi0gICAgICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoIXRoaXMuX2lzRW50cnlQb2ludCkKLSAgICAgICAgICAgICAgICB2YXJz
QW5kUGFyYW1zLmFkZChub2RlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0VmFyaWFibGVE
ZWNsKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhcnNBbmRQYXJhbXMuYWRkKG5vZGUp
OwotICAgICAgICB9Ci0gICAgfQotICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY0RlZnMpCi0gICAg
ICAgIGZ1bmMudmlzaXQobmV3IFZhckFuZFBhcmFtVmlzaXRvcihmdW5jLmlzRW50cnlQb2ludCkp
OwotICAgIHJldHVybiB2YXJzQW5kUGFyYW1zOwotfQotCi1mdW5jdGlvbiBjcmVhdGVHbG9iYWxT
dHJ1Y3RUeXBlQW5kVmFyVG9GaWVsZE1hcChvcmlnaW4sIGFsbFZhcmlhYmxlc0FuZEZ1bmN0aW9u
UGFyYW1ldGVycywgZnVuY3Rpb25zVGhhdEFyZUNhbGxlZEJ5RW50cnlQb2ludHMpCi17Ci0gICAg
Y29uc3QgZ2xvYmFsU3RydWN0VHlwZSA9IG5ldyBTdHJ1Y3RUeXBlKG9yaWdpbiwgbnVsbCk7Ci0g
ICAgbGV0IGNvdW50ZXIgPSAwOwotICAgIGNvbnN0IHZhclRvRmllbGRNYXAgPSBuZXcgTWFwKCk7
Ci0KLSAgICBmb3IgKGxldCB2YXJPclBhcmFtIG9mIGFsbFZhcmlhYmxlc0FuZEZ1bmN0aW9uUGFy
YW1ldGVycykgewotICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBgZmllbGQke2NvdW50ZXIrK31f
JHt2YXJPclBhcmFtLm5hbWV9YDsKLSAgICAgICAgZ2xvYmFsU3RydWN0VHlwZS5hZGQobmV3IEZp
ZWxkKHZhck9yUGFyYW0ub3JpZ2luLCBmaWVsZE5hbWUsIHZhck9yUGFyYW0udHlwZSkpOwotICAg
ICAgICB2YXJUb0ZpZWxkTWFwLnNldCh2YXJPclBhcmFtLCBmaWVsZE5hbWUpOwotICAgIH0KLQot
ICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3Rpb25zVGhhdEFyZUNhbGxlZEJ5RW50cnlQb2ludHMp
IHsKLSAgICAgICAgaWYgKGZ1bmMucmV0dXJuVHlwZS5uYW1lICE9PSAidm9pZCIpIHsKLSAgICAg
ICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGBmaWVsZCR7Y291bnRlcisrfV9yZXR1cm5fJHtmdW5j
Lm5hbWV9YDsKLSAgICAgICAgICAgIGdsb2JhbFN0cnVjdFR5cGUuYWRkKG5ldyBGaWVsZChmdW5j
Lm9yaWdpbiwgZmllbGROYW1lLCBmdW5jLnJldHVyblR5cGUpKTsKLSAgICAgICAgICAgIGZ1bmMu
cmV0dXJuRmllbGROYW1lID0gZmllbGROYW1lOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0
dXJuIFsgZ2xvYmFsU3RydWN0VHlwZSwgdmFyVG9GaWVsZE1hcCBdOwotfQotCi1mdW5jdGlvbiBh
bGxvY2F0ZUF0RW50cnlQb2ludHMocHJvZ3JhbSkKLXsKLSAgICBjb25zdCBlbnRyeVBvaW50cyA9
IGdhdGhlckVudHJ5UG9pbnRzKHByb2dyYW0pOwotICAgIGNvbnN0IGFsbENhbGxlZXMgPSBnYXRo
ZXJDYWxsZWVzKGVudHJ5UG9pbnRzKTsKLSAgICBjb25zdCBhbGxFeGVjdXRlZEZ1bmN0aW9ucyA9
IG5ldyBTZXQoWy4uLmVudHJ5UG9pbnRzLCAuLi5hbGxDYWxsZWVzXSk7Ci0gICAgY29uc3QgYWxs
VmFyaWFibGVzQW5kRnVuY3Rpb25QYXJhbWV0ZXJzID0gZ2F0aGVyVmFyaWFibGVzQW5kRnVuY3Rp
b25QYXJhbWV0ZXJzKGFsbEV4ZWN1dGVkRnVuY3Rpb25zKTsKLQotICAgIGlmICghYWxsVmFyaWFi
bGVzQW5kRnVuY3Rpb25QYXJhbWV0ZXJzLnNpemUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNv
bnN0IGFueUVudHJ5UG9pbnQgPSBlbnRyeVBvaW50cy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7Ci0g
ICAgY29uc3QgWyBnbG9iYWxTdHJ1Y3RUeXBlLCB2YXJUb0ZpZWxkTWFwIF0gPSBjcmVhdGVHbG9i
YWxTdHJ1Y3RUeXBlQW5kVmFyVG9GaWVsZE1hcChhbnlFbnRyeVBvaW50Lm9yaWdpbiwgYWxsVmFy
aWFibGVzQW5kRnVuY3Rpb25QYXJhbWV0ZXJzLCBhbGxDYWxsZWVzKTsKLSAgICBwcm9ncmFtLmFk
ZChnbG9iYWxTdHJ1Y3RUeXBlKTsKLSAgICAvLyBBbGwgb3RoZXIgc3RydWN0IGFjY2Vzc29ycyB3
aWxsIGhhdmUgYmVlbiBzeW50aGVzaXplZCBhdCB0aGlzIHBvaW50ICh0aGV5IGhhdmUgdG8gYmUg
c3ludGhlc2l6ZWQgZWFybGllciBmb3IgY2FsbCByZXNvbHV0aW9uKS4KLSAgICBzeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzRm9yU3RydWN0VHlwZShwcm9ncmFtLCBnbG9iYWxTdHJ1Y3RUeXBlKTsK
LQotICAgIGNvbnN0IGdsb2JhbFN0cnVjdFR5cGVSZWYgPSBUeXBlUmVmLndyYXAoZ2xvYmFsU3Ry
dWN0VHlwZSk7Ci0gICAgY29uc3QgcHRyVG9HbG9iYWxTdHJ1Y3RUeXBlID0gbmV3IFB0clR5cGUo
YW55RW50cnlQb2ludC5vcmlnaW4sICJ0aHJlYWQiLCBnbG9iYWxTdHJ1Y3RUeXBlUmVmKTsKLSAg
ICBjb25zdCBwdHJUb0dsb2JhbFN0cnVjdFR5cGVSZWYgPSBUeXBlUmVmLndyYXAocHRyVG9HbG9i
YWxTdHJ1Y3RUeXBlKTsKLQotICAgIGNvbnN0IGZ1bmNOZXdQYXJhbWV0ZXJNYXBwaW5nID0gbmV3
IE1hcCgpOwotICAgIGZ1bmN0aW9uIHVwZGF0ZUZ1bmN0aW9uKGZ1bmMpCi0gICAgewotICAgICAg
ICBjbGFzcyBVcGRhdGVGdW5jdGlvbnMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgICAgICAgICBj
b25zdHJ1Y3RvcigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgICAgICAgICBpZiAoZnVuYy5pc0VudHJ5UG9pbnQpCi0gICAgICAgICAgICAgICAgICAg
IHRoaXMuX2FkZFZhcmlhYmxlRGVjbGFyYXRpb24oKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlY29uZmlndXJlUGFyYW1ldGVycygpOwotICAgICAg
ICAgICAgICAgIGZ1bmMuYm9keSA9IGZ1bmMuX2JvZHkudmlzaXQodGhpcyk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIF9hZGRWYXJpYWJsZURlY2xhcmF0aW9uKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZURlY2wgPSBuZXcgVmFyaWFibGVEZWNs
KGZ1bmMub3JpZ2luLCAiZ2xvYmFsIHN0cnVjdCIsIGdsb2JhbFN0cnVjdFR5cGVSZWYsIG51bGwp
OwotICAgICAgICAgICAgICAgIHRoaXMubWFrZUdsb2JhbFN0cnVjdFZhcmlhYmxlUmVmID0gKCkg
PT4gbmV3IE1ha2VQdHJFeHByZXNzaW9uKGZ1bmMub3JpZ2luLCBWYXJpYWJsZVJlZi53cmFwKHRo
aXMuX3ZhcmlhYmxlRGVjbCkpOwotICAgICAgICAgICAgICAgIGZ1bmMuYm9keS5zdGF0ZW1lbnRz
LnVuc2hpZnQodGhpcy5fdmFyaWFibGVEZWNsKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgX3JlY29uZmlndXJlUGFyYW1ldGVycygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY29uc3QgZnVuY1BhcmFtID0gbmV3IEZ1bmNQYXJhbWV0ZXIoZnVuYy5vcmlnaW4sIG51bGws
IHB0clRvR2xvYmFsU3RydWN0VHlwZVJlZik7Ci0gICAgICAgICAgICAgICAgdGhpcy5tYWtlR2xv
YmFsU3RydWN0VmFyaWFibGVSZWYgPSAoKSA9PiAgVmFyaWFibGVSZWYud3JhcChmdW5jUGFyYW0p
OwotICAgICAgICAgICAgICAgIGZ1bmNOZXdQYXJhbWV0ZXJNYXBwaW5nLnNldChmdW5jLCBbIGZ1
bmNQYXJhbSBdKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgX2NhbGxFeHByZXNzaW9u
Rm9yRmllbGROYW1lKG5vZGUsIGZpZWxkTmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIWZpZWxkTmFtZSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJGaWVsZCBuYW1lIHdhcyBudWxsIik7Ci0gICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25O
YW1lID0gYG9wZXJhdG9yJi4ke2ZpZWxkTmFtZX1gOwotICAgICAgICAgICAgICAgIGNvbnN0IHBv
c3NpYmxlQW5kT3ZlcmxvYWRzID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5nZXQoRnVuYywg
ZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgICAgICAgICBjb25zdCBjYWxsRXhwcmVzc2lvblJlc29s
dXRpb24gPSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKG5vZGUub3JpZ2luLCBwb3NzaWJsZUFuZE92
ZXJsb2FkcywgZnVuY3Rpb25OYW1lLCBbIHRoaXMubWFrZUdsb2JhbFN0cnVjdFZhcmlhYmxlUmVm
KCkgXSwgWyBwdHJUb0dsb2JhbFN0cnVjdFR5cGVSZWYgXSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIGNhbGxFeHByZXNzaW9uUmVzb2x1dGlvbi5jYWxsOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBfZGVyZWZlcmVuY2VkQ2FsbEV4cHJlc3Npb25Gb3JGaWVsZE5hbWUobm9kZSwgcmVz
dWx0VHlwZSwgZmllbGROYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnN0
IGRlcmVmRXhwciA9IG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24obm9kZS5vcmlnaW4sIHRoaXMu
X2NhbGxFeHByZXNzaW9uRm9yRmllbGROYW1lKG5vZGUsIGZpZWxkTmFtZSksIG5vZGUudHlwZSwg
InRocmVhZCIpOwotICAgICAgICAgICAgICAgIGRlcmVmRXhwci50eXBlID0gcmVzdWx0VHlwZTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gZGVyZWZFeHByOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCF2YXJUb0ZpZWxkTWFwLmhhcyhub2RlLnZhcmlhYmxlKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN1cGVyLnZpc2l0VmFyaWFibGVSZWYobm9kZSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX2RlcmVmZXJlbmNlZENhbGxFeHByZXNzaW9uRm9yRmllbGROYW1l
KG5vZGUsIG5vZGUudmFyaWFibGUudHlwZSwgdmFyVG9GaWVsZE1hcC5nZXQobm9kZS52YXJpYWJs
ZSkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFZhcmlhYmxlRGVjbChub2Rl
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChub2RlID09IHRoaXMuX3Zhcmlh
YmxlRGVjbCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgICAgICAg
ICAgZWxzZSBpZiAobm9kZS5pbml0aWFsaXplcikgewotICAgICAgICAgICAgICAgICAgICBpZiAo
IW5vZGUudHlwZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtu
b2RlfSBkb2Vzbid0IGhhdmUgYSB0eXBlYCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBu
ZXcgQXNzaWdubWVudChub2RlLm9yaWdpbiwgdGhpcy5fZGVyZWZlcmVuY2VkQ2FsbEV4cHJlc3Np
b25Gb3JGaWVsZE5hbWUobm9kZSwgbm9kZS50eXBlLCB2YXJUb0ZpZWxkTWFwLmdldChub2RlKSks
IG5vZGUuaW5pdGlhbGl6ZXIudmlzaXQodGhpcyksIG5vZGUudHlwZSk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQmxvY2sobm9kZS5vcmlnaW4pOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbm9kZSA9IHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Np
b24obm9kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUuZnVuYyBpbnN0YW5jZW9mIEZ1bmNE
ZWYpIHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IGV4cHJzID0gW107Ci0gICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGFub255bW91c1ZhcmlhYmxlQXNzaWdubWVudHMgPSBbXTsKLSAgICAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IG5vZGUuYXJndW1lbnRMaXN0Lmxlbmd0aDsgaS0tOykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IG5vZGUuZnVuYy5wYXJhbWV0
ZXJzW2ldLnR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25vZGUuZnVuYy5wYXJhbWV0
ZXJzW2ldfSBoYXMgbm8gdHlwZWApOwotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5v
bnltb3VzVmFyaWFibGUgPSBuZXcgQW5vbnltb3VzVmFyaWFibGUobm9kZS5vcmlnaW4sIHR5cGUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgZXhwcnMucHVzaChhbm9ueW1vdXNWYXJpYWJsZSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHBycy5wdXNoKG5ldyBBc3NpZ25tZW50KG5vZGUu
b3JpZ2luLCBWYXJpYWJsZVJlZi53cmFwKGFub255bW91c1ZhcmlhYmxlKSwgbm9kZS5hcmd1bWVu
dExpc3RbaV0sIHR5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91c1Zhcmlh
YmxlQXNzaWdubWVudHMucHVzaChuZXcgQXNzaWdubWVudChub2RlLm9yaWdpbiwgdGhpcy5fZGVy
ZWZlcmVuY2VkQ2FsbEV4cHJlc3Npb25Gb3JGaWVsZE5hbWUobm9kZS5mdW5jLnBhcmFtZXRlcnNb
aV0sIG5vZGUuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGUsIHZhclRvRmllbGRNYXAuZ2V0KG5vZGUu
ZnVuYy5wYXJhbWV0ZXJzW2ldKSksIFZhcmlhYmxlUmVmLndyYXAoYW5vbnltb3VzVmFyaWFibGUp
LCB0eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZXhw
cnMgPSBleHBycy5jb25jYXQoYW5vbnltb3VzVmFyaWFibGVBc3NpZ25tZW50cyk7Ci0gICAgICAg
ICAgICAgICAgICAgIGV4cHJzLnB1c2gobm9kZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYg
KG5vZGUuZnVuYy5yZXR1cm5UeXBlLm5hbWUgIT09ICJ2b2lkIikKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cHJzLnB1c2godGhpcy5fZGVyZWZlcmVuY2VkQ2FsbEV4cHJlc3Npb25Gb3JGaWVs
ZE5hbWUobm9kZS5mdW5jLCBub2RlLmZ1bmMucmV0dXJuVHlwZSwgbm9kZS5mdW5jLnJldHVybkZp
ZWxkTmFtZSkpOwotCi0gICAgICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0ID0gWyB0
aGlzLm1ha2VHbG9iYWxTdHJ1Y3RWYXJpYWJsZVJlZigpIF07Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgQ29tbWFFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBleHBycyk7Ci0gICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHZpc2l0UmV0dXJuKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgbm9kZSA9IHN1cGVyLnZpc2l0UmV0dXJuKG5vZGUpOwotICAgICAgICAgICAgICAg
IGlmICghZnVuYy5pc0VudHJ5UG9pbnQgJiYgbm9kZS52YWx1ZSkgewotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbmV3IENvbW1hRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgWwotICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3IEFzc2lnbm1lbnQobm9kZS5vcmlnaW4sIHRoaXMuX2RlcmVmZXJl
bmNlZENhbGxFeHByZXNzaW9uRm9yRmllbGROYW1lKGZ1bmMsIGZ1bmMucmV0dXJuVHlwZSwgZnVu
Yy5yZXR1cm5GaWVsZE5hbWUpLCBub2RlLnZhbHVlLCBmdW5jLnJldHVyblR5cGUpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3IFJldHVybihub2RlLm9yaWdpbikgXSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIGZ1bmMudmlzaXQobmV3IFVwZGF0ZUZ1bmN0aW9ucygp
KTsKLSAgICB9Ci0KLSAgICBmb3IgKGxldCBmdW5jRGVmIG9mIGFsbEV4ZWN1dGVkRnVuY3Rpb25z
KQotICAgICAgICB1cGRhdGVGdW5jdGlvbihmdW5jRGVmKTsKLQotICAgIGZvciAobGV0IFtmdW5j
LCBuZXdQYXJhbWV0ZXJzXSBvZiBmdW5jTmV3UGFyYW1ldGVyTWFwcGluZykKLSAgICAgICAgZnVu
Yy5wYXJhbWV0ZXJzID0gbmV3UGFyYW1ldGVyczsKLQotICAgIGZvciAobGV0IGZ1bmMgb2YgYWxs
Q2FsbGVlcykKLSAgICAgICAgZnVuYy5fcmV0dXJuVHlwZSA9IFR5cGVSZWYud3JhcChwcm9ncmFt
LnR5cGVzLmdldCgidm9pZCIpKTsKLQotICAgIGNsYXNzIFVwZGF0ZUNhbGxFeHByZXNzaW9uUmV0
dXJuVHlwZXMgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihu
b2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5v
ZGUpOwotICAgICAgICAgICAgaWYgKG5vZGUuZnVuYyBpbnN0YW5jZW9mIEZ1bmNEZWYpCi0gICAg
ICAgICAgICAgICAgbm9kZS5fcmV0dXJuVHlwZSA9IG5vZGUucmVzdWx0VHlwZSA9IFR5cGVSZWYu
d3JhcChwcm9ncmFtLnR5cGVzLmdldCgidm9pZCIpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBj
b25zdCB1cGRhdGVDYWxsRXhwcmVzc2lvblZpc2l0b3IgPSBuZXcgVXBkYXRlQ2FsbEV4cHJlc3Np
b25SZXR1cm5UeXBlcygpOwotICAgIGZvciAobGV0IGZ1bmMgb2YgYWxsRXhlY3V0ZWRGdW5jdGlv
bnMpCi0gICAgICAgIGZ1bmMudmlzaXQodXBkYXRlQ2FsbEV4cHJlc3Npb25WaXNpdG9yKTsKLX0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Fub255bW91c1Zhcmlh
YmxlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQW5vbnltb3VzVmFyaWFibGUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZjViZDMxY2MzLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Bbm9ueW1vdXNWYXJpYWJsZS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotbGV0IGFub255bW91c1Zhcmlh
YmxlQ291bnQgPSAwOwotCi1jbGFzcyBBbm9ueW1vdXNWYXJpYWJsZSBleHRlbmRzIFZhbHVlIHsK
LSAgICAvLyBZb3UgaGF2ZSB0byBpbml0aWFsaXplIHRoZSB2YXJpYWJsZSdzIHZhbHVlIGJlZm9y
ZSB1c2UsIGJ1dCB0aGF0IGNvdWxkIGJlIHF1aXRlIGxhdGUuCi0gICAgY29uc3RydWN0b3Iob3Jp
Z2luLCB0eXBlID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMu
X29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5pbmRleCA9IGFub255bW91c1ZhcmlhYmxl
Q291bnQrKzsKLSAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0
IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1
cm4gImFub25WYXI8IiArIHRoaXMuaW5kZXggKyAiPiI7IH0KLSAgICAKLSAgICB0b1N0cmluZygp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXJyYXlSZWZUeXBlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXJyYXlSZWZUeXBlLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiMTQwM2U4NzRhYi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQXJyYXlSZWZUeXBlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi0vLyBOb3RlIHRoYXQgd2Ugc2F5IHRoYXQgVFtdIGlzICJ0aGUgc2FtZSB0
eXBlIiBhcyBUW2NdIGZvciBhbnkgVCwgYy4gVGhpcyBncmVhdGx5IHNpbXBsaWZpZXMgdGhlCi0v
LyBsYW5ndWFnZS4KLWNsYXNzIEFycmF5UmVmVHlwZSBleHRlbmRzIFJlZmVyZW5jZVR5cGUgewot
ICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAg
aWYgKCFvdGhlci5pc0FycmF5UmVmKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAKLSAgICAgICAgaWYgKHRoaXMuYWRkcmVzc1NwYWNlICE9IG90aGVyLmFkZHJlc3NTcGFjZSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlz
LmVsZW1lbnRUeXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIuZWxlbWVudFR5cGUp
OwotICAgIH0KLSAgICAKLSAgICBnZXQgaXNBcnJheVJlZigpIHsgcmV0dXJuIHRydWU7IH0KLQot
ICAgIGFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQob3JpZ2luLCB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB2YWx1ZTsKLSAgICB9Ci0gICAgYXJndW1lbnRUeXBlRm9yQW5kT3ZlcmxvYWQob3Jp
Z2luKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotCi0gICAgdG9TdHJpbmco
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgKyAiW10gIiArIHRoaXMu
YWRkcmVzc1NwYWNlOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQXJyYXlUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QXJyYXlUeXBlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWQ5MThlODBjZC4u
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXJyYXlUeXBl
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBBcnJheVR5cGUg
ZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGVsZW1lbnRUeXBlLCBudW1F
bGVtZW50cykKLSAgICB7Ci0gICAgICAgIGlmICghbnVtRWxlbWVudHMpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIm51bGwgbnVtRWxlbWVudHMiKTsKLSAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9lbGVtZW50VHlwZSA9
IGVsZW1lbnRUeXBlOwotICAgICAgICB0aGlzLl9udW1FbGVtZW50cyA9IG51bUVsZW1lbnRzOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0g
ICAgZ2V0IGVsZW1lbnRUeXBlKCkgeyByZXR1cm4gdGhpcy5fZWxlbWVudFR5cGU7IH0KLSAgICBn
ZXQgbnVtRWxlbWVudHMoKSB7IHJldHVybiB0aGlzLl9udW1FbGVtZW50czsgfQotICAgIGdldCBp
c1ByaW1pdGl2ZSgpIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUuaXNQcmltaXRpdmU7IH0KLSAg
ICBnZXQgaXNBcnJheSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAKLSAgICBnZXQgbnVtRWxlbWVu
dHNWYWx1ZSgpCi0gICAgewotICAgICAgICBpZiAoISh0aGlzLm51bUVsZW1lbnRzLmlzTGl0ZXJh
bCkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm51bUVsZW1lbnRzIGlzIG5vdCBhIGxp
dGVyYWw6ICIgKyB0aGlzLm51bUVsZW1lbnRzKTsKLSAgICAgICAgcmV0dXJuIHRoaXMubnVtRWxl
bWVudHMudmFsdWU7Ci0gICAgfQotCi0gICAgZ2V0IGFycmF5UmVmVHlwZSgpCi0gICAgewotICAg
ICAgICByZXR1cm4gbmV3IEFycmF5UmVmVHlwZSh0aGlzLm9yaWdpbiwgInRocmVhZCIsIHRoaXMu
ZWxlbWVudFR5cGUpOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLmVsZW1lbnRUeXBlICsgIlsiICsgdGhpcy5udW1FbGVtZW50cyArICJdIjsKLSAg
ICB9Ci0gICAgCi0gICAgZ2V0IHNpemUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZWxl
bWVudFR5cGUuc2l6ZSAqIHRoaXMubnVtRWxlbWVudHNWYWx1ZTsKLSAgICB9Ci0gICAgCi0gICAg
cG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpCi0gICAgewotICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHRoaXMubnVtRWxlbWVudHNWYWx1ZTsgKytpKQotICAgICAgICAgICAg
dGhpcy5lbGVtZW50VHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCArIGkg
KiB0aGlzLmVsZW1lbnRUeXBlLnNpemUpOwotICAgIH0KLSAgICAKLSAgICB1bmlmeUltcGwodW5p
ZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGluc3Rh
bmNlb2YgQXJyYXlUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghdGhpcy5udW1FbGVtZW50cy51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90
aGVyLm51bUVsZW1lbnRzKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0g
ICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwg
b3RoZXIuZWxlbWVudFR5cGUpOwotICAgIH0KLQotICAgIGFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQo
b3JpZ2luLCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgTWFrZUFycmF5
UmVmRXhwcmVzc2lvbihvcmlnaW4sIHZhbHVlKTsKLSAgICAgICAgcmVzdWx0Lm51bUVsZW1lbnRz
ID0gdGhpcy5udW1FbGVtZW50czsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAg
YXJndW1lbnRUeXBlRm9yQW5kT3ZlcmxvYWQob3JpZ2luKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IG5ldyBBcnJheVJlZlR5cGUob3JpZ2luLCAidGhyZWFkIiwgdGhpcy5lbGVtZW50VHlwZSk7Ci0g
ICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Bc3Np
Z25tZW50LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXNzaWdubWVudC5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE4NGIxNWQ2NWEuLjAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Fzc2lnbm1lbnQuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEFzc2lnbm1lbnQgZXh0ZW5kcyBFeHBy
ZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGxocywgcmhzLCB0eXBlID0gbnVsbCkK
LSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRoaXMuX2xocyA9IGxoczsK
LSAgICAgICAgdGhpcy5fcmhzID0gcmhzOwotICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOwotICAg
IH0KLSAgICAKLSAgICBnZXQgbGhzKCkgeyByZXR1cm4gdGhpcy5fbGhzOyB9Ci0gICAgZ2V0IHJo
cygpIHsgcmV0dXJuIHRoaXMuX3JoczsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLmxocyArICIgPSAiICsgdGhpcy5yaHM7Ci0gICAgfQotfTsKLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWQxOTZiN2IxNzQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsK
LSAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZTsK
LSAgICB9Ci0gICAgCi0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewotICAgICAgICByZXR1
cm4gbm9kZTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gVmFyaWFibGVSZWYud3JhcChub2RlKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRWYXJpYWJsZURlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBWYXJpYWJs
ZVJlZi53cmFwKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7Ci0gICAgfQotICAgIAot
ICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFR5cGVSZWYu
d3JhcChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9k
ZTsKLSAgICB9Ci0KLSAgICB2aXNpdE51bGxUeXBlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1
cm4gbm9kZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9CbG9jay5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Jsb2NrLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjQ3NjlmZGM5Ny4uMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQmxvY2suanMKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEJsb2NrIGV4dGVuZHMgTm9kZSB7Ci0gICAgY29u
c3RydWN0b3Iob3JpZ2luKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5f
b3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9zdGF0ZW1lbnRzID0gW107Ci0gICAgfQot
ICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICAKLSAg
ICBhZGQoc3RhdGVtZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fc3RhdGVtZW50cy5wdXNoKHN0
YXRlbWVudCk7Ci0gICAgfQotICAgIAotICAgIGdldCBzdGF0ZW1lbnRzKCkgeyByZXR1cm4gdGhp
cy5fc3RhdGVtZW50czsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIGlm
ICghdGhpcy5zdGF0ZW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiAieyB9IjsKLSAg
ICAgICAgcmV0dXJuICJ7ICIgKyB0aGlzLnN0YXRlbWVudHMuam9pbigiOyAiKSArICI7IH0iOwot
ICAgIH0KLX07Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Jv
b2xMaXRlcmFsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQm9vbExpdGVyYWwu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5MWFkOTgwOTgxLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Cb29sTGl0ZXJhbC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQm9vbExpdGVyYWwgZXh0ZW5k
cyBFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIHZhbHVlKQotICAgIHsKLSAg
ICAgICAgc3VwZXIob3JpZ2luKTsKLSAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IHZhbHVlKCkgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH0KLSAgICBnZXQg
aXNDb25zdGV4cHIoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuICIiICsgdGhpcy5fdmFsdWU7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CcmVhay5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0JyZWFrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOTcyNjIzN2YzMS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQnJlYWsuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNz
IEJyZWFrIGV4dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luKQotICAgIHsKLSAg
ICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgIH0KLSAg
ICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgCi0gICAg
dG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICJicmVhayI7Ci0gICAgfQotfTsKLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRJblNlbWFudGlj
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRJblNlbWFudGljLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTM5MzMyOGNmZC4uMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRJblNlbWFudGljLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdEluU2VtYW50aWMgZXh0
ZW5kcyBTZW1hbnRpYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCAuLi5leHRyYUFy
Z3VtZW50cykKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRoaXMuX25h
bWUgPSBuYW1lOwotICAgICAgICB0aGlzLl9leHRyYUFyZ3VtZW50cyA9IGV4dHJhQXJndW1lbnRz
OwotICAgIH0KLQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdl
dCBleHRyYUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX2V4dHJhQXJndW1lbnRzOyB9Ci0KLSAg
ICBpc0FjY2VwdGFibGVUeXBlKHR5cGUsIHByb2dyYW0pCi0gICAgewotICAgICAgICBsZXQgcmVx
dWlyZWRUeXBlOwotICAgICAgICBzd2l0Y2ggKHRoaXMubmFtZSkgewotICAgICAgICBjYXNlICJT
Vl9JbnN0YW5jZUlEIjoKLSAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmlu
c2ljcy51aW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIlNWX1ZlcnRleElE
IjoKLSAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljcy51aW50Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIlBTSVpFIjoKLSAgICAgICAgICAgIHJl
cXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljcy5mbG9hdDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlICJTVl9Qb3NpdGlvbiI6Ci0gICAgICAgICAgICByZXF1aXJlZFR5cGUg
PSBwcm9ncmFtLmludHJpbnNpY3NbInZlY3RvcjxmbG9hdCwgND4iXTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlICJTVl9Jc0Zyb250RmFjZSI6Ci0gICAgICAgICAgICByZXF1aXJl
ZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3MuYm9vbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlICJTVl9TYW1wbGVJbmRleCI6Ci0gICAgICAgICAgICByZXF1aXJlZFR5cGUgPSBw
cm9ncmFtLmludHJpbnNpY3MudWludDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
ICJTVl9Jbm5lckNvdmVyYWdlIjoKLSAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0u
aW50cmluc2ljcy51aW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIlNWX1Rh
cmdldCI6Ci0gICAgICAgICAgICByZXF1aXJlZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3NbInZl
Y3RvcjxmbG9hdCwgND4iXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJTVl9E
ZXB0aCI6Ci0gICAgICAgICAgICByZXF1aXJlZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3MuZmxv
YXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiU1ZfQ292ZXJhZ2UiOgotICAg
ICAgICAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQ7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiU1ZfRGlzcGF0Y2hUaHJlYWRJRCI6Ci0gICAgICAg
ICAgICByZXF1aXJlZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3NbInZlY3Rvcjx1aW50LCAzPiJd
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIlNWX0dyb3VwSUQiOgotICAgICAg
ICAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzWyJ2ZWN0b3I8dWludCwgMz4i
XTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJTVl9Hcm91cEluZGV4IjoKLSAg
ICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljcy51aW50OwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIlNWX0dyb3VwVGhyZWFkSUQiOgotICAgICAgICAg
ICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzWyJ2ZWN0b3I8dWludCwgMz4iXTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKGBVbmtub3duIHNlbWFudGljOiAke3RoaXMubmFtZX1gKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybiB0eXBlLmVxdWFscyhyZXF1aXJlZFR5cGUpOwotICAgIH0KLQotICAg
IGlzQWNjZXB0YWJsZUZvclNoYWRlclR5cGUoZGlyZWN0aW9uLCBzaGFkZXJUeXBlKQotICAgIHsK
LSAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7Ci0gICAgICAgIGNhc2UgInZlcnRleCI6Ci0g
ICAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewotICAgICAgICAgICAgY2FzZSAiaW5wdXQi
OgotICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSAiU1ZfSW5zdGFuY2VJRCI6Ci0gICAgICAgICAgICAgICAgY2FzZSAiU1ZfVmVydGV4SUQi
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgY2FzZSAib3V0cHV0IjoKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHRo
aXMubmFtZSkgewotICAgICAgICAgICAgICAgIGNhc2UgIlBTSVpFIjoKLSAgICAgICAgICAgICAg
ICBjYXNlICJTVl9Qb3NpdGlvbiI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgImZyYWdt
ZW50IjoKLSAgICAgICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgICAgICAgICBjYXNl
ICJpbnB1dCI6Ci0gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHsKLSAgICAgICAg
ICAgICAgICBjYXNlICJTVl9Jc0Zyb250RmFjZSI6Ci0gICAgICAgICAgICAgICAgY2FzZSAiU1Zf
U2FtcGxlSW5kZXgiOgotICAgICAgICAgICAgICAgIGNhc2UgIlNWX0lubmVyQ292ZXJhZ2UiOgot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgY2FzZSAib3V0cHV0IjoKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMu
bmFtZSkgewotICAgICAgICAgICAgICAgIGNhc2UgIlNWX1RhcmdldCI6Ci0gICAgICAgICAgICAg
ICAgY2FzZSAiU1ZfRGVwdGgiOgotICAgICAgICAgICAgICAgIGNhc2UgIlNWX0NvdmVyYWdlIjoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgY2FzZSAiY29tcHV0ZSI6Ci0gICAgICAgICAgICBpZiAo
ZGlyZWN0aW9uICE9ICJpbnB1dCIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHsKLSAgICAgICAgICAgIGNhc2UgIlNWX0Rpc3Bh
dGNoVGhyZWFkSUQiOgotICAgICAgICAgICAgY2FzZSAiU1ZfR3JvdXBJRCI6Ci0gICAgICAgICAg
ICBjYXNlICJTVl9Hcm91cEluZGV4IjoKLSAgICAgICAgICAgIGNhc2UgIlNWX0dyb3VwVGhyZWFk
SUQiOgotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNh
c2UgInRlc3QiOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2hhZGUgdHlwZTogJHtzaGFkZXJU
eXBlfWApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAg
ICAgbGV0IHJlc3VsdCA9IHRoaXMubmFtZTsKLSAgICAgICAgaWYgKHRoaXMuZXh0cmFBcmd1bWVu
dHMpCi0gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5leHRyYUFyZ3VtZW50cy5qb2luKCIiKTsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4R2V0dGVyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiMzM5Y2Y5MTYzYS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeEdldHRlci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluTWF0cml4R2V0dGVyIHsKLSAgICBj
b25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIGhlaWdodCwgd2lkdGgpCi0gICAgewotICAgICAgICB0
aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX2hlaWdodCA9
IGhlaWdodDsKLSAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKLSAgICB9Ci0KLSAgICBnZXQg
YmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IGhl
aWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQotICAgIGdldCB3aWR0aCgpIHsgcmV0dXJu
IHRoaXMuX3dpZHRoOyB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4g
YG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy53aWR0aH0gb3BlcmF0b3JbXSgke3Ro
aXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0sdWludClgOwotICAg
IH0KLQotICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9m
dW5jdGlvbnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAg
ICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiBbImhhbGYiLCAiZmxvYXQiXSkgewotICAgICAgICAg
ICAgICAgIGZvciAobGV0IGhlaWdodCBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgd2lkdGggb2YgWzIsIDMsIDRdKQotICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fZnVuY3Rpb25zLnB1c2gobmV3IEJ1aWx0aW5NYXRyaXhHZXR0ZXIodHlwZU5hbWUsIGhl
aWdodCwgd2lkdGgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKLSAgICB9Ci0KLSAgICBpbnN0YW50
aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFttYXQsIGluZGV4XSkgPT4gewotICAgICAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9
IGluZGV4LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgaWYgKGluZGV4VmFsdWUgPj0gMCAmJiBp
bmRleFZhbHVlIDwgdGhpcy5oZWlnaHQpIHsKLSAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQg
PSBuZXcgRVB0cihuZXcgRUJ1ZmZlcih0aGlzLndpZHRoKSwgMCk7Ci0gICAgICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndpZHRoOyBpKyspCi0gICAgICAgICAgICAgICAgICAg
IHJlc3VsdC5zZXQoaSwgbWF0LmdldChpbmRleFZhbHVlICogdGhpcy53aWR0aCArIGkpKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltCdWlsdGluIG1hdHJpeCBnZXR0ZXJdIiwg
Ik91dC1vZi1ib3VuZHMgaW5kZXggd2hlbiBpbmRleGluZyBpbnRvIGEgbWF0cml4Iik7Ci0gICAg
ICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4
U2V0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeFNl
dHRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdiODU3NDljZTEuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhT
ZXR0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEJ1aWx0
aW5NYXRyaXhTZXR0ZXIgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgaGVpZ2h0LCB3
aWR0aCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsK
LSAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OwotICAgICAgICB0aGlzLl93aWR0aCA9IHdp
ZHRoOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVybiB0aGlzLl9iYXNl
VHlwZU5hbWU7IH0KLSAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9Ci0g
ICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KLQotICAgIHRvU3RyaW5nKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBgbmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlz
LmhlaWdodH14JHt0aGlzLndpZHRofSBvcGVyYXRvcltdPSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7
dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0sdWludCwke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhp
cy53aWR0aH0pYDsKLSAgICB9Ci0KLSAgICBzdGF0aWMgZnVuY3Rpb25zKCkKLSAgICB7Ci0gICAg
ICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7Ci0gICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMg
PSBbXTsKLQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgWyJoYWxmIiwgImZsb2F0
Il0pIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBoZWlnaHQgb2YgWzIsIDMsIDRdKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHdpZHRoIG9mIFsyLCAzLCA0XSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBCdWlsdGluTWF0cml4U2V0
dGVyKHR5cGVOYW1lLCBoZWlnaHQsIHdpZHRoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7Ci0gICAg
fQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgaW5kZXgsIHZhbHVlXSkgPT4gewotICAgICAg
ICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAg
aWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5oZWlnaHQpIHsKLSAgICAg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy53aWR0aCAq
IHRoaXMuaGVpZ2h0KSwgMCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJhc2Us
IHRoaXMud2lkdGggKiB0aGlzLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnBsdXMo
aW5kZXhWYWx1ZSAqIHRoaXMud2lkdGgpLmNvcHlGcm9tKHZhbHVlLCB0aGlzLndpZHRoKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltCdWlsdGluIG1hdHJpeCBzZXR0ZXJdIiwg
Ik91dC1vZi1ib3VuZHMgaW5kZXggd2hlbiBpbmRleGluZyBpbnRvIGEgbWF0cml4Iik7Ci0gICAg
ICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9y
R2V0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3Rvckdl
dHRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA4NzJiNGY4ZTIuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JH
ZXR0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRp
blZlY3RvckdldHRlciB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBzaXplLCBlbGVt
ZW50TmFtZSwgaW5kZXgpCi0gICAgewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNl
VHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX3NpemUgPSBzaXplOwotICAgICAgICB0aGlzLl9lbGVt
ZW50TmFtZSA9IGVsZW1lbnROYW1lOwotICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OwotICAg
IH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7
IH0KLSAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3NpemU7IH0KLSAgICBnZXQgZWxlbWVu
dE5hbWUoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50TmFtZTsgfQotICAgIGdldCBpbmRleCgpIHsg
cmV0dXJuIHRoaXMuX2luZGV4OyB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSBvcGVyYXRvci4ke3RoaXMuZWxlbWVu
dE5hbWV9KCR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLnNpemV9KWA7Ci0gICAgfQotCi0gICAg
c3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykg
ewotICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGNvbnN0
IGVsZW1lbnRzID0gWyAieCIsICJ5IiwgInoiLCAidyIgXTsKLQotICAgICAgICAgICAgZm9yIChs
ZXQgdHlwZU5hbWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChsZXQgc2l6ZSBvZiBWZWN0b3JFbGVtZW50U2l6ZXMpIHsKLSAgICAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspCi0gICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9mdW5jdGlvbnMucHVzaChuZXcgQnVpbHRpblZlY3RvckdldHRlcih0eXBlTmFtZSwgc2l6
ZSwgZWxlbWVudHNbaV0sIGkpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKLSAgICB9Ci0KLSAgICBp
bnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2ZWNdKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godmVj
LmdldCh0aGlzLmluZGV4KSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b25EYXRhID0gdGhpczsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQnVpbHRpblZlY3RvclNldHRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDU1OTU5MWU5NjguLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JTZXR0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWNsYXNzIEJ1aWx0aW5WZWN0b3JTZXR0ZXIgewotICAgIGNvbnN0cnVjdG9y
KGJhc2VUeXBlTmFtZSwgc2l6ZSwgZWxlbWVudE5hbWUsIGluZGV4KQotICAgIHsKLSAgICAgICAg
dGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9zaXplID0g
c2l6ZTsKLSAgICAgICAgdGhpcy5fZWxlbWVudE5hbWUgPSBlbGVtZW50TmFtZTsKLSAgICAgICAg
dGhpcy5faW5kZXggPSBpbmRleDsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlz
Ll9zaXplOyB9Ci0gICAgZ2V0IGVsZW1lbnROYW1lKCkgeyByZXR1cm4gdGhpcy5fZWxlbWVudE5h
bWU7IH0KLSAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsgfQotCi0gICAgdG9T
dHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlzLmJhc2VUeXBlTmFt
ZX0ke3RoaXMuc2l6ZX0gb3BlcmF0b3IuJHt0aGlzLmVsZW1lbnROYW1lfT0oJHt0aGlzLmJhc2VU
eXBlTmFtZX0ke3RoaXMuc2l6ZX0sJHt0aGlzLmJhc2VUeXBlTmFtZX0pYDsKLSAgICB9Ci0KLSAg
ICBzdGF0aWMgZnVuY3Rpb25zKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25z
KSB7Ci0gICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMgPSBbXTsKLQotICAgICAgICAgICAgY29u
c3QgZWxlbWVudHMgPSBbICJ4IiwgInkiLCAieiIsICJ3IiBdOwotCi0gICAgICAgICAgICBmb3Ig
KGxldCB0eXBlTmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAgICBm
b3IgKGxldCBzaXplIG9mIFZlY3RvckVsZW1lbnRTaXplcykgewotICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBCdWlsdGluVmVjdG9yU2V0dGVyKHR5cGVOYW1lLCBz
aXplLCBlbGVtZW50c1tpXSwgaSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwotICAgIH0KLQotICAg
IGluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2Jhc2UsIHZhbHVlXSkgPT4gewotICAgICAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRoaXMuc2l6ZSksIDApOwotICAgICAgICAgICAgcmVz
dWx0LmNvcHlGcm9tKGJhc2UsIHRoaXMuc2l6ZSk7Ci0gICAgICAgICAgICByZXN1bHQucGx1cyh0
aGlzLmluZGV4KS5jb3B5RnJvbSh2YWx1ZSwgMSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgICB9OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0g
ICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4
cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lv
bi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRiZTJkYTY2ZDcuLjAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMjE3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQ2FsbEV4cHJlc3Np
b24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIGFy
Z3VtZW50TGlzdCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl9hcmd1bWVudExpc3QgPSBhcmd1bWVudExpc3Q7
Ci0gICAgICAgIHRoaXMuZnVuYyA9IG51bGw7Ci0gICAgICAgIHRoaXMuX2lzQ2FzdCA9IGZhbHNl
OwotICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbnVsbDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0
IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0KLSAgICBnZXQgYXJndW1lbnRMaXN0KCkg
eyByZXR1cm4gdGhpcy5fYXJndW1lbnRMaXN0OyB9Ci0KLSAgICBzZXQgYXJndW1lbnRMaXN0KG5l
d1ZhbHVlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYXJndW1lbnRMaXN0ID0gbmV3VmFsdWU7Ci0g
ICAgfQotCi0gICAgZ2V0IGlzQ2FzdCgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FzdDsgfQotICAgIGdl
dCByZXR1cm5UeXBlKCkgeyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQotICAgIAotICAgIHN0
YXRpYyByZXNvbHZlKG9yaWdpbiwgcG9zc2libGVPdmVybG9hZHMsIG5hbWUsIGFyZ3VtZW50TGlz
dCwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgcHJvZ3JhbSkKLSAgICB7Ci0gICAgICAgIGxl
dCBjYWxsID0gbmV3IENhbGxFeHByZXNzaW9uKG9yaWdpbiwgbmFtZSwgYXJndW1lbnRMaXN0KTsK
LSAgICAgICAgY2FsbC5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlcy5tYXAoYXJndW1lbnQg
PT4gYXJndW1lbnQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpKTsKLSAgICAgICAgY2FsbC5wb3Nz
aWJsZU92ZXJsb2FkcyA9IHBvc3NpYmxlT3ZlcmxvYWRzOwotICAgICAgICBpZiAocmV0dXJuVHlw
ZSkKLSAgICAgICAgICAgIGNhbGwuc2V0Q2FzdERhdGEocmV0dXJuVHlwZSk7Ci0gICAgICAgIHJl
dHVybiB7Y2FsbCwgcmVzdWx0VHlwZTogY2FsbC5yZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzLCBw
cm9ncmFtKX07Ci0gICAgfQotCi0gICAgcmVzb2x2ZShwb3NzaWJsZU92ZXJsb2FkcywgcHJvZ3Jh
bSkKLSAgICB7Ci0gICAgICAgIGxldCBmYWlsdXJlcyA9IFtdOwotICAgICAgICBsZXQgb3Zlcmxv
YWQ7Ci0gICAgICAgIGlmIChwb3NzaWJsZU92ZXJsb2FkcykKLSAgICAgICAgICAgIG92ZXJsb2Fk
ID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5
cGVzLCB0aGlzLnJldHVyblR5cGUpOwotCi0gICAgICAgIGlmICghb3ZlcmxvYWQgfHwgIW92ZXJs
b2FkLmZ1bmMpIHsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQpCi0gICAgICAgICAgICAgICAg
b3ZlcmxvYWQgPSB7fTsKLSAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLl9yZXNvbHZlQnlJ
bnN0YW50aWF0aW9uKHByb2dyYW0pOwotICAgICAgICAgICAgaWYgKGZ1bmMpCi0gICAgICAgICAg
ICAgICAgb3ZlcmxvYWQuZnVuYyA9IGZ1bmM7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW92
ZXJsb2FkLmZ1bmMpIHsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZmFpbHVyZXMpCi0gICAg
ICAgICAgICAgICAgb3ZlcmxvYWQuZmFpbHVyZXMgPSBbXTsKLSAgICAgICAgICAgIGZhaWx1cmVz
LnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAi
RGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdp
dGggIjsKLSAgICAgICAgICAgIG1lc3NhZ2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5h
cmd1bWVudFR5cGVzICsgIikiOwotICAgICAgICAgICAgaWYgKHRoaXMucmV0dXJuVHlwZSkKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9IiBhbmQgcmV0dXJuIHR5cGUgIiArIHRoaXMucmV0dXJu
VHlwZTsKLSAgICAgICAgICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAg
bWVzc2FnZSArPSAiLCBidXQgY29uc2lkZXJlZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpCi0g
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcs
IG1lc3NhZ2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlz
LmFyZ3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBhcmd1bWVudFR5
cGUgPSB0aGlzLmFyZ3VtZW50VHlwZXNbaV07Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlw
ZSA9IG92ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlOwotICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IGFyZ3VtZW50VHlwZS5lcXVhbHNXaXRoQ29tbWl0KHBhcmFtZXRlclR5cGUpOwotICAg
ICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJB
dCAiICsgdGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBhcmd1bWVudCBhbmQgcGFyYW1ldGVy
IHR5cGVzIG5vdCBlcXVhbCBhZnRlciB0eXBlIGFyZ3VtZW50IHN1YnN0aXR1dGlvbjogYXJndW1l
bnQgPSAiICsgYXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVyID0gIiArIHBhcmFtZXRlclR5cGUp
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVUb092ZXJsb2FkKG92ZXJs
b2FkKTsKLSAgICB9Ci0KLSAgICBfcmVzb2x2ZUJ5SW5zdGFudGlhdGlvbihwcm9ncmFtKQotICAg
IHsKLSAgICAgICAgbGV0IGZ1bmM7Ci0gICAgICAgIGlmICh0aGlzLm5hbWUgPT0gIm9wZXJhdG9y
JltdIikKLSAgICAgICAgICAgIGZ1bmMgPSB0aGlzLl9yZXNvbHZlV2l0aE9wZXJhdG9yQW5kZXJJ
bmRleGVyKHByb2dyYW0pOwotICAgICAgICBlbHNlIGlmICh0aGlzLm5hbWUgPT0gIm9wZXJhdG9y
Lmxlbmd0aCIpCi0gICAgICAgICAgICBmdW5jID0gdGhpcy5fcmVzb2x2ZVdpdGhPcGVyYXRvckxl
bmd0aChwcm9ncmFtKTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy5uYW1lID09ICJvcGVyYXRvcj09
IiAmJiB0aGlzLmFyZ3VtZW50VHlwZXMubGVuZ3RoID09IDIKLSAgICAgICAgICAgICYmICh0aGlz
LmFyZ3VtZW50VHlwZXNbMF0gaW5zdGFuY2VvZiBOdWxsVHlwZSB8fCB0aGlzLmFyZ3VtZW50VHlw
ZXNbMF0gaW5zdGFuY2VvZiBSZWZlcmVuY2VUeXBlKQotICAgICAgICAgICAgJiYgKHRoaXMuYXJn
dW1lbnRUeXBlc1sxXSBpbnN0YW5jZW9mIE51bGxUeXBlIHx8IHRoaXMuYXJndW1lbnRUeXBlc1sx
XSBpbnN0YW5jZW9mIFJlZmVyZW5jZVR5cGUpCi0gICAgICAgICAgICAmJiB0aGlzLmFyZ3VtZW50
VHlwZXNbMF0uZXF1YWxzKHRoaXMuYXJndW1lbnRUeXBlc1sxXSkpCi0gICAgICAgICAgICAgICAg
ZnVuYyA9IHRoaXMuX3Jlc29sdmVXaXRoUmVmZXJlbmNlQ29tcGFyYXRvcihwcm9ncmFtKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcHJvZ3JhbS5h
ZGQoZnVuYyk7Ci0gICAgICAgIHJldHVybiBmdW5jOwotICAgIH0KLQotICAgIF9yZXNvbHZlV2l0
aE9wZXJhdG9yQW5kZXJJbmRleGVyKHByb2dyYW0pCi0gICAgewotICAgICAgICBsZXQgYXJyYXlS
ZWZUeXBlID0gdGhpcy5hcmd1bWVudFR5cGVzWzBdOwotICAgICAgICBpZiAoIWFycmF5UmVmVHlw
ZS5pc0FycmF5UmVmKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmln
aW4ub3JpZ2luU3RyaW5nLCBgRXhwZWN0ZWQgJHthcnJheVJlZlR5cGV9IHRvIGJlIGFuIGFycmF5
IHJlZiB0eXBlIGZvciBvcGVyYXRvciZbXWApOwotCi0gICAgICAgIGxldCBpbmRleFR5cGUgPSB0
aGlzLmFyZ3VtZW50VHlwZXNbMV07Ci0gICAgICAgIGNvbnN0IGFkZHJlc3NTcGFjZSA9IGFycmF5
UmVmVHlwZS5hZGRyZXNzU3BhY2U7Ci0KLSAgICAgICAgLy8gVGhlIGxhdGVyIGNoZWNrTGl0ZXJh
bFR5cGVzIHN0YWdlIHdpbGwgdmVyaWZ5IHRoYXQgdGhlIGxpdGVyYWwgY2FuIGJlIHJlcHJlc2Vu
dGVkIGFzIGEgdWludC4KLSAgICAgICAgY29uc3QgdWludFR5cGUgPSBUeXBlUmVmLndyYXAocHJv
Z3JhbS5pbnRyaW5zaWNzLnVpbnQpOwotICAgICAgICBpbmRleFR5cGUudHlwZSA9IHVpbnRUeXBl
OwotCi0gICAgICAgIGNvbnN0IGVsZW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGVzWzBdLmVs
ZW1lbnRUeXBlOwotICAgICAgICB0aGlzLnJlc3VsdFR5cGUgPSBUeXBlUmVmLndyYXAobmV3IFB0
clR5cGUodGhpcy5vcmlnaW4sIGFkZHJlc3NTcGFjZSwgVHlwZVJlZi53cmFwKGVsZW1lbnRUeXBl
KSkpCi0KLSAgICAgICAgbGV0IGFycmF5UmVmQWNjZXNzb3IgPSBuZXcgT3BlcmF0b3JBbmRlcklu
ZGV4ZXIodGhpcy5yZXN1bHRUeXBlLnRvU3RyaW5nKCksIGFkZHJlc3NTcGFjZSk7Ci0gICAgICAg
IGNvbnN0IGZ1bmMgPSBuZXcgTmF0aXZlRnVuYyh0aGlzLm9yaWdpbiwgIm9wZXJhdG9yJltdIiwg
dGhpcy5yZXN1bHRUeXBlLCBbCi0gICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0aGlzLm9y
aWdpbiwgbnVsbCwgYXJyYXlSZWZUeXBlKSwKLSAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVy
KHRoaXMub3JpZ2luLCBudWxsLCB1aW50VHlwZSkKLSAgICAgICAgXSk7Ci0KLSAgICAgICAgYXJy
YXlSZWZBY2Nlc3Nvci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpOwotCi0gICAgICAg
IHJldHVybiBmdW5jOwotICAgIH0KLQotICAgIF9yZXNvbHZlV2l0aE9wZXJhdG9yTGVuZ3RoKHBy
b2dyYW0pCi0gICAgewotICAgICAgICB0aGlzLnJlc3VsdFR5cGUgPSBUeXBlUmVmLndyYXAocHJv
Z3JhbS5pbnRyaW5zaWNzLnVpbnQpOwotCi0gICAgICAgIGlmICh0aGlzLmFyZ3VtZW50VHlwZXNb
MF0uaXNBcnJheSkgewotICAgICAgICAgICAgY29uc3QgYXJyYXlUeXBlID0gdGhpcy5hcmd1bWVu
dFR5cGVzWzBdOwotICAgICAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBOYXRpdmVGdW5jKHRoaXMu
b3JpZ2luLCAib3BlcmF0b3IubGVuZ3RoIiwgdGhpcy5yZXN1bHRUeXBlLCBbCi0gICAgICAgICAg
ICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodGhpcy5vcmlnaW4sIG51bGwsIGFycmF5VHlwZSkKLSAg
ICAgICAgICAgIF0pOwotICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChhcmdzKSA9
PiBFUHRyLmJveChhcnJheVR5cGUubnVtRWxlbWVudHNWYWx1ZSk7Ci0gICAgICAgICAgICByZXR1
cm4gZnVuYzsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFyZ3VtZW50VHlwZXNbMF0uaXNBcnJh
eVJlZikgewotICAgICAgICAgICAgY29uc3QgYXJyYXlSZWZUeXBlID0gdGhpcy5hcmd1bWVudFR5
cGVzWzBdOwotICAgICAgICAgICAgY29uc3QgYWRkcmVzc1NwYWNlID0gYXJyYXlSZWZUeXBlLmFk
ZHJlc3NTcGFjZTsKLSAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yTGVuZ3RoID0gbmV3IE9wZXJh
dG9yQXJyYXlSZWZMZW5ndGgoYXJyYXlSZWZUeXBlLnRvU3RyaW5nKCksIGFkZHJlc3NTcGFjZSk7
Ci0gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IE5hdGl2ZUZ1bmModGhpcy5vcmlnaW4sICJv
cGVyYXRvci5sZW5ndGgiLCB0aGlzLnJlc3VsdFR5cGUsIFsKLSAgICAgICAgICAgICAgICBuZXcg
RnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVsbCwgYXJyYXlSZWZUeXBlKQotICAgICAgICAg
ICAgXSk7Ci0gICAgICAgICAgICBvcGVyYXRvckxlbmd0aC5pbnN0YW50aWF0ZUltcGxlbWVudGF0
aW9uKGZ1bmMpOwotICAgICAgICAgICAgcmV0dXJuIGZ1bmM7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBg
RXhwZWN0ZWQgJHt0aGlzLmFyZ3VtZW50VHlwZXNbMF19IHRvIGJlIGFycmF5L2FycmF5IHJlZiB0
eXBlIGZvciBvcGVyYXRvci5sZW5ndGhgKTsKLSAgICB9Ci0KLSAgICBfcmVzb2x2ZVdpdGhSZWZl
cmVuY2VDb21wYXJhdG9yKHByb2dyYW0pCi0gICAgewotICAgICAgICBsZXQgYXJndW1lbnRUeXBl
ID0gdGhpcy5hcmd1bWVudFR5cGVzWzBdOwotICAgICAgICBpZiAoYXJndW1lbnRUeXBlIGluc3Rh
bmNlb2YgTnVsbFR5cGUpCi0gICAgICAgICAgICBhcmd1bWVudFR5cGUgPSB0aGlzLmFyZ3VtZW50
VHlwZXNbMV07Ci0gICAgICAgIGlmIChhcmd1bWVudFR5cGUgaW5zdGFuY2VvZiBOdWxsVHlwZSkg
ewotICAgICAgICAgICAgLy8gV2UgZW5jb3VudGVyZWQgIm51bGwgPT0gbnVsbCIuCi0gICAgICAg
ICAgICAvLyBUaGUgdHlwZSBpc24ndCBvYnNlcnZhYmxlLCBzbyB3ZSBjYW4gcGljayB3aGF0ZXZl
ciB3ZSB3YW50LgotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHByb2JhYmx5IGJlIGdl
bmVyYWxpemVkLCB1c2luZyB0aGUgInByZWZlcnJlZCB0eXBlIiBpbmZyYXN0cnVjdHVyZSB1c2Vk
IGJ5IGdlbmVyaWMgbGl0ZXJhbHMKLSAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IG5ldyBQdHJU
eXBlKHRoaXMub3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdGhpcy5yZXN1bHRUeXBlID0gVHlwZVJlZi53cmFwKHByb2dyYW0uaW50
cmluc2ljcy5ib29sKTsKLSAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBOYXRpdmVGdW5jKHRoaXMu
b3JpZ2luLCAib3BlcmF0b3I9PSIsIHRoaXMucmVzdWx0VHlwZSwgWwotICAgICAgICAgICAgbmV3
IEZ1bmNQYXJhbWV0ZXIodGhpcy5vcmlnaW4sIG51bGwsIGFyZ3VtZW50VHlwZSksCi0gICAgICAg
ICAgICBuZXcgRnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVsbCwgYXJndW1lbnRUeXBlKQot
ICAgICAgICBdKTsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGhzLCByaHNdKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgbGVmdCA9IGxocy5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
IGxldCByaWdodCA9IHJocy5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJp
Z2h0KQotICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChsZWZ0LmVxdWFscyhyaWdodCkp
OwotICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGxlZnQgPT0gcmlnaHQpOwotICAgICAgICB9
OwotICAgICAgICByZXR1cm4gZnVuYzsKLSAgICB9Ci0gICAgCi0gICAgcmVzb2x2ZVRvT3Zlcmxv
YWQob3ZlcmxvYWQpCi0gICAgewotICAgICAgICB0aGlzLmZ1bmMgPSBvdmVybG9hZC5mdW5jOwot
ICAgICAgICBsZXQgcmVzdWx0ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlOwotICAgICAgICBp
ZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCByZXR1cm4gdHlw
ZSIpOwotICAgICAgICByZXN1bHQgPSByZXN1bHQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwot
ICAgICAgICB0aGlzLnJlc3VsdFR5cGUgPSByZXN1bHQ7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgfQotICAgIAotICAgIHNldENhc3REYXRhKHJldHVyblR5cGUpCi0gICAgewotICAgICAg
ICB0aGlzLl9yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTsKLSAgICAgICAgdGhpcy5faXNDYXN0ID0g
dHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
ICh0aGlzLmlzQ2FzdCA/ICJvcGVyYXRvciAiICsgdGhpcy5yZXR1cm5UeXBlIDogdGhpcy5uYW1l
KSArCi0gICAgICAgICAgICAiKCIgKyB0aGlzLmFyZ3VtZW50TGlzdCArICIpIjsKLSAgICB9Ci19
Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlv
bi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJmNjc0ZTc5ODAuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotLy8gVGhpcyBhbGxvd3MgeW91IHRvIHBhc3Mgc3Ry
dWN0cyBhbmQgYXJyYXlzIGluLXBsYWNlLCBidXQgaXQncyBhIG1vcmUgYW5ub3lpbmcgQVBJLgot
ZnVuY3Rpb24gY2FsbEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50TGlzdCkKLXsKLSAg
ICBsZXQgYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gYXJndW1l
bnQudHlwZSk7Ci0gICAgbGV0IG92ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5y
ZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIGFyZ3VtZW50VHlwZXMsIG51bGwsIHRydWUpOwotICAg
IGlmICghb3ZlcmxvYWQuZnVuYykKLSAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxs
RnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiKCIg
KyBhcmd1bWVudExpc3QgKyAiKSIgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJp
ZWQ6XG4iICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0KLSAgICBjb25z
dCBmdW5jID0gb3ZlcmxvYWQuZnVuYzsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmMucGFy
YW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50VHlwZXNb
aV07Ci0gICAgICAgIHR5cGUudmlzaXQobmV3IFN0cnVjdExheW91dEJ1aWxkZXIoKSk7Ci0gICAg
ICAgIGZ1bmMucGFyYW1ldGVyc1tpXS5lUHRyLmNvcHlGcm9tKGFyZ3VtZW50TGlzdFtpXS5lUHRy
LCB0eXBlLnNpemUpOwotICAgIH0KLSAgICBsZXQgcmVzdWx0ID0gbmV3IEV2YWx1YXRvcihwcm9n
cmFtKS5ydW5GdW5jKGZ1bmMpOwotICAgIHJldHVybiBuZXcgVHlwZWRWYWx1ZShmdW5jLnJldHVy
blR5cGUsIHJlc3VsdCk7Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Nhc3RzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FzdHMuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZjA4Y2U2OWE3Li4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDE0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVj
dG9yLCBudW1iZXIpCi17Ci0gICAgdmFyIGFycmF5ID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3Rv
cigxKTsKLSAgICBhcnJheVswXSA9IG51bWJlcjsKLSAgICByZXR1cm4gYXJyYXlbMF07Ci19Ci0K
LWZ1bmN0aW9uIGJpdHdpc2VDYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEsIHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjIsIHZhbHVlKQotewotICAgIGxldCB0eXBlZEFycmF5MSA9IG5ldyB0eXBlZEFy
cmF5Q29uc3RydWN0b3IxKDEpOwotICAgIGxldCB0eXBlZEFycmF5MiA9IG5ldyB0eXBlZEFycmF5
Q29uc3RydWN0b3IyKHR5cGVkQXJyYXkxLmJ1ZmZlcik7Ci0gICAgdHlwZWRBcnJheTFbMF0gPSB2
YWx1ZTsKLSAgICByZXR1cm4gdHlwZWRBcnJheTJbMF07Ci19Ci0KLWZ1bmN0aW9uIGNhc3RUb0Jv
b2wodmFsdWUpCi17Ci0gICAgcmV0dXJuICEhdmFsdWU7Ci19Ci0KLWZ1bmN0aW9uIGNhc3RUb1Vj
aGFyKG51bWJlcikKLXsKLSAgICByZXR1cm4gbnVtYmVyICYgMHhGRjsKLX0KLQotZnVuY3Rpb24g
Y2FzdFRvVXNob3J0KG51bWJlcikKLXsKLSAgICByZXR1cm4gbnVtYmVyICYgMHhGRkZGOwotfQot
Ci1mdW5jdGlvbiBjYXN0VG9VaW50KG51bWJlcikKLXsKLSAgICByZXR1cm4gbnVtYmVyID4+PiAw
OwotfQotCi1mdW5jdGlvbiBjYXN0VG9DaGFyKG51bWJlcikKLXsKLSAgICByZXR1cm4gY2FzdChJ
bnQ4QXJyYXksIG51bWJlcik7Ci19Ci0KLWZ1bmN0aW9uIGNhc3RUb1Nob3J0KG51bWJlcikKLXsK
LSAgICByZXR1cm4gY2FzdChJbnQxNkFycmF5LCBudW1iZXIpOwotfQotCi1mdW5jdGlvbiBjYXN0
VG9JbnQobnVtYmVyKQotewotICAgIHJldHVybiBudW1iZXIgfCAwOwotfQotCi1mdW5jdGlvbiBj
YXN0VG9IYWxmKG51bWJlcikKLXsKLSAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJ
RUVFIDc1NC4KLSAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJlcikpCi0gICAgICAgcmV0dXJuIG51
bWJlcgotICAgIGlmIChudW1iZXIgPiA2NTUwNCkKLSAgICAgICAgcmV0dXJuIE51bWJlci5QT1NJ
VElWRV9JTkZJTklUWTsKLSAgICBpZiAobnVtYmVyIDwgLTY1NTA0KQotICAgICAgICByZXR1cm4g
TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwotICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJlciA8
IE1hdGgucG93KDIsIC0yNCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChudW1iZXIgPCAw
ICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQotICAgICAgICByZXR1cm4gLTA7Ci0gICAg
bGV0IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKLSAgICBsZXQgdWludEFycmF5
ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKLSAgICBkb3VibGVBcnJheVsw
XSA9IG51bWJlcjsKLSAgICBsZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4ODA7Ci0gICAgbGV0
IGV4cG9uZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZd
ICYgMHhmMCkgPj4+IDQpOwotICAgIGxldCBzaWduaWZpY2FuZCA9ICgodWludEFycmF5WzZdICYg
MHgwZikgPDwgNikgfCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+PiAyKTsKLQotICAgIGlmICgo
ZXhwb25lbnQgLSAxMDIzKSA8IC0xNCkgewotICAgICAgICBleHBvbmVudCA9IDA7Ci0gICAgICAg
IHNpZ25pZmljYW5kID0gKE1hdGguYWJzKG51bWJlcikgKiBNYXRoLnBvdygyLCAyNCkpID4+PiAw
OwotICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQgLyAx
MDI0OwotICAgICAgICBpZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgdmFsdWUgKj0gLTE7Ci0g
ICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICB9Ci0KLSAgICBkb3VibGVBcnJheVswXSA9IDA7Ci0K
LSAgICB1aW50QXJyYXlbN10gfD0gc2lnbjsKLSAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50
ID4+PiA0KTsKLSAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAmIDB4ZjApOwot
ICAgIHVpbnRBcnJheVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYpOwotICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7Ci0KLSAgICByZXR1cm4gZG91YmxlQXJy
YXlbMF07Ci19Ci0KLWZ1bmN0aW9uIGNhc3RUb0Zsb2F0KG51bWJlcikKLXsKLSAgICByZXR1cm4g
TWF0aC5mcm91bmQobnVtYmVyKTsKLX0KLQotZnVuY3Rpb24gY2FzdEFuZENoZWNrVmFsdWUoY2Fz
dEZ1bmN0aW9uLCB2YWx1ZSkKLXsKLSAgICBjb25zdCBjYXN0ZWRWYWx1ZSA9IGNhc3RGdW5jdGlv
bih2YWx1ZSk7Ci0gICAgaWYgKCFpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RlZFZhbHVlLCB2YWx1
ZSkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt2YWx1ZX0gd2FzIGNhc3RlZCBhbmQgeWll
bGRlZCAke2Nhc3RlZFZhbHVlfSwgd2hpY2ggaXMgbm90IGJpdHdpc2UgZXF1aXZhbGVudC5gKTsK
LSAgICByZXR1cm4gY2FzdGVkVmFsdWU7Ci19Ci0KLWZ1bmN0aW9uIGlzQml0d2lzZUVxdWl2YWxl
bnQobGVmdCwgcmlnaHQpCi17Ci0gICAgbGV0IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJh
eSgxKTsKLSAgICBsZXQgaW50QXJyYXkgPSBuZXcgSW50MzJBcnJheShkb3VibGVBcnJheS5idWZm
ZXIpOwotICAgIGRvdWJsZUFycmF5WzBdID0gbGVmdDsKLSAgICBsZXQgbGVmdEludHMgPSBJbnQz
MkFycmF5LmZyb20oaW50QXJyYXkpOwotICAgIGRvdWJsZUFycmF5WzBdID0gcmlnaHQ7Ci0gICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAyOyArK2kpIHsKLSAgICAgICAgaWYgKGxlZnRJbnRzW2ldICE9
IGludEFycmF5W2ldKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1
cm4gdHJ1ZTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0No
ZWNrLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2suanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0MDk3NzQzZWE0Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVjay5qcworKysgL2Rldi9udWxsCkBAIC0xLDMx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1
c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gY2hlY2socHJvZ3JhbSkKLXsKLSAgICBwcm9ncmFtLnZp
c2l0KG5ldyBDaGVja2VyKHByb2dyYW0pKTsKLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tMaXRlcmFsVHlwZXMuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DaGVja0xpdGVyYWxUeXBlcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjdkNThhYzRhOGMuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NoZWNrTGl0ZXJhbFR5cGVzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBjaGVja0xpdGVyYWxUeXBlcyhwcm9ncmFtKQotewotICAg
IHByb2dyYW0udmlzaXQobmV3IExpdGVyYWxUeXBlQ2hlY2tlcigpKTsKLX0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrTG9vcHMuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja0xvb3BzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjYjM2MmU5ZWZkNy4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2hlY2tMb29wcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotZnVuY3Rpb24gY2hlY2tMb29wcyhwcm9ncmFtKQotewotICAgIHByb2dyYW0udmlzaXQo
bmV3IExvb3BDaGVja2VyKCkpOwotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9DaGVja05hdGl2ZUZ1bmNTdGFnZXMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9DaGVja05hdGl2ZUZ1bmNTdGFnZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGMzYzA0N2Y4MjQ5Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DaGVja05hdGl2ZUZ1bmNTdGFnZXMuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gY2hlY2tOYXRpdmVGdW5jU3RhZ2VzKHByb2dyYW0p
Ci17Ci0gICAgY2xhc3MgQ2hlY2tOYXRpdmVGdW5jU3RhZ2VzIGV4dGVuZHMgVmlzaXRvciB7Ci0g
ICAgICAgIGNvbnN0cnVjdG9yKGVudHJ5UG9pbnQpIHsKLSAgICAgICAgICAgIHN1cGVyKCk7Ci0g
ICAgICAgICAgICB0aGlzLl9lbnRyeVBvaW50ID0gZW50cnlQb2ludDsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKChub2RlLmZ1bmMgaW5zdGFuY2VvZiBOYXRpdmVGdW5jKSAmJiBub2RlLmZ1bmMuc3RhZ2Ug
JiYgbm9kZS5mdW5jLnN0YWdlICE9IHRoaXMuX2VudHJ5UG9pbnQuc2hhZGVyVHlwZSkKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbiwgYENhbm5vdCBjYWxs
ICR7bm9kZS5mdW5jLnN0YWdlfSBmdW5jdGlvbiAke25vZGUuZnVuYy5uYW1lfSBpbnNpZGUgJHt0
aGlzLl9lbnRyeVBvaW50LnNoYWRlVHlwZX0gZW50cnkgcG9pbnRgKTsKLSAgICAgICAgICAgIG5v
ZGUuZnVuYy52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBmb3IgKGxldCBbbmFt
ZSwgZnVuY0RlZnNdIG9mIHByb2dyYW0uZnVuY3Rpb25zKSB7Ci0gICAgICAgIGZvciAobGV0IGZ1
bmNEZWYgb2YgZnVuY0RlZnMpIHsKLSAgICAgICAgICAgIGlmIChmdW5jRGVmLmlzRW50cnlQb2lu
dCkKLSAgICAgICAgICAgICAgICBmdW5jRGVmLnZpc2l0KG5ldyBDaGVja05hdGl2ZUZ1bmNTdGFn
ZXMoZnVuY0RlZikpOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tSZWN1cnNpb24uanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DaGVja1JlY3Vyc2lvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggY2MyMTE1OGU1ZGQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NoZWNrUmVjdXJzaW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1mdW5jdGlvbiBjaGVja1JlY3Vyc2lvbihwcm9ncmFtKQotewotICAgIHByb2dyYW0u
dmlzaXQobmV3IFJlY3Vyc2lvbkNoZWNrZXIocHJvZ3JhbSkpOwotfQotCmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1JlY3Vyc2l2ZVR5cGVzLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tSZWN1cnNpdmVUeXBlcy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUxOWRkMDM1ZDMuLjAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrUmVjdXJzaXZlVHlwZXMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGNoZWNrUmVjdXJzaXZlVHlw
ZXMocHJvZ3JhbSkKLXsKLSAgICBwcm9ncmFtLnZpc2l0KG5ldyBSZWN1cnNpdmVUeXBlQ2hlY2tl
cigpKTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNr
UmV0dXJucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrUmV0dXJucy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY1ZmUzNjhhNDguLjAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrUmV0dXJucy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gY2hlY2tSZXR1cm5zKHBy
b2dyYW0pCi17Ci0gICAgcHJvZ3JhbS52aXNpdChuZXcgUmV0dXJuQ2hlY2tlcihwcm9ncmFtKSk7
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrVHlw
ZXNXaXRoQXJndW1lbnRzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tU
eXBlc1dpdGhBcmd1bWVudHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmNjkx
NDJhMzUxLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9D
aGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotZnVuY3Rpb24gY2hlY2tUeXBlc1dpdGhBcmd1bWVudHMocHJvZ3JhbSkKLXsKLSAgICBj
bGFzcyBUeXBlV2l0aEFyZ3VtZW50c0NoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICAgICAg
dmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICgobm9kZS5uYW1l
ID09ICJ2ZWN0b3IiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMikKLSAgICAgICAg
ICAgICAgICB8fCAobm9kZS5uYW1lID09ICJtYXRyaXgiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5s
ZW5ndGggIT0gMykKLSAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJUZXh0dXJlMUQi
ICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKLSAgICAgICAgICAgICAgICB8fCAo
bm9kZS5uYW1lID09ICJSV1RleHR1cmUxRCIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAh
PSAxKQotICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRleHR1cmUxREFycmF5IiAm
JiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCi0gICAgICAgICAgICAgICAgfHwgKG5v
ZGUubmFtZSA9PSAiUldUZXh0dXJlMURBcnJheSIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0
aCAhPSAxKQotICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRleHR1cmUyRCIgJiYg
bm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQotICAgICAgICAgICAgICAgIHx8IChub2Rl
Lm5hbWUgPT0gIlJXVGV4dHVyZTJEIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEp
Ci0gICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiVGV4dHVyZTJEQXJyYXkiICYmIG5v
ZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKLSAgICAgICAgICAgICAgICB8fCAobm9kZS5u
YW1lID09ICJSV1RleHR1cmUyREFycmF5IiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9
IDEpCi0gICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiVGV4dHVyZTNEIiAmJiBub2Rl
LnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCi0gICAgICAgICAgICAgICAgfHwgKG5vZGUubmFt
ZSA9PSAiUldUZXh0dXJlM0QiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKLSAg
ICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJUZXh0dXJlQ3ViZSIgJiYgbm9kZS50eXBl
QXJndW1lbnRzLmxlbmd0aCAhPSAxKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
YEJ1aWx0aW4gdHlwZSAke25vZGUubmFtZX0gc2hvdWxkIGFsd2F5cyBoYXZlIHR5cGUgYXJndW1l
bnRzLmApOwotICAgICAgICB9Ci0gICAgfQotICAgIHByb2dyYW0udmlzaXQobmV3IFR5cGVXaXRo
QXJndW1lbnRzQ2hlY2tlcigpKTsKLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2hlY2tVbnJlYWNoYWJsZUNvZGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9DaGVja1VucmVhY2hhYmxlQ29kZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGYzMWRhOTQ2ZDEuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NoZWNrVW5yZWFjaGFibGVDb2RlLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBjaGVja1VucmVhY2hhYmxlQ29kZShwcm9ncmFtKQot
ewotICAgIHByb2dyYW0udmlzaXQobmV3IFVucmVhY2hhYmxlQ29kZUNoZWNrZXIocHJvZ3JhbSkp
OwotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1dy
YXBwZWQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1dyYXBwZWQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMDNhYzFjYmY4Li4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1dyYXBwZWQuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGNoZWNrRXhwcmVzc2lvbldy
YXBwZWQobm9kZSkKLXsKLSAgICBub2RlLnZpc2l0KG5ldyBXcmFwQ2hlY2tlcihub2RlKSk7Ci19
Ci0KLWZ1bmN0aW9uIGNoZWNrUHJvZ3JhbVdyYXBwZWQobm9kZSkKLXsKLSAgICBub2RlLnZpc2l0
KG5ldyBFeHByZXNzaW9uRmluZGVyKGNoZWNrRXhwcmVzc2lvbldyYXBwZWQpKTsKLX0KLQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxOGZmZTZiNDBjLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTE4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewotICAgIGNvbnN0cnVjdG9yKHBy
b2dyYW0pCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9wcm9ncmFtID0g
cHJvZ3JhbTsKLSAgICAgICAgdGhpcy5fY3VycmVudFN0YXRlbWVudCA9IG51bGw7Ci0gICAgICAg
IHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRzID0gbmV3IFNldCgpOwotICAgICAgICB0aGlzLl9mcmFn
bWVudEVudHJ5UG9pbnRzID0gbmV3IFNldCgpOwotICAgICAgICB0aGlzLl9jb21wdXRlRW50cnlQ
b2ludHMgPSBuZXcgU2V0KCk7Ci0gICAgfQotCi0gICAgdmlzaXRQcm9ncmFtKG5vZGUpCi0gICAg
ewotICAgICAgICBsZXQgZG9TdGF0ZW1lbnQgPSBzdGF0ZW1lbnQgPT4gewotICAgICAgICAgICAg
dGhpcy5fY3VycmVudFN0YXRlbWVudCA9IHN0YXRlbWVudDsKLSAgICAgICAgICAgIHN0YXRlbWVu
dC52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2Ygbm9k
ZS50eXBlcy52YWx1ZXMoKSkgewotICAgICAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBBcnJh
eSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbnN0aXR1ZW50VHlwZSBvZiB0eXBlKQot
ICAgICAgICAgICAgICAgICAgICBkb1N0YXRlbWVudChjb25zdGl0dWVudFR5cGUpOwotICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZG9TdGF0ZW1lbnQodHlwZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgZm9yIChsZXQgZnVuY3Mgb2Ygbm9kZS5mdW5jdGlvbnMudmFsdWVzKCkpIHsK
LSAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKLSAgICAgICAgICAgICAgICB0
aGlzLnZpc2l0RnVuYyhmdW5jKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBm
b3IgKGxldCBmdW5jcyBvZiBub2RlLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewotICAgICAgICAgICAg
Zm9yIChsZXQgZnVuYyBvZiBmdW5jcykKLSAgICAgICAgICAgICAgICBkb1N0YXRlbWVudChmdW5j
KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9jaGVja1NlbWFudGljcyhub2RlKQotICAgIHsK
LSAgICAgICAgY2xhc3MgSXRlbSB7Ci0gICAgICAgICAgICBjb25zdHJ1Y3Rvcih0eXBlLCBzZW1h
bnRpYykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5zaGFkZXJUeXBl
ICE9ICJ0ZXN0IiAmJiAhc2VtYW50aWMpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkFuIGVudHJ5LXBvaW50IGlucHV0
L291dHB1dCBleGlzdHMgd2hpY2ggZG9lc24ndCBoYXZlIGEgc2VtYW50aWMiKTsKLSAgICAgICAg
ICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0aGlzLl9zZW1hbnRp
YyA9IHNlbWFudGljOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnZXQgdHlwZSgpIHsg
cmV0dXJuIHRoaXMuX3R5cGU7IH0KLSAgICAgICAgICAgIGdldCBzZW1hbnRpYygpIHsgcmV0dXJu
IHRoaXMuX3NlbWFudGljOyB9Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgcHJvZ3JhbSA9IHRo
aXMuX3Byb2dyYW07Ci0gICAgICAgIGNsYXNzIEdhdGhlcmVyIGV4dGVuZHMgVmlzaXRvciB7Ci0g
ICAgICAgICAgICBjb25zdHJ1Y3RvcihjdXJyZW50U2VtYW50aWMgPSBudWxsKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fY3Vy
cmVudFNlbWFudGljID0gY3VycmVudFNlbWFudGljOwotICAgICAgICAgICAgICAgIHRoaXMuX3Jl
c3VsdCA9IFtdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXNldChjdXJyZW50U2Vt
YW50aWMgPSBudWxsKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRoaXMuY3VycmVu
dFNlbWFudGljID0gY3VycmVudFNlbWFudGljOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBzZXQgY3VycmVudFNlbWFudGljKHZhbHVlKSB7IHRoaXMuX2N1cnJlbnRTZW1hbnRpYyA9IHZh
bHVlOyB9Ci0gICAgICAgICAgICBnZXQgY3VycmVudFNlbWFudGljKCkgeyByZXR1cm4gdGhpcy5f
Y3VycmVudFNlbWFudGljOyB9Ci0gICAgICAgICAgICBnZXQgcmVzdWx0KCkgeyByZXR1cm4gdGhp
cy5fcmVzdWx0OyB9Ci0KLSAgICAgICAgICAgIHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKG5ldyBJdGVtKG5vZGUsIHRo
aXMuY3VycmVudFNlbWFudGljKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0
VmVjdG9yVHlwZShub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRoaXMucmVz
dWx0LnB1c2gobmV3IEl0ZW0obm9kZSwgdGhpcy5jdXJyZW50U2VtYW50aWMpKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChuZXcgSXRlbShub2RlLCB0aGlzLmN1
cnJlbnRTZW1hbnRpYykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdE5hdGl2
ZVR5cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAocHJvZ3JhbS5p
bnRyaW5zaWNzLnZvaWQuZXF1YWxzKG5vZGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLmN1cnJlbnRTZW1hbnRpYykKLSAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlZvaWQgY2FuJ3QgaGF2ZSBhIHNl
bWFudGljIik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRo
aXMucmVzdWx0LnB1c2gobmV3IEl0ZW0obm9kZSwgdGhpcy5jdXJyZW50U2VtYW50aWMpKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlbWFudGljICE9IG51bGwp
Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIlN0cnVjdHMgaW5zaWRlIGVudHJ5IHBvaW50IHNpZ25hdHVyZXMgY2FuJ3Qg
aGF2ZSBzZW1hbnRpY3MuIik7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9k
ZS5maWVsZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VtYW50aWMgPSBm
aWVsZC5zZW1hbnRpYzsKLSAgICAgICAgICAgICAgICAgICAgZmllbGQudHlwZS52aXNpdCh0aGlz
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0
VHlwZVJlZihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5vZGUudHlwZS52
aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRQdHJUeXBlKG5v
ZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChuZXcg
SXRlbShub2RlLCB0aGlzLmN1cnJlbnRTZW1hbnRpYykpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICB2aXNpdEFycmF5UmVmVHlwZShub2RlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHRoaXMucmVzdWx0LnB1c2gobmV3IEl0ZW0obm9kZSwgdGhpcy5jdXJyZW50U2VtYW50
aWMpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRBcnJheVR5cGUobm9kZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKG5ldyBJdGVt
KG5vZGUsIHRoaXMuY3VycmVudFNlbWFudGljKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHRoaXMuX2N1cnJlbnRTZW1hbnRpYyA9IG5vZGUuc2VtYW50aWM7Ci0gICAgICAgICAgICAg
ICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAg
ICAgICAgbGV0IGlucHV0R2F0aGVyZXIgPSBuZXcgR2F0aGVyZXIoKTsKLSAgICAgICAgZm9yIChs
ZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykgewotICAgICAgICAgICAgaW5wdXRHYXRo
ZXJlci5yZXNldCgpOwotICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGlucHV0R2F0aGVyZXIp
OwotICAgICAgICB9Ci0gICAgICAgIGxldCBvdXRwdXRHYXRoZXJlciA9IG5ldyBHYXRoZXJlcihu
b2RlLnNlbWFudGljKTsKLSAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KG91dHB1dEdhdGhl
cmVyKTsKLQotICAgICAgICBmdW5jdGlvbiBjaGVja0R1cGxpY2F0ZVNlbWFudGljcyhpdGVtcykg
ewotICAgICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBmYXN0ZXIgdGhhbiBPKG5eMikKLSAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBpdGVtcy5sZW5ndGg7ICsraikgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0uc2VtYW50aWMgJiYgaXRlbXNbaV0uc2Vt
YW50aWMuZXF1YWxUb090aGVyU2VtYW50aWMoaXRlbXNbal0uc2VtYW50aWMpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCBgRHVwbGljYXRlIHNlbWFudGljIGZvdW5kIGluIGVudHJ5IHBvaW50OiAke2l0ZW1zW2ld
LnNlbWFudGljfWApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBjaGVja0R1cGxpY2F0ZVNlbWFudGljcyhpbnB1dEdhdGhlcmVyLnJlc3VsdCk7
Ci0gICAgICAgIGNoZWNrRHVwbGljYXRlU2VtYW50aWNzKG91dHB1dEdhdGhlcmVyLnJlc3VsdCk7
Ci0KLSAgICAgICAgZnVuY3Rpb24gY2hlY2tTZW1hbnRpY1R5cGVzKGl0ZW1zKSB7Ci0gICAgICAg
ICAgICBmb3IgKGxldCBpdGVtIG9mIGl0ZW1zKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGl0ZW0u
c2VtYW50aWMgJiYgIWl0ZW0uc2VtYW50aWMuaXNBY2NlcHRhYmxlVHlwZShpdGVtLnR5cGUsIHBy
b2dyYW0pKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9y
aWdpbi5vcmlnaW5TdHJpbmcsIGBTZW1hbnRpYyAke2l0ZW0uc2VtYW50aWN9IGlzIHVuYWNjZXB0
YWJsZSB0eXBlICR7aXRlbS50eXBlfWApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGNoZWNrU2VtYW50aWNUeXBlcyhpbnB1dEdhdGhlcmVyLnJlc3VsdCk7Ci0gICAgICAgIGNo
ZWNrU2VtYW50aWNUeXBlcyhvdXRwdXRHYXRoZXJlci5yZXN1bHQpOwotCi0gICAgICAgIGZ1bmN0
aW9uIGNoZWNrU2VtYW50aWNGb3JTaGFkZXJUeXBlKGl0ZW1zLCBkaXJlY3Rpb24pIHsKLSAgICAg
ICAgICAgIGZvciAobGV0IGl0ZW0gb2YgaXRlbXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXRl
bS5zZW1hbnRpYyAmJiAhaXRlbS5zZW1hbnRpYy5pc0FjY2VwdGFibGVGb3JTaGFkZXJUeXBlKGRp
cmVjdGlvbiwgbm9kZS5zaGFkZXJUeXBlKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCBgU2VtYW50aWMgJHtpdGVtLnNl
bWFudGljfSBpcyB1bmFjY2VwdGFibGUgYXMgYW4gJHtkaXJlY3Rpb259IG9mIHNoYWRlciB0eXBl
ICR7bm9kZS5zaGFkZXJUeXBlfWApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGNoZWNrU2VtYW50aWNGb3JTaGFkZXJUeXBlKGlucHV0R2F0aGVyZXIucmVzdWx0LCAiaW5wdXQi
KTsKLSAgICAgICAgY2hlY2tTZW1hbnRpY0ZvclNoYWRlclR5cGUob3V0cHV0R2F0aGVyZXIucmVz
dWx0LCAib3V0cHV0Iik7Ci0KLSAgICAgICAgY2xhc3MgUE9EQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewotICAgICAgICAgICAgdmlzaXRFbnVtVHlwZShub2RlKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2
aXNpdEFycmF5VHlwZShub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVy
biBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRNYXRyaXhU
eXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmlzTnVtYmVyOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICB2aXNpdFB0clR5cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFN0cnVjdFR5
cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykKLSAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGZpZWxkLnZpc2l0KHRoaXMpOwotICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHZpc2l0VHlwZVJlZihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVy
biBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgZnVuY3Rpb24gY2hlY2tQT0REYXRhKGl0ZW1zKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBp
dGVtIG9mIGl0ZW1zKSB7Ci0gICAgICAgICAgICAgICAgaWYgKChpdGVtLnR5cGUgaW5zdGFuY2Vv
ZiBQdHJUeXBlKSB8fCAoaXRlbS50eXBlIGluc3RhbmNlb2YgQXJyYXlSZWZUeXBlKSB8fCAoaXRl
bS50eXBlIGluc3RhbmNlb2YgQXJyYXlUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAo
IWl0ZW0udHlwZS5lbGVtZW50VHlwZS52aXNpdChuZXcgUE9EQ2hlY2tlcigpKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0
cmluZywgIkJ1ZmZlciBhdHRhY2hlZCB0byBlbnRyeSBwb2ludCBuZWVkcyB0byBvbmx5IGNvbnRh
aW4gUE9EIHR5cGVzIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIGNoZWNrUE9ERGF0YShpbnB1dEdhdGhlcmVyLnJlc3VsdCk7Ci0gICAgICAg
IGNoZWNrUE9ERGF0YShvdXRwdXRHYXRoZXJlci5yZXN1bHQpOwotICAgIH0KLQotICAgIF9jaGVj
a1NoYWRlclR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAobm9kZS5zaGFkZXJUeXBl
KSB7Ci0gICAgICAgIGNhc2UgInZlcnRleCI6Ci0gICAgICAgICAgICBpZiAodGhpcy5fdmVydGV4
RW50cnlQb2ludHMuaGFzKG5vZGUubmFtZSkpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRHVwbGljYXRlIHZlcnRleCBlbnRy
eSBwb2ludCBuYW1lICIgKyBub2RlLm5hbWUpOwotICAgICAgICAgICAgdGhpcy5fdmVydGV4RW50
cnlQb2ludHMuYWRkKG5vZGUubmFtZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSAiZnJhZ21lbnQiOgotICAgICAgICAgICAgaWYgKHRoaXMuX2ZyYWdtZW50RW50cnlQb2ludHMu
aGFzKG5vZGUubmFtZSkpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRHVwbGljYXRlIGZyYWdtZW50IGVudHJ5IHBvaW50IG5h
bWUgIiArIG5vZGUubmFtZSk7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVudHJ5UG9pbnRz
LmFkZChub2RlLm5hbWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgImNvbXB1
dGUiOgotICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50cy5oYXMobm9kZS5u
YW1lKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5v
cmlnaW5TdHJpbmcsICJEdXBsaWNhdGUgY29tcHV0ZSBlbnRyeSBwb2ludCBuYW1lICIgKyBub2Rl
Lm5hbWUpOwotICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUVudHJ5UG9pbnRzLmFkZChub2RlLm5h
bWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgInRlc3QiOgotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCBzaGFkZXIgdHlwZTogIiArIG5vZGUuc2hhZGVyVHlwZSk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBfY2hlY2tPcGVyYXRvck92ZXJsb2FkKGZ1bmMsIHJlc29sdmVGdW5jcykKLSAgICB7
Ci0gICAgICAgIGlmIChMZXhlci50ZXh0SXNJZGVudGlmaWVyKGZ1bmMubmFtZSkpCi0gICAgICAg
ICAgICByZXR1cm47IC8vIE5vdCBvcGVyYXRvciEKLQotICAgICAgICBpZiAoIWZ1bmMubmFtZS5z
dGFydHNXaXRoKCJvcGVyYXRvciIpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
b3BlcmF0b3Igb3ZlcmxvYWQgbmFtZTogIiArIGZ1bmMubmFtZSk7Ci0KLSAgICAgICAgbGV0IGNo
ZWNrR2V0dGVyID0gKGtpbmQpID0+IHsKLSAgICAgICAgICAgIGxldCBudW1FeHBlY3RlZFBhcmFt
ZXRlcnMgPSBraW5kID09ICJpbmRleCIgPyAyIDogMTsKLSAgICAgICAgICAgIGlmIChmdW5jLnBh
cmFtZXRlcnMubGVuZ3RoICE9IG51bUV4cGVjdGVkUGFyYW1ldGVycykKLSAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJJbmNvcnJl
Y3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yICIgKyBmdW5jLm5hbWUgKyAiIChleHBlY3RlZCAi
ICsgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzICsgIiwgZ290ICIgKyBmdW5jLnBhcmFtZXRlcnMubGVu
Z3RoICsgIikiKTsKLSAgICAgICAgICAgIGlmIChmdW5jLnBhcmFtZXRlclR5cGVzWzBdLnVuaWZ5
Tm9kZS5pc1B0cikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJDYW5ub3QgaGF2ZSBnZXR0ZXIgZm9yIHBvaW50ZXIgdHlwZTog
IiArIGZ1bmMucGFyYW1ldGVyVHlwZXNbMF0pOwotICAgICAgICB9OwotCi0gICAgICAgIGxldCBj
aGVja1NldHRlciA9IChraW5kKSA9PiB7Ci0gICAgICAgICAgICBsZXQgbnVtRXhwZWN0ZWRQYXJh
bWV0ZXJzID0ga2luZCA9PSAiaW5kZXgiID8gMyA6IDI7Ci0gICAgICAgICAgICBpZiAoZnVuYy5w
YXJhbWV0ZXJzLmxlbmd0aCAhPSBudW1FeHBlY3RlZFBhcmFtZXRlcnMpCi0gICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiSW5jb3Jy
ZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGZvciAiICsgZnVuYy5uYW1lICsgIiAoZXhwZWN0ZWQg
IiArIG51bUV4cGVjdGVkUGFyYW1ldGVycyArICIsIGdvdCAiICsgZnVuYy5wYXJhbWV0ZXJzLmxl
bmd0aCArICIpIik7Ci0gICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJUeXBlc1swXS51bmlm
eU5vZGUuaXNQdHIpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiQ2Fubm90IGhhdmUgc2V0dGVyIGZvciBwb2ludGVyIHR5cGU6
ICIgKyBmdW5jLnBhcmFtZXRlclR5cGVzWzBdKTsKLSAgICAgICAgICAgIGlmICghZnVuYy5yZXR1
cm5UeXBlLmVxdWFscyhmdW5jLnBhcmFtZXRlclR5cGVzWzBdKSkKLSAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJGaXJzdCBwYXJh
bWV0ZXIgdHlwZSBhbmQgcmV0dXJuIHR5cGUgb2Ygc2V0dGVyIG11c3QgbWF0Y2ggKHBhcmFtZXRl
ciB3YXMgIiArIGZ1bmMucGFyYW1ldGVyVHlwZXNbMF0gKyAiIGJ1dCByZXR1cm4gd2FzICIgKyBm
dW5jLnJldHVyblR5cGUgKyAiKSIpOwotICAgICAgICAgICAgbGV0IHZhbHVlVHlwZSA9IGZ1bmMu
cGFyYW1ldGVyVHlwZXNbbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzIC0gMV07Ci0gICAgICAgICAgICBs
ZXQgZ2V0dGVyTmFtZSA9IGZ1bmMubmFtZS5zdWJzdHIoMCwgZnVuYy5uYW1lLmxlbmd0aCAtIDEp
OwotICAgICAgICAgICAgbGV0IGdldHRlckZ1bmNzID0gcmVzb2x2ZUZ1bmNzKGdldHRlck5hbWUp
OwotICAgICAgICAgICAgaWYgKCFnZXR0ZXJGdW5jcykKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFdmVyeSBzZXR0ZXIgbXVz
dCBoYXZlIGEgbWF0Y2hpbmcgZ2V0dGVyLCBidXQgZGlkIG5vdCBmaW5kIGFueSBmdW5jdGlvbiBu
YW1lZCAiICsgZ2V0dGVyTmFtZSArICIgdG8gbWF0Y2ggIiArIGZ1bmMubmFtZSk7Ci0gICAgICAg
ICAgICBsZXQgYXJndW1lbnRUeXBlcyA9IGZ1bmMucGFyYW1ldGVyVHlwZXMuc2xpY2UoMCwgbnVt
RXhwZWN0ZWRQYXJhbWV0ZXJzIC0gMSk7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNv
bHZlT3ZlcmxvYWRJbXBsKGdldHRlckZ1bmNzLCBhcmd1bWVudFR5cGVzLCBudWxsKTsKLSAgICAg
ICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEaWQgbm90IGZpbmQgZnVuY3Rpb24g
bmFtZWQgIiArIGZ1bmMubmFtZSArICIgd2l0aCBhcmd1bWVudHMgIiArIGFyZ3VtZW50VHlwZXMg
KyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgb3ZlcmxvYWQuZmFp
bHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0VHlwZSA9IG92
ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0VHlwZS5lcXVh
bHModmFsdWVUeXBlKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5j
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJTZXR0ZXIgYW5kIGdldHRlciBtdXN0IGFncmVlIG9uIHZh
bHVlIHR5cGUgKGdldHRlciBhdCAiICsgb3ZlcmxvYWQuZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5n
ICsgIiBzYXlzICIgKyByZXN1bHRUeXBlICsgIiB3aGlsZSB0aGlzIHNldHRlciBzYXlzICIgKyB2
YWx1ZVR5cGUgKyAiKSIpOwotICAgICAgICB9OwotCi0gICAgICAgIGxldCBjaGVja0FuZGVyID0g
KGtpbmQpID0+IHsKLSAgICAgICAgICAgIGxldCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgPSBraW5k
ID09ICJpbmRleCIgPyAyIDogMTsKLSAgICAgICAgICAgIGlmIChmdW5jLnBhcmFtZXRlcnMubGVu
Z3RoICE9IG51bUV4cGVjdGVkUGFyYW1ldGVycykKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJJbmNvcnJlY3QgbnVtYmVyIG9m
IHBhcmFtZXRlcnMgZm9yICIgKyBmdW5jLm5hbWUgKyAiIChleHBlY3RlZCAiICsgbnVtRXhwZWN0
ZWRQYXJhbWV0ZXJzICsgIiwgZ290ICIgKyBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICsgIikiKTsK
LSAgICAgICAgICAgIGlmICghZnVuYy5yZXR1cm5UeXBlLnVuaWZ5Tm9kZS5pc1B0cikKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJSZXR1cm4gdHlwZSBvZiBhbmRlciBpcyBub3QgYSBwb2ludGVyOiAiICsgZnVuYy5yZXR1cm5U
eXBlKTsKLSAgICAgICAgICAgIGlmICghZnVuYy5wYXJhbWV0ZXJUeXBlc1swXS51bmlmeU5vZGUu
aXNSZWYpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiUGFyYW1ldGVyIHRvIGFuZGVyIGlzIG5vdCBhIHJlZmVyZW5jZTogIiAr
IGZ1bmMucGFyYW1ldGVyVHlwZXNbMF0pOwotICAgICAgICB9OwotCi0gICAgICAgIHN3aXRjaCAo
ZnVuYy5uYW1lKSB7Ci0gICAgICAgIGNhc2UgIm9wZXJhdG9yIGNhc3QiOgotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgIm9wZXJhdG9yKysiOgotICAgICAgICBjYXNlICJvcGVyYXRv
ci0tIjoKLSAgICAgICAgICAgIGlmIChmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICE9IDEpCi0gICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5n
LCAiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGZvciAiICsgZnVuYy5uYW1lICsgIiAo
ZXhwZWN0ZWQgMSwgZ290ICIgKyBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICsgIikiKTsKLSAgICAg
ICAgICAgIGlmICghZnVuYy5wYXJhbWV0ZXJUeXBlc1swXS5lcXVhbHMoZnVuYy5yZXR1cm5UeXBl
KSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJQYXJhbWV0ZXIgdHlwZSBhbmQgcmV0dXJuIHR5cGUgbXVzdCBtYXRjaCBmb3Ig
IiArIGZ1bmMubmFtZSArICIgKHBhcmFtZXRlciBpcyAiICsgZnVuYy5wYXJhbWV0ZXJUeXBlc1sw
XSArICIgd2hpbGUgcmV0dXJuIGlzICIgKyBmdW5jLnJldHVyblR5cGUgKyAiKSIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIm9wZXJhdG9yKyI6Ci0gICAgICAgIGNhc2UgIm9w
ZXJhdG9yLSI6Ci0gICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCAhPSAxICYm
IGZ1bmMucGFyYW1ldGVycy5sZW5ndGggIT0gMikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJJbmNvcnJlY3QgbnVtYmVyIG9m
IHBhcmFtZXRlcnMgZm9yICIgKyBmdW5jLm5hbWUgKyAiIChleHBlY3RlZCAxIG9yIDIsIGdvdCAi
ICsgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCArICIpIik7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSAib3BlcmF0b3IqIjoKLSAgICAgICAgY2FzZSAib3BlcmF0b3IvIjoKLSAgICAg
ICAgY2FzZSAib3BlcmF0b3IlIjoKLSAgICAgICAgY2FzZSAib3BlcmF0b3ImIjoKLSAgICAgICAg
Y2FzZSAib3BlcmF0b3J8IjoKLSAgICAgICAgY2FzZSAib3BlcmF0b3JeIjoKLSAgICAgICAgY2Fz
ZSAib3BlcmF0b3I8PCI6Ci0gICAgICAgIGNhc2UgIm9wZXJhdG9yPj4iOgotICAgICAgICAgICAg
aWYgKGZ1bmMucGFyYW1ldGVycy5sZW5ndGggIT0gMikKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJJbmNvcnJlY3QgbnVtYmVy
IG9mIHBhcmFtZXRlcnMgZm9yICIgKyBmdW5jLm5hbWUgKyAiIChleHBlY3RlZCAyLCBnb3QgIiAr
IGZ1bmMucGFyYW1ldGVycy5sZW5ndGggKyAiKSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgIm9wZXJhdG9yfiI6Ci0gICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJzLmxl
bmd0aCAhPSAxKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3Jp
Z2luLm9yaWdpblN0cmluZywgIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBmb3IgIiAr
IGZ1bmMubmFtZSArICIgKGV4cGVjdGVkIDEsIGdvdCAiICsgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0
aCArICIpIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAib3BlcmF0b3I9PSI6
Ci0gICAgICAgIGNhc2UgIm9wZXJhdG9yPCI6Ci0gICAgICAgIGNhc2UgIm9wZXJhdG9yPD0iOgot
ICAgICAgICBjYXNlICJvcGVyYXRvcj4iOgotICAgICAgICBjYXNlICJvcGVyYXRvcj49IjoKLSAg
ICAgICAgICAgIGlmIChmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICE9IDIpCi0gICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiSW5jb3Jy
ZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGZvciAiICsgZnVuYy5uYW1lICsgIiAoZXhwZWN0ZWQg
MiwgZ290ICIgKyBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICsgIikiKTsKLSAgICAgICAgICAgIGlm
ICghZnVuYy5yZXR1cm5UeXBlLmVxdWFscyh0aGlzLl9wcm9ncmFtLmludHJpbnNpY3MuYm9vbCkp
Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCAiUmV0dXJuIHR5cGUgb2YgIiArIGZ1bmMubmFtZSArICIgbXVzdCBiZSBib29sIGJ1
dCB3YXMgIiArIGZ1bmMucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSAib3BlcmF0b3JbXSI6Ci0gICAgICAgICAgICBjaGVja0dldHRlcigiaW5kZXgiKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJvcGVyYXRvcltdPSI6Ci0gICAgICAgICAg
ICBjaGVja1NldHRlcigiaW5kZXgiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
ICJvcGVyYXRvciZbXSI6Ci0gICAgICAgICAgICBjaGVja0FuZGVyKCJpbmRleCIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBpZiAoZnVuYy5uYW1l
LnN0YXJ0c1dpdGgoIm9wZXJhdG9yLiIpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZ1bmMubmFt
ZS5lbmRzV2l0aCgiPSIpKQotICAgICAgICAgICAgICAgICAgICBjaGVja1NldHRlcigiZG90Iik7
Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjaGVja0dldHRlcigi
ZG90Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAoZnVuYy5uYW1lLnN0YXJ0c1dpdGgoIm9wZXJhdG9yJi4iKSkgewotICAgICAgICAgICAg
ICAgIGNoZWNrQW5kZXIoImRvdCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgYWNjZXB0ZWQgdW5yZWNv
Z25pemVkIG9wZXJhdG9yOiAiICsgZnVuYy5uYW1lKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHZpc2l0RnVuY0RlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUuc2hhZGVyVHlwZSkg
ewotICAgICAgICAgICAgdGhpcy5fY2hlY2tTaGFkZXJUeXBlKG5vZGUpOwotICAgICAgICAgICAg
dGhpcy5fY2hlY2tTZW1hbnRpY3Mobm9kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKG5vZGUsIG5hbWUgPT4gdGhpcy5fcHJvZ3JhbS5mdW5jdGlvbnMu
Z2V0KG5hbWUpKTsKLSAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAg
IHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUuYmFzZVR5cGUudmlzaXQo
dGhpcyk7Ci0KLSAgICAgICAgbGV0IGJhc2VUeXBlID0gbm9kZS5iYXNlVHlwZS51bmlmeU5vZGU7
Ci0KLSAgICAgICAgaWYgKCFiYXNlVHlwZS5pc0ludCkKLSAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkJhc2UgdHlwZSBvZiBlbnVtIGlz
IG5vdCBhbiBpbnRlZ2VyOiAiICsgbm9kZS5iYXNlVHlwZSk7Ci0KLSAgICAgICAgZm9yIChsZXQg
bWVtYmVyIG9mIG5vZGUubWVtYmVycykgewotICAgICAgICAgICAgaWYgKCFtZW1iZXIudmFsdWUp
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCBtZW1iZXJUeXBl
ID0gbWVtYmVyLnZhbHVlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFiYXNlVHlwZS5l
cXVhbHNXaXRoQ29tbWl0KG1lbWJlclR5cGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG1lbWJlci5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBvZiBlbnVtIG1lbWJl
ciAiICsgbWVtYmVyLnZhbHVlLm5hbWUgKyAiIGRvZXMgbm90IHBhdGNoIGVudW0gYmFzZSB0eXBl
IChtZW1iZXIgdHlwZSBpcyAiICsgbWVtYmVyVHlwZSArICIsIGVudW0gYmFzZSB0eXBlIGlzICIg
KyBub2RlLmJhc2VUeXBlICsgIikiKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBuZXh0VmFs
dWUgPSBiYXNlVHlwZS5kZWZhdWx0VmFsdWU7Ci0gICAgICAgIGZvciAobGV0IG1lbWJlciBvZiBu
b2RlLm1lbWJlcnMpIHsKLSAgICAgICAgICAgIGlmIChtZW1iZXIudmFsdWUpIHsKLSAgICAgICAg
ICAgICAgICBuZXh0VmFsdWUgPSBiYXNlVHlwZS5zdWNjZXNzb3JWYWx1ZShtZW1iZXIudmFsdWUu
dW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVtYmVyLnZhbHVlID0gYmFzZVR5cGUu
Y3JlYXRlTGl0ZXJhbChtZW1iZXIub3JpZ2luLCBuZXh0VmFsdWUpOwotICAgICAgICAgICAgbmV4
dFZhbHVlID0gYmFzZVR5cGUuc3VjY2Vzc29yVmFsdWUobmV4dFZhbHVlKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGxldCBtZW1iZXJBcnJheSA9IEFycmF5LmZyb20obm9kZS5tZW1iZXJzKTsKLSAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW1iZXJBcnJheS5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgbGV0IG1lbWJlciA9IG1lbWJlckFycmF5W2ldOwotICAgICAgICAgICAgZm9yIChs
ZXQgaiA9IGkgKyAxOyBqIDwgbWVtYmVyQXJyYXkubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAg
ICAgICBsZXQgb3RoZXJNZW1iZXIgPSBtZW1iZXJBcnJheVtqXTsKLSAgICAgICAgICAgICAgICBp
ZiAoYmFzZVR5cGUudmFsdWVzRXF1YWwobWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNl
bGVjdGVkVHlwZSwgb3RoZXJNZW1iZXIudmFsdWUudW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRU
eXBlKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iob3RoZXJNZW1i
ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIkR1cGxpY2F0ZSBlbnVtIG1lbWJlciB2YWx1ZSAoIiAr
IG1lbWJlci5uYW1lICsgIiBoYXMgIiArIG1lbWJlci52YWx1ZSArICIgd2hpbGUgIiArIG90aGVy
TWVtYmVyLm5hbWUgKyAiIGhhcyAiICsgb3RoZXJNZW1iZXIudmFsdWUgKyAiKSIpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGZvdW5kWmVybyA9IGZhbHNlOwotICAg
ICAgICBmb3IgKGxldCBtZW1iZXIgb2Ygbm9kZS5tZW1iZXJzKSB7Ci0gICAgICAgICAgICBpZiAo
YmFzZVR5cGUudmFsdWVzRXF1YWwobWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVj
dGVkVHlwZSwgYmFzZVR5cGUuZGVmYXVsdFZhbHVlKSkgewotICAgICAgICAgICAgICAgIGZvdW5k
WmVybyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFmb3VuZFplcm8pCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnVtIGRvZXMgbm90IGhhdmUgYSBt
ZW1iZXIgd2l0aCB0aGUgdmFsdWUgemVybyIpOwotICAgIH0KLQotICAgIHZpc2l0VHlwZVJlZihu
b2RlKQotICAgIHsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUpCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlR5cGUgcmVmZXJlbmNlIHdpdGhvdXQgYSB0eXBlIGluIGNoZWNrZXI6ICIgKyBu
b2RlICsgIiBhdCAiICsgbm9kZS5vcmlnaW4pOwotICAgICAgICAvLyBBbGwgdGhlIHN0cnVjdHMg
d2lsbCBiZSB2aXNpdGVkIGJ5IHZpc2l0UHJvZ3JhbSgpIGl0ZXJhdGluZyB0aHJvdWdoIGVhY2gg
dG9wLWxldmVsIHR5cGUuCi0gICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcmVjdXJzZSBoZXJl
IGJlY2F1c2UgdGhlIGNvbnRlbnRzIG9mIHN0cnVjdHMgY2FuIHJlZmVyIHRvIHRoZW1zZWx2ZXMg
KGUuZy4gYSBsaW5rZWQgbGlzdCksCi0gICAgICAgIC8vIGFuZCB0aGlzIHdvdWxkIGNhbiBhbiBp
bmZpbml0ZSBsb29wLgotICAgICAgICAvLyBUeXBlZGVmcyBjYW4ndCByZWZlciB0byB0aGVtc2Vs
dmVzIGJlY2F1c2Ugd2UgY2hlY2sgdGhhdCBpbiBUeXBlRGVmUmVzb2x2ZXIuCi0gICAgICAgIGlm
ICghKG5vZGUudHlwZSBpbnN0YW5jZW9mIFN0cnVjdFR5cGUpKQotICAgICAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0VmVjdG9yVHlwZShub2RlKQotICAg
IHsKLSAgICAgICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5u
dW1FbGVtZW50cy52aXNpdCh0aGlzKTsKLQotICAgICAgICBsZXQgaXNLbm93bkFsbG93ZWRWZWN0
b3JFbGVtZW50VHlwZSA9IGZhbHNlOwotICAgICAgICBmb3IgKGxldCB2ZWN0b3JFbGVtZW50VHlw
ZU5hbWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7Ci0gICAgICAgICAgICBjb25zdCB2ZWN0b3JF
bGVtZW50VHlwZSA9IHRoaXMuX3Byb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQuZ2V0KFR5cGUsIHZl
Y3RvckVsZW1lbnRUeXBlTmFtZSk7Ci0gICAgICAgICAgICBpZiAoIXZlY3RvckVsZW1lbnRUeXBl
KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke3ZlY3RvckVsZW1lbnRU
eXBlfSBpcyBsaXN0ZWQgaW4gVmVjdG9yRWxlbWVudFR5cGVzLCBidXQgaXQgaXMgbm90IGEga25v
d24gbmF0aXZlIHR5cGUgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgb3IgaW50cmluc2ljcy5gKTsK
LSAgICAgICAgICAgIGlmICh2ZWN0b3JFbGVtZW50VHlwZS5lcXVhbHMobm9kZS5lbGVtZW50VHlw
ZSkpIHsKLSAgICAgICAgICAgICAgICBpc0tub3duQWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
Ci0gICAgICAgIGlmICghaXNLbm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSkKLSAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke25vZGUuZWxlbWVudFR5cGV9IGlzIG5vdCBhIHBl
cm1pdHRlZCB2ZWN0b3IgZWxlbWVudCB0eXBlLmApOwotICAgICAgICBpZiAobm9kZS5udW1FbGVt
ZW50c1ZhbHVlICE9IDIgJiYgbm9kZS5udW1FbGVtZW50c1ZhbHVlICE9IDMgJiYgbm9kZS5udW1F
bGVtZW50c1ZhbHVlICE9IDQpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihgJHtu
b2RlLnRvU3RyaW5nKCl9OiAke25vZGUubnVtRWxlbWVudHNWYWx1ZX0gaXMgbm90IDIsIDMsIG9y
IDQuYCk7Ci0gICAgfQotCi0gICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCi0gICAgewotICAgICAg
ICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICBub2RlLm51bVJvd3Mudmlz
aXQodGhpcyk7Ci0gICAgICAgIG5vZGUubnVtQ29sdW1ucy52aXNpdCh0aGlzKTsKLQotICAgICAg
ICBsZXQgaXNLbm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSA9IGZhbHNlOwotICAgICAgICBm
b3IgKGxldCBlbGVtZW50VHlwZU5hbWUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKLSAgICAgICAg
ICAgIGNvbnN0IGVsZW1lbnRUeXBlID0gdGhpcy5fcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5n
ZXQoVHlwZSwgZWxlbWVudFR5cGVOYW1lKTsKLSAgICAgICAgICAgIGlmICghZWxlbWVudFR5cGUp
Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoYCR7ZWxlbWVudFR5cGVOYW1l
fSBpcyBub3QgYSBrbm93biBuYXRpdmUgdHlwZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBvciBp
bnRyaW5zaWNzLmApOwotICAgICAgICAgICAgaWYgKGVsZW1lbnRUeXBlLmVxdWFscyhub2RlLmVs
ZW1lbnRUeXBlKSkgewotICAgICAgICAgICAgICAgIGlzS25vd25BbGxvd2VkVmVjdG9yRWxlbWVu
dFR5cGUgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKCFpc0tub3duQWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlKQot
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoYCR7bm9kZS5lbGVtZW50VHlwZX0gaXMg
bm90IGEgcGVybWl0dGVkIHZlY3RvciBlbGVtZW50IHR5cGUuYCk7Ci0gICAgICAgIGlmIChub2Rl
Lm51bVJvd3NWYWx1ZSAhPSAyICYmIG5vZGUubnVtUm93c1ZhbHVlICE9IDMgJiYgbm9kZS5udW1S
b3dzVmFsdWUgIT0gNCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke25vZGUu
dG9TdHJpbmcoKX06ICR7bm9kZS5udW1Sb3dzVmFsdWV9IGlzIG5vdCAyLCAzLCBvciA0LmApOwot
ICAgICAgICBpZiAobm9kZS5udW1Db2x1bW5zVmFsdWUgIT0gMiAmJiBub2RlLm51bUNvbHVtbnNW
YWx1ZSAhPSAzICYmIG5vZGUubnVtQ29sdW1uc1ZhbHVlICE9IDQpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihgJHtub2RlLnRvU3RyaW5nKCl9OiAke25vZGUubnVtQ29sdW1uc1Zh
bHVlfSBpcyBub3QgMiwgMywgb3IgNC5gKTsKLSAgICB9Ci0KLSAgICB2aXNpdEFycmF5VHlwZShu
b2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsKLQotICAg
ICAgICBpZiAoIW5vZGUubnVtRWxlbWVudHMuaXNDb25zdGV4cHIpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBsZW5ndGgg
bXVzdCBiZSBjb25zdGV4cHIiKTsKLQotICAgICAgICBsZXQgdHlwZSA9IG5vZGUubnVtRWxlbWVu
dHMudmlzaXQodGhpcyk7Ci0KLSAgICAgICAgaWYgKCF0eXBlLmVxdWFsc1dpdGhDb21taXQodGhp
cy5fcHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQpKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBl
RXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkgbGVuZ3RoIG11c3QgYmUgYSB1
aW50Iik7Ci0gICAgfQotCi0gICAgdmlzaXRWYXJpYWJsZURlY2wobm9kZSkKLSAgICB7Ci0gICAg
ICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKG5vZGUuaW5pdGlhbGl6ZXIp
IHsKLSAgICAgICAgICAgIGxldCBsaHNUeXBlID0gbm9kZS50eXBlOwotICAgICAgICAgICAgbGV0
IHJoc1R5cGUgPSBub2RlLmluaXRpYWxpemVyLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgaWYg
KCFsaHNUeXBlLmVxdWFsc1dpdGhDb21taXQocmhzVHlwZSkpCi0gICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBtaXNtYXRj
aCBpbiB2YXJpYWJsZSBpbml0aWFsaXphdGlvbjogIiArIGxoc1R5cGUgKyAiIHZlcnN1cyAiICsg
cmhzVHlwZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2aXNpdEFzc2lnbm1lbnQobm9kZSkK
LSAgICB7Ci0gICAgICAgIGxldCBsaHNUeXBlID0gbm9kZS5saHMudmlzaXQodGhpcyk7Ci0gICAg
ICAgIGlmICghbm9kZS5saHMuaXNMVmFsdWUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVF
cnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJMSFMgb2YgYXNzaWdubWVudCBpcyBub3Qg
YW4gTFZhbHVlOiAiICsgbm9kZS5saHMgKyBub2RlLmxocy5ub3RMVmFsdWVSZWFzb25TdHJpbmcp
OwotICAgICAgICBpZiAoIWlzQWRkcmVzc1NwYWNlKG5vZGUubGhzLmFkZHJlc3NTcGFjZSkpCi0g
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nfTog
VW5rbm93biBhZGRyZXNzIHNwYWNlIGluIG5vZGUgJHtub2RlLmxoc31gKTsKLSAgICAgICAgaWYg
KG5vZGUubGhzLmFkZHJlc3NTcGFjZSA9PSAiY29uc3RhbnQiKQotICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ2Fubm90IGFzc2lnbiB0
byB2YXJpYWJsZSBpbiB0aGUgY29uc3RhbnQgYWRkcmVzcyBzcGFjZS4iKTsKLSAgICAgICAgbGV0
IHJoc1R5cGUgPSBub2RlLnJocy52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKCFsaHNUeXBlLmVx
dWFsc1dpdGhDb21taXQocmhzVHlwZSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIG1pc21hdGNoIGluIGFzc2lnbm1lbnQ6
ICIgKyBsaHNUeXBlICsgIiB2ZXJzdXMgIiArIHJoc1R5cGUpOwotICAgICAgICBub2RlLnR5cGUg
PSBsaHNUeXBlOwotICAgICAgICByZXR1cm4gbGhzVHlwZTsKLSAgICB9Ci0KLSAgICB2aXNpdElk
ZW50aXR5RXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUudGFyZ2V0
LnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lv
bihub2RlKQotICAgIHsKLSAgICAgICAgbGV0IGxoc1R5cGUgPSBub2RlLmxWYWx1ZS52aXNpdCh0
aGlzKTsKLSAgICAgICAgaWYgKCFub2RlLmxWYWx1ZS5pc0xWYWx1ZSkKLSAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkxIUyBvZiByZWFk
LW1vZGlmeS13cml0ZSBpcyBub3QgYW4gTFZhbHVlOiAiICsgbm9kZS5sVmFsdWUgKyBub2RlLmxW
YWx1ZS5ub3RMVmFsdWVSZWFzb25TdHJpbmcpOwotICAgICAgICBub2RlLm9sZFZhbHVlVmFyLnR5
cGUgPSBsaHNUeXBlOwotICAgICAgICBub2RlLm5ld1ZhbHVlVmFyLnR5cGUgPSBsaHNUeXBlOwot
ICAgICAgICBub2RlLm9sZFZhbHVlVmFyLnZpc2l0KHRoaXMpOwotICAgICAgICBub2RlLm5ld1Zh
bHVlVmFyLnZpc2l0KHRoaXMpOwotICAgICAgICBsZXQgbmV3VmFsdWVUeXBlID0gbm9kZS5uZXdW
YWx1ZUV4cC52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKCFsaHNUeXBlLmVxdWFsc1dpdGhDb21t
aXQobmV3VmFsdWVUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgV1R5cGVFcnJvcihub2Rl
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIG1pc21hdGNoIGluIHJlYWQtbW9kaWZ5LXdyaXRl
OiAiICsgbGhzVHlwZSArICIgdmVyc3VzICIgKyBuZXdWYWx1ZVR5cGUpOwotICAgICAgICByZXR1
cm4gbm9kZS5yZXN1bHRFeHAudmlzaXQodGhpcyk7Ci0gICAgfQotCi0gICAgdmlzaXRBbm9ueW1v
dXNWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUpCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkFub255bW91cyB2YXJpYWJsZSBtdXN0IGtub3cgdHlwZSBi
ZWZvcmUgZmlyc3QgYXBwZWFyYW5jZSIpOwotICAgIH0KLQotICAgIHZpc2l0RGVyZWZlcmVuY2VF
eHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgdHlwZSA9IG5vZGUucHRyLnZpc2l0
KHRoaXMpLnVuaWZ5Tm9kZTsKLSAgICAgICAgaWYgKCF0eXBlLmlzUHRyKQotICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBwYXNz
ZWQgdG8gZGVyZWZlcmVuY2UgaXMgbm90IGEgcG9pbnRlcjogIiArIHR5cGUpOwotICAgICAgICBu
b2RlLnR5cGUgPSB0eXBlLmVsZW1lbnRUeXBlOwotICAgICAgICBub2RlLmFkZHJlc3NTcGFjZSA9
IHR5cGUuYWRkcmVzc1NwYWNlOwotICAgICAgICBpZiAoIW5vZGUuYWRkcmVzc1NwYWNlKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIGFkZHJlc3Mgc3BhY2UgaW4gdHlwZTogIiAr
IHR5cGUpOwotICAgICAgICByZXR1cm4gbm9kZS50eXBlOwotICAgIH0KLQotICAgIHZpc2l0TWFr
ZVB0ckV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBlbGVtZW50VHlwZSA9IG5v
ZGUubFZhbHVlLnZpc2l0KHRoaXMpLnVuaWZ5Tm9kZTsKLSAgICAgICAgaWYgKCFub2RlLmxWYWx1
ZS5pc0xWYWx1ZSkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIk9wZXJhbmQgdG8gJiBpcyBub3QgYW4gTFZhbHVlOiAiICsgbm9kZS5s
VmFsdWUgKyBub2RlLmxWYWx1ZS5ub3RMVmFsdWVSZWFzb25TdHJpbmcpOwotCi0gICAgICAgIHJl
dHVybiBuZXcgUHRyVHlwZShub2RlLm9yaWdpbiwgbm9kZS5sVmFsdWUuYWRkcmVzc1NwYWNlLCBl
bGVtZW50VHlwZSk7Ci0gICAgfQotCi0gICAgdmlzaXRNYWtlQXJyYXlSZWZFeHByZXNzaW9uKG5v
ZGUpCi0gICAgewotICAgICAgICBsZXQgZWxlbWVudFR5cGUgPSBub2RlLmxWYWx1ZS52aXNpdCh0
aGlzKS51bmlmeU5vZGU7Ci0gICAgICAgIGlmIChlbGVtZW50VHlwZS5pc1B0cikgewotICAgICAg
ICAgICAgbm9kZS5iZWNvbWUobmV3IENvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbihub2Rl
Lm9yaWdpbiwgbm9kZS5sVmFsdWUpKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXlSZWZU
eXBlKG5vZGUub3JpZ2luLCBlbGVtZW50VHlwZS5hZGRyZXNzU3BhY2UsIGVsZW1lbnRUeXBlLmVs
ZW1lbnRUeXBlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghbm9kZS5sVmFsdWUuaXNMVmFs
dWUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJPcGVyYW5kIHRvIEAgaXMgbm90IGFuIExWYWx1ZTogIiArIG5vZGUubFZhbHVlICsg
bm9kZS5sVmFsdWUubm90TFZhbHVlUmVhc29uU3RyaW5nKTsKLQotICAgICAgICBpZiAoZWxlbWVu
dFR5cGUuaXNBcnJheSkgewotICAgICAgICAgICAgbm9kZS5udW1FbGVtZW50cyA9IGVsZW1lbnRU
eXBlLm51bUVsZW1lbnRzOwotICAgICAgICAgICAgZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZS5l
bGVtZW50VHlwZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBub2RlLm51bUVsZW1lbnRz
ID0gVWludExpdGVyYWwud2l0aFR5cGUobm9kZS5vcmlnaW4sIDEsIHRoaXMuX3Byb2dyYW0uaW50
cmluc2ljcy51aW50KTsKLQotICAgICAgICByZXR1cm4gbmV3IEFycmF5UmVmVHlwZShub2RlLm9y
aWdpbiwgbm9kZS5sVmFsdWUuYWRkcmVzc1NwYWNlLCBlbGVtZW50VHlwZSk7Ci0gICAgfQotCi0g
ICAgdmlzaXRDb252ZXJ0VG9BcnJheVJlZkV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5vdCBleGlzdCB5ZXQuIik7Ci0gICAgfQotCi0gICAg
X2ZpbmlzaFZpc2l0aW5nUHJvcGVydHlBY2Nlc3Mobm9kZSwgYmFzZVR5cGUsIGV4dHJhQXJncywg
ZXh0cmFBcmdUeXBlcykKLSAgICB7Ci0gICAgICAgIGJhc2VUeXBlID0gYmFzZVR5cGUudmlzaXQo
bmV3IEF1dG9XcmFwcGVyKCkpCi0gICAgICAgIG5vZGUuYmFzZVR5cGUgPSBiYXNlVHlwZTsKLQot
ICAgICAgICAvLyBTdWNoIGEgdHlwZSBtdXN0IGV4aXN0LiBUaGlzIG1heSB0aHJvdyBpZiBpdCBk
b2Vzbid0LgotICAgICAgICBsZXQgdHlwZUZvckFuZCA9IGJhc2VUeXBlLmFyZ3VtZW50VHlwZUZv
ckFuZE92ZXJsb2FkKG5vZGUub3JpZ2luKTsKLSAgICAgICAgaWYgKCF0eXBlRm9yQW5kKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IHR5cGVGb3JBbmQiKTsKLQotICAg
ICAgICBsZXQgZXJyb3JGb3JHZXQ7Ci0gICAgICAgIGxldCBlcnJvckZvckFuZDsKLQotICAgICAg
ICB0cnkgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUo
Ci0gICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9hZHMs
Ci0gICAgICAgICAgICAgICAgbm9kZS5nZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0cmFB
cmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCwgdGhpcy5fcHJvZ3JhbSk7
Ci0gICAgICAgICAgICBub2RlLmNhbGxGb3JHZXQgPSByZXN1bHQuY2FsbDsKLSAgICAgICAgICAg
IG5vZGUucmVzdWx0VHlwZUZvckdldCA9IHJlc3VsdC5yZXN1bHRUeXBlOwotICAgICAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgV1R5cGVFcnJvcikpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgICAgIGVycm9yRm9yR2V0ID0gZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsZXQgYmFzZUZvckFuZCA9IGJh
c2VUeXBlLmFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQobm9kZS5vcmlnaW4sIG5vZGUuYmFzZSk7Ci0K
LSAgICAgICAgICAgIGxldCByZXN1bHQgPSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKAotICAgICAg
ICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLnBvc3NpYmxlQW5kT3ZlcmxvYWRzLAotICAgICAg
ICAgICAgICAgIG5vZGUuYW5kRnVuY05hbWUsIFtiYXNlRm9yQW5kLCAuLi5leHRyYUFyZ3NdLCBb
dHlwZUZvckFuZCwgLi4uZXh0cmFBcmdUeXBlc10sCi0gICAgICAgICAgICAgICAgbnVsbCwgdGhp
cy5fcHJvZ3JhbSk7Ci0gICAgICAgICAgICBub2RlLmNhbGxGb3JBbmQgPSByZXN1bHQuY2FsbDsK
LSAgICAgICAgICAgIG5vZGUucmVzdWx0VHlwZUZvckFuZCA9IHJlc3VsdC5yZXN1bHRUeXBlLnVu
aWZ5Tm9kZS5yZXR1cm5UeXBlRnJvbUFuZE92ZXJsb2FkKG5vZGUub3JpZ2luKTsKLSAgICAgICAg
fSBjYXRjaCAoZSkgewotICAgICAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ip
KQotICAgICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICBlcnJvckZvckFuZCA9IGU7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW5vZGUucmVzdWx0VHlwZUZvckdldCAmJiAhbm9k
ZS5yZXN1bHRUeXBlRm9yQW5kKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigK
LSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsCi0gICAgICAgICAgICAg
ICAgIkNhbm5vdCByZXNvbHZlIGFjY2VzczsgdHJpZWQgYnktdmFsdWU6XG4iICsKLSAgICAgICAg
ICAgICAgICBlcnJvckZvckdldC50eXBlRXJyb3JNZXNzYWdlICsgIlxuIiArCi0gICAgICAgICAg
ICAgICAgImFuZCB0cmllZCBieS1wb2ludGVyOlxuIiArCi0gICAgICAgICAgICAgICAgZXJyb3JG
b3JBbmQudHlwZUVycm9yTWVzc2FnZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobm9kZS5y
ZXN1bHRUeXBlRm9yR2V0ICYmIG5vZGUucmVzdWx0VHlwZUZvckFuZAotICAgICAgICAgICAgJiYg
IW5vZGUucmVzdWx0VHlwZUZvckdldC5lcXVhbHMobm9kZS5yZXN1bHRUeXBlRm9yQW5kKSkKLSAg
ICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywg
IlJlc3VsdCB0eXBlIHJlc29sdmVkIGJ5LXZhbHVlICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yR2V0
ICsgIikgZG9lcyBub3QgbWF0Y2ggcmVzdWx0IHR5cGUgcmVzb2x2ZWQgYnktcG9pbnRlciAoIiAr
IG5vZGUucmVzdWx0VHlwZUZvckFuZCArICIpIik7Ci0KLSAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKAotICAgICAgICAgICAgICAg
IG5vZGUub3JpZ2luLCBub2RlLnBvc3NpYmxlU2V0T3ZlcmxvYWRzLAotICAgICAgICAgICAgICAg
IG5vZGUuc2V0RnVuY05hbWUsIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNl
VHlwZSwgLi4uZXh0cmFBcmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCwgdGhpcy5fcHJv
Z3JhbSk7Ci0gICAgICAgICAgICBub2RlLmNhbGxGb3JTZXQgPSByZXN1bHQuY2FsbDsKLSAgICAg
ICAgICAgIGlmICghcmVzdWx0LnJlc3VsdFR5cGUuZXF1YWxzKGJhc2VUeXBlKSkKLSAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJS
ZXN1bHQgdHlwZSBvZiBzZXR0ZXIgIiArIHJlc3VsdC5jYWxsLmZ1bmMgKyAiIGlzIG5vdCB0aGUg
YmFzZSB0eXBlICIgKyBiYXNlVHlwZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ICAgIGlmICghKGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKSkKLSAgICAgICAgICAgICAgICB0aHJv
dyBlOwotICAgICAgICAgICAgbm9kZS5lcnJvckZvclNldCA9IGU7Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyBPSywgbm93IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBhbiBsdmFsdWUu
IFdlIGFyZSBhbiBsdmFsdWUgaWYgd2UgY2FuIGJlIGFzc2lnbmVkIHRvLiBXZSBjYW4KLSAgICAg
ICAgLy8gYmUgYXNzaWduZWQgdG8gaWYgd2UgaGF2ZSBhbiBhbmRlciBvciBzZXR0ZXIuIEJ1dCBp
dCdzIHdlaXJkZXIgdGhhbiB0aGF0LiBXZSBhbHNvIG5lZWQgdGhlIGJhc2UgdG8gYmUKLSAgICAg
ICAgLy8gYW4gbHZhbHVlLCBleGNlcHQgdW5sZXNzIHRoZSBiYXNlIGlzIGFuIGFycmF5IHJlZmVy
ZW5jZS4KLSAgICAgICAgaWYgKCFub2RlLmNhbGxGb3JBbmQgJiYgIW5vZGUuY2FsbEZvclNldCkg
ewotICAgICAgICAgICAgbm9kZS5pc0xWYWx1ZSA9IGZhbHNlOwotICAgICAgICAgICAgbm9kZS5u
b3RMVmFsdWVSZWFzb24gPQotICAgICAgICAgICAgICAgICJIYXZlIG5laXRoZXIgYW5kZXIgbm9y
IHNldHRlci4gVHJpZWQgc2V0dGVyOlxuIiArCi0gICAgICAgICAgICAgICAgbm9kZS5lcnJvckZv
clNldC50eXBlRXJyb3JNZXNzYWdlICsgIlxuIiArCi0gICAgICAgICAgICAgICAgImFuZCB0cmll
ZCBhbmRlcjpcbiIgKwotICAgICAgICAgICAgICAgIGVycm9yRm9yQW5kLnR5cGVFcnJvck1lc3Nh
Z2U7Ci0gICAgICAgIH0gZWxzZSBpZiAoIW5vZGUuYmFzZS5pc0xWYWx1ZSAmJiAhYmFzZVR5cGUu
aXNBcnJheVJlZikgewotICAgICAgICAgICAgbm9kZS5pc0xWYWx1ZSA9IGZhbHNlOwotICAgICAg
ICAgICAgbm9kZS5ub3RMVmFsdWVSZWFzb24gPSAiQmFzZSBvZiBwcm9wZXJ0eSBhY2Nlc3MgaXMg
bmVpdGhlciBhIGx2YWx1ZSBub3IgYW4gYXJyYXkgcmVmZXJlbmNlIjsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIG5vZGUuaXNMVmFsdWUgPSB0cnVlOwotICAgICAgICAgICAgbm9kZS5h
ZGRyZXNzU3BhY2UgPSBiYXNlVHlwZS5hZGRyZXNzU3BhY2UgPyBiYXNlVHlwZS5hZGRyZXNzU3Bh
Y2UgOiBub2RlLmJhc2UuYWRkcmVzc1NwYWNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJu
IG5vZGUucmVzdWx0VHlwZTsKLSAgICB9Ci0KLSAgICB2aXNpdERvdEV4cHJlc3Npb24obm9kZSkK
LSAgICB7Ci0gICAgICAgIGxldCBzdHJ1Y3RUeXBlID0gbm9kZS5zdHJ1Y3QudmlzaXQodGhpcyku
dW5pZnlOb2RlOwotICAgICAgICByZXR1cm4gdGhpcy5fZmluaXNoVmlzaXRpbmdQcm9wZXJ0eUFj
Y2Vzcyhub2RlLCBzdHJ1Y3RUeXBlLCBbXSwgW10pOwotICAgIH0KLQotICAgIHZpc2l0SW5kZXhF
eHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgYXJyYXlUeXBlID0gbm9kZS5hcnJh
eS52aXNpdCh0aGlzKS51bmlmeU5vZGU7Ci0gICAgICAgIGxldCBpbmRleFR5cGUgPSBub2RlLmlu
ZGV4LnZpc2l0KHRoaXMpOwotCi0gICAgICAgIHJldHVybiB0aGlzLl9maW5pc2hWaXNpdGluZ1By
b3BlcnR5QWNjZXNzKG5vZGUsIGFycmF5VHlwZSwgW25vZGUuaW5kZXhdLCBbaW5kZXhUeXBlXSk7
Ci0gICAgfQotCi0gICAgdmlzaXRWYXJpYWJsZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYg
KCFub2RlLnZhcmlhYmxlLnR5cGUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlZhcmlh
YmxlIGhhcyBubyB0eXBlOiAiICsgbm9kZS52YXJpYWJsZSk7Ci0gICAgICAgIHJldHVybiBub2Rl
LnZhcmlhYmxlLnR5cGU7Ci0gICAgfQotCi0gICAgdmlzaXRSZXR1cm4obm9kZSkKLSAgICB7Ci0g
ICAgICAgIGlmIChub2RlLnZhbHVlKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0VHlwZSA9IG5v
ZGUudmFsdWUudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdFR5cGUpCi0gICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJlc3VsdCB0eXBlIGZyb20gIiArIG5v
ZGUudmFsdWUpOwotICAgICAgICAgICAgaWYgKCFub2RlLmZ1bmMucmV0dXJuVHlwZS5lcXVhbHNX
aXRoQ29tbWl0KHJlc3VsdFR5cGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRyeWluZyB0byByZXR1cm4gIiArIHJlc3Vs
dFR5cGUgKyAiIGluIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zICIgKyBub2RlLmZ1bmMucmV0dXJu
VHlwZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW5v
ZGUuZnVuYy5yZXR1cm5UeXBlLmVxdWFsc1dpdGhDb21taXQodGhpcy5fcHJvZ3JhbS5pbnRyaW5z
aWNzLnZvaWQpKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiTm9uLXZvaWQgZnVuY3Rpb24gbXVzdCByZXR1cm4gYSB2YWx1ZSIpOwot
ICAgIH0KLQotICAgIHZpc2l0R2VuZXJpY0xpdGVyYWwobm9kZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBub2RlLnR5cGU7Ci0gICAgfQotCi0gICAgdmlzaXROdWxsTGl0ZXJhbChub2RlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIG5vZGUudHlwZTsKLSAgICB9Ci0KLSAgICB2aXNpdEJvb2xMaXRl
cmFsKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvZ3JhbS5pbnRyaW5zaWNz
LmJvb2w7Ci0gICAgfQotCi0gICAgdmlzaXRFbnVtTGl0ZXJhbChub2RlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5vZGUubWVtYmVyLmVudW1UeXBlOwotICAgIH0KLQotICAgIF9yZXF1aXJlQm9v
bChleHByZXNzaW9uKQotICAgIHsKLSAgICAgICAgbGV0IHR5cGUgPSBleHByZXNzaW9uLnZpc2l0
KHRoaXMpOwotICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkV4cHJlc3Npb24gaGFzIG5vIHR5cGUsIGJ1dCBzaG91bGQgYmUgYm9vbDogIiArIGV4cHJlc3Np
b24pOwotICAgICAgICBpZiAoIXR5cGUuZXF1YWxzKHRoaXMuX3Byb2dyYW0uaW50cmluc2ljcy5i
b29sKSkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKCJFeHByZXNzaW9uIGlzbid0
IGEgYm9vbDogIiArIGV4cHJlc3Npb24pOwotICAgIH0KLQotICAgIHZpc2l0TG9naWNhbE5vdChu
b2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVxdWlyZUJvb2wobm9kZS5vcGVyYW5kKTsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX3Byb2dyYW0uaW50cmluc2ljcy5ib29sOwotICAgIH0KLQotICAg
IHZpc2l0TG9naWNhbEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlcXVp
cmVCb29sKG5vZGUubGVmdCk7Ci0gICAgICAgIHRoaXMuX3JlcXVpcmVCb29sKG5vZGUucmlnaHQp
OwotICAgICAgICByZXR1cm4gdGhpcy5fcHJvZ3JhbS5pbnRyaW5zaWNzLmJvb2w7Ci0gICAgfQot
Ci0gICAgdmlzaXRJZlN0YXRlbWVudChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVxdWly
ZUJvb2wobm9kZS5jb25kaXRpb25hbCk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsK
LSAgICAgICAgaWYgKG5vZGUuZWxzZUJvZHkpCi0gICAgICAgICAgICBub2RlLmVsc2VCb2R5LnZp
c2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0V2hpbGVMb29wKG5vZGUpCi0gICAgewotICAg
ICAgICB0aGlzLl9yZXF1aXJlQm9vbChub2RlLmNvbmRpdGlvbmFsKTsKLSAgICAgICAgbm9kZS5i
b2R5LnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0RG9XaGlsZUxvb3Aobm9kZSkKLSAg
ICB7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgdGhpcy5fcmVxdWly
ZUJvb2wobm9kZS5jb25kaXRpb25hbCk7Ci0gICAgfQotCi0gICAgdmlzaXRGb3JMb29wKG5vZGUp
Ci0gICAgewotICAgICAgICBpZiAobm9kZS5pbml0aWFsaXphdGlvbikKLSAgICAgICAgICAgIG5v
ZGUuaW5pdGlhbGl6YXRpb24udmlzaXQodGhpcyk7Ci0gICAgICAgIGlmIChub2RlLmNvbmRpdGlv
bikKLSAgICAgICAgICAgIHRoaXMuX3JlcXVpcmVCb29sKG5vZGUuY29uZGl0aW9uKTsKLSAgICAg
ICAgaWYgKG5vZGUuaW5jcmVtZW50KQotICAgICAgICAgICAgbm9kZS5pbmNyZW1lbnQudmlzaXQo
dGhpcyk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNp
dFN3aXRjaFN0YXRlbWVudChub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHR5cGUgPSBub2RlLnZh
bHVlLnZpc2l0KHRoaXMpLmNvbW1pdCgpOwotCi0gICAgICAgIGlmICghdHlwZS51bmlmeU5vZGUu
aXNJbnQgJiYgISh0eXBlLnVuaWZ5Tm9kZSBpbnN0YW5jZW9mIEVudW1UeXBlKSkKLSAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5v
dCBzd2l0Y2ggb24gbm9uLWludGVnZXIvbm9uLWVudW0gdHlwZTogIiArIHR5cGUpOwotCi0gICAg
ICAgIG5vZGUudHlwZSA9IHR5cGU7Ci0KLSAgICAgICAgbGV0IGhhc0RlZmF1bHQgPSBmYWxzZTsK
LQotICAgICAgICBmb3IgKGxldCBzd2l0Y2hDYXNlIG9mIG5vZGUuc3dpdGNoQ2FzZXMpIHsKLSAg
ICAgICAgICAgIHN3aXRjaENhc2UuYm9keS52aXNpdCh0aGlzKTsKLQotICAgICAgICAgICAgaWYg
KHN3aXRjaENhc2UuaXNEZWZhdWx0KSB7Ci0gICAgICAgICAgICAgICAgaGFzRGVmYXVsdCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGlmICghc3dpdGNoQ2FzZS52YWx1ZS5pc0NvbnN0ZXhwcikKLSAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihzd2l0Y2hDYXNlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJTd2l0
Y2ggY2FzZSBub3QgY29uc3RleHByOiAiICsgc3dpdGNoQ2FzZS52YWx1ZSk7Ci0KLSAgICAgICAg
ICAgIGxldCBjYXNlVHlwZSA9IHN3aXRjaENhc2UudmFsdWUudmlzaXQodGhpcyk7Ci0gICAgICAg
ICAgICBpZiAoIXR5cGUuZXF1YWxzV2l0aENvbW1pdChjYXNlVHlwZSkpCi0gICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Ioc3dpdGNoQ2FzZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
U3dpdGNoIGNhc2UgdHlwZSBkb2VzIG5vdCBtYXRjaCBzd2l0Y2ggdmFsdWUgdHlwZSAoY2FzZSB0
eXBlIGlzICIgKyBjYXNlVHlwZSArICIgYnV0IHN3aXRjaCB2YWx1ZSB0eXBlIGlzICIgKyB0eXBl
ICsgIikiKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5z
d2l0Y2hDYXNlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgbGV0IGZpcnN0Q2FzZSA9IG5v
ZGUuc3dpdGNoQ2FzZXNbaV07Ci0gICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBu
b2RlLnN3aXRjaENhc2VzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHNlY29u
ZENhc2UgPSBub2RlLnN3aXRjaENhc2VzW2pdOwotCi0gICAgICAgICAgICAgICAgaWYgKGZpcnN0
Q2FzZS5pc0RlZmF1bHQgIT0gc2Vjb25kQ2FzZS5pc0RlZmF1bHQpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgaWYgKGZpcnN0Q2FzZS5pc0RlZmF1bHQp
Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHNlY29uZENhc2Uub3Jp
Z2luLm9yaWdpblN0cmluZywgIkR1cGxpY2F0ZSBkZWZhdWx0IGNhc2UgaW4gc3dpdGNoIHN0YXRl
bWVudCIpOwotCi0gICAgICAgICAgICAgICAgbGV0IHZhbHVlc0VxdWFsID0gdHlwZS51bmlmeU5v
ZGUudmFsdWVzRXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGZpcnN0Q2FzZS52YWx1ZS51bmlm
eU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUsCi0gICAgICAgICAgICAgICAgICAgIHNlY29uZENh
c2UudmFsdWUudW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKLSAgICAgICAgICAgICAg
ICBpZiAodmFsdWVzRXF1YWwpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKHNlY29uZENhc2Uub3JpZ2luLm9yaWdpblN0cmluZywgIkR1cGxpY2F0ZSBjYXNlIGluIHN3
aXRjaCBzdGF0ZW1lbnQgZm9yIHZhbHVlICIgKyBmaXJzdENhc2UudmFsdWUudW5pZnlOb2RlLnZh
bHVlRm9yU2VsZWN0ZWRUeXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAg
IGlmICghaGFzRGVmYXVsdCkgewotICAgICAgICAgICAgbGV0IGluY2x1ZGVkVmFsdWVzID0gbmV3
IFNldCgpOwotICAgICAgICAgICAgZm9yIChsZXQgc3dpdGNoQ2FzZSBvZiBub2RlLnN3aXRjaENh
c2VzKQotICAgICAgICAgICAgICAgIGluY2x1ZGVkVmFsdWVzLmFkZChzd2l0Y2hDYXNlLnZhbHVl
LnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7Ci0KLSAgICAgICAgICAgIGZvciAobGV0
IHt2YWx1ZSwgbmFtZX0gb2YgdHlwZS51bmlmeU5vZGUuYWxsVmFsdWVzKCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIWluY2x1ZGVkVmFsdWVzLmhhcyh2YWx1ZSkpCi0gICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlZhbHVl
IG5vdCBoYW5kbGVkIGJ5IHN3aXRjaCBzdGF0ZW1lbnQ6ICIgKyBuYW1lKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHZpc2l0Q29tbWFFeHByZXNzaW9uKG5vZGUpCi0g
ICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgZm9yIChsZXQgZXhwcmVz
c2lvbiBvZiBub2RlLmxpc3QpCi0gICAgICAgICAgICByZXN1bHQgPSBleHByZXNzaW9uLnZpc2l0
KHRoaXMpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0VGVybmFy
eUV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlcXVpcmVCb29sKG5vZGUu
cHJlZGljYXRlKTsKLSAgICAgICAgbGV0IGJvZHlUeXBlID0gbm9kZS5ib2R5RXhwcmVzc2lvbi52
aXNpdCh0aGlzKTsKLSAgICAgICAgbGV0IGVsc2VUeXBlID0gbm9kZS5lbHNlRXhwcmVzc2lvbi52
aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKCFib2R5VHlwZSkKLSAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiVGVybmFyeSBleHByZXNzaW9uIGJvZHkgaGFzIG5vIHR5cGU6ICIgKyBub2RlLmJv
ZHlFeHByZXNzaW9uKTsKLSAgICAgICAgaWYgKCFlbHNlVHlwZSkKLSAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiVGVybmFyeSBleHByZXNzaW9uIGVsc2UgaGFzIG5vIHR5cGU6ICIgKyBub2Rl
LmVsc2VFeHByZXNzaW9uKTsKLSAgICAgICAgaWYgKCFib2R5VHlwZS5lcXVhbHNXaXRoQ29tbWl0
KGVsc2VUeXBlKSkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIkJvZHkgYW5kIGVsc2UgY2xhdXNlIG9mIHRlcm5hcnkgc3RhdGVtZW50
IGRvbid0IGhhdmUgdGhlIHNhbWUgdHlwZTogIiArIG5vZGUpOwotICAgICAgICByZXR1cm4gYm9k
eVR5cGU7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICB7
Ci0gICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3Vt
ZW50ID0+IHsKLSAgICAgICAgICAgIGxldCBuZXdBcmd1bWVudCA9IGFyZ3VtZW50LnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgaWYgKCFuZXdBcmd1bWVudCkKLSAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoInZpc2l0b3IgcmV0dXJuZWQgbnVsbCBmb3IgIiArIGFyZ3VtZW50KTsKLSAg
ICAgICAgICAgIHJldHVybiBuZXdBcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIG5vZGUuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50VHlwZXM7
Ci0gICAgICAgIGlmIChub2RlLnJldHVyblR5cGUpCi0gICAgICAgICAgICBub2RlLnJldHVyblR5
cGUudmlzaXQodGhpcyk7Ci0KLSAgICAgICAgbGV0IHJlc3VsdCA9IG5vZGUucmVzb2x2ZShub2Rl
LnBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLl9wcm9ncmFtKTsKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0Nsb25lUHJvZ3JhbS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nsb25lUHJv
Z3JhbS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjllZGRhZDcyYmYuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nsb25lUHJvZ3JhbS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotLy8gVGhpcyBpcyBvbmx5IGN1
cnJlbnRseSB1c2VkIHRvIGNsb25lIHByb2dyYW1zIGp1c3QgYWZ0ZXIgcGFyc2luZywgc28gaXQg
ZG9lc24ndCByZWFsbHkgbmVlZCB0byBiZQotLy8gYWJsZSB0byBoYW5kbGUgYWxsIGFzcGVjdHMg
b2Ygd2hhdCBSZXdyaXRlciB3b3VsZCBuZWVkIHRvIGRvLgotCi1mdW5jdGlvbiBjbG9uZVByb2dy
YW0ocHJvZ3JhbSkKLXsKLSAgICBsZXQgcmVzdWx0ID0gbmV3IFByb2dyYW0oKTsKLSAgICBsZXQg
Y2xvbmVyID0gbmV3IFN0YXRlbWVudENsb25lcigpOwotICAgIGZvciAobGV0IHN0YXRlbWVudCBv
ZiBwcm9ncmFtLnRvcExldmVsU3RhdGVtZW50cykKLSAgICAgICAgcmVzdWx0LmFkZChzdGF0ZW1l
bnQudmlzaXQoY2xvbmVyKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29tbWFFeHByZXNzaW9uLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29tbWFFeHByZXNzaW9uLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzZjNjYTM2MzJmYS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29tbWFFeHByZXNzaW9uLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBDb21tYUV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNz
aW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGxpc3QpCi0gICAgewotICAgICAgICBzdXBl
cihvcmlnaW4pOwotICAgICAgICB0aGlzLl9saXN0ID0gbGlzdDsKLSAgICAgICAgZm9yIChsZXQg
ZXhwcmVzc2lvbiBvZiBsaXN0KSB7Ci0gICAgICAgICAgICBpZiAoIWV4cHJlc3Npb24pCi0gICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJudWxsIGV4cHJlc3Npb24iKTsKLSAgICAgICAg
fQotICAgIH0KLSAgICAKLSAgICBnZXQgbGlzdCgpIHsgcmV0dXJuIHRoaXMuX2xpc3Q7IH0KLSAg
ICAKLSAgICAvLyBOT1RFOiBJdCdzIHN1cGVyIHRlbXB0aW5nIHRvIHNheSB0aGF0IENvbW1hRXhw
cmVzc2lvbiBpcyBhbiBsVmFsdWUgaWYgaXRzIGxhc3QgZW50cnkgaXMgYW4gbFZhbHVlLiBCdXQs
Ci0gICAgLy8gUHJvcGVydHlSZXNvbHZlciByZWxpZXMgb24gdGhpcyBub3QgYmVpbmcgdGhlIGNh
c2UuCi0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICIoIiArIHRo
aXMubGlzdC50b1N0cmluZygpICsgIikiOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzNmU1ZjZmMzVlNS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi0vLyBOT1RFOiBUaGlzIGRvZXNuJ3QgbGV0IHlvdSBuZWdhdGUgY29uc3Rl
eHByIHZhcmlhYmxlcy4gSSB0aGluayB0aGF0J3MgcHJvYmFibHkgT0sgZm9yIG5vdywgYnV0IHdl
IHNob3VsZAotLy8gZml4IHRoYXQgZXZlbnR1YWxseS4KLS8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcxMjEKLQotY2xhc3MgQ29uc3RleHByRm9sZGVyIGV4dGVu
ZHMgVmlzaXRvciB7Ci0gICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAg
ICAgc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKLSAgICAgICAgCi0gICAgICAgIGlm
IChub2RlLm5hbWUgPT0gIm9wZXJhdG9yLSIKLSAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRM
aXN0Lmxlbmd0aCA9PSAxCi0gICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50TGlzdFswXS5pc0xp
dGVyYWwKLSAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLm5lZ0NvbnN0ZXhwcikg
ewotICAgICAgICAgICAgbm9kZS5iZWNvbWUobm9kZS5hcmd1bWVudExpc3RbMF0ubmVnQ29uc3Rl
eHByKG5vZGUub3JpZ2luKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnRpbnVl
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29udGludWUuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNWNjOTM3MjY0Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db250aW51ZS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQ29udGludWUgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4pCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9v
cmlnaW4gPSBvcmlnaW47Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0
aGlzLl9vcmlnaW47IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1
cm4gIkNvbnRpbnVlIjsKLSAgICB9Ci19OwotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Db252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhOGRiNGI1ZDcxLi4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db252ZXJ0UHRyVG9BcnJheVJlZkV4
cHJlc3Npb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIENv
bnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbFZhbHVlKQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luKTsK
LSAgICAgICAgdGhpcy5fbFZhbHVlID0gbFZhbHVlOwotICAgIH0KLSAgICAKLSAgICBnZXQgbFZh
bHVlKCkgeyByZXR1cm4gdGhpcy5fbFZhbHVlOyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuICJAKCIgKyB0aGlzLmxWYWx1ZSArICIpIjsKLSAgICB9Ci19Ci0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWwu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDcwZDkzNTM0OC4uMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbChjb25maWcp
Ci17Ci0gICAgY2xhc3MgR2VuZXJpY0xpdGVyYWwgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgICAg
ICAgY29uc3RydWN0b3Iob3JpZ2luLCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgc3Vw
ZXIob3JpZ2luKTsKLSAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAg
ICB0aGlzLnR5cGUgPSBjb25maWcuY3JlYXRlVHlwZS5jYWxsKHRoaXMsIG9yaWdpbiwgdmFsdWUp
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgd2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSwgdHlwZSkKLSAgICAgICAgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBHZW5l
cmljTGl0ZXJhbChvcmlnaW4sIHZhbHVlKTsKLSAgICAgICAgICAgIHJlc3VsdC50eXBlID0gVHlw
ZVJlZi53cmFwKHR5cGUpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgZ2V0IHZhbHVlKCkgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH0KLSAg
ICAgICAgCi0gICAgICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb25jZSB3ZSBzdXBw
b3J0IGludDY0LCB3ZSdsbCBuZWVkIHRoYXQgdG8gYmUgcmVwcmVzZW50ZWQgYXMgYW4gb2JqZWN0
Ci0gICAgICAgIC8vIHJhdGhlciB0aGFuIGFzIGEgcHJpbWl0aXZlLiBUaGVuIHdlJ2xsIG5lZWQg
dG8gY29udmVydC4KLSAgICAgICAgZ2V0IHZhbHVlRm9yU2VsZWN0ZWRUeXBlKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgbGV0IHR5cGUgPSB0aGlzLnR5cGUudHlwZS51bmlmeU5vZGU7Ci0gICAg
ICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5u
b3QgZ2V0IHR5cGUgZm9yICIgKyB0aGlzKTsKLSAgICAgICAgICAgIGxldCBmdW5jID0gdHlwZVsi
Zm9ybWF0VmFsdWVGcm9tIiArIGNvbmZpZy5saXRlcmFsQ2xhc3NOYW1lXTsKLSAgICAgICAgICAg
IGlmICghZnVuYykKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBnZXQg
ZnVuY3Rpb24gdG8gZm9ybWF0IHR5cGUgZm9yICIgKyBjb25maWcubGl0ZXJhbENsYXNzTmFtZSAr
ICIgZnJvbSAiICsgdHlwZSk7Ci0gICAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHR5cGUsIHRo
aXMudmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBnZXQgaXNDb25zdGV4cHIo
KSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIGdldCBpc0xpdGVyYWwoKSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIAotICAgICAgICBnZXQgbmVnQ29uc3RleHByKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaWYgKCFjb25maWcubmVnQ29uc3RleHByKQotICAgICAgICAgICAgICAgIHJldHVy
biBudWxsOwotICAgICAgICAgICAgCi0gICAgICAgICAgICByZXR1cm4gKCkgPT4gY29uZmlnLm5l
Z0NvbnN0ZXhwci5jYWxsKHRoaXMpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB1bmlm
eUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKCEob3RoZXIgaW5zdGFuY2VvZiBHZW5lcmljTGl0ZXJhbCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT0gb3RoZXIudmFs
dWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHRvU3RyaW5nKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5wcmVmZXJyZWRUeXBlTmFtZSArICJMaXRlcmFsPCIg
KyB0aGlzLnZhbHVlICsgIj4iOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHJldHVybiBH
ZW5lcmljTGl0ZXJhbDsKLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DcmVhdGVMaXRlcmFsVHlwZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGM1
ZGYyNmExZGQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQotewotICAgIGNsYXNzIEdlbmVy
aWNMaXRlcmFsVHlwZSBleHRlbmRzIFR5cGUgewotICAgICAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgdGhp
cy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKLSAg
ICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBUeXBlUmVmKG9yaWdpbiwgY29uZmln
LnByZWZlcnJlZFR5cGVOYW1lKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgICAgICBnZXQgdmFsdWUoKSB7IHJl
dHVybiB0aGlzLl92YWx1ZTsgfQotICAgICAgICAKLSAgICAgICAgZ2V0IGlzUHJpbWl0aXZlKCkg
eyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBnZXQgaXNVbmlmaWFibGUoKSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIGdldCBpc0xpdGVyYWwoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIAot
ICAgICAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFR5cGUpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX3R5cGVWYXJpYWJsZVVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4
dCwgb3RoZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGVWYXJpYWJs
ZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBwcmVwYXJlVG9WZXJpZnkodW5pZmljYXRpb25Db250ZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsK
LSAgICAgICAgICAgIGlmIChyZWFsVGhpcy5pc0xpdGVyYWwpIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBpZiAocmVhbFRoaXMudW5pZnkodW5p
ZmljYXRpb25Db250ZXh0LCB0aGlzLnByZWZlcnJlZFR5cGUpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAiICsgdW5pZmlj
YXRpb25Db250ZXh0LmZpbmQocmVhbFRoaXMpICsgIiBhbmQgIiArIHRoaXMucHJlZmVycmVkVHlw
ZX07Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBjb25maWcudmVyaWZ5QXNBcmd1bWVudC5jYWxsKHRoaXMs
IHVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHZlcmlm
eUFzUGFyYW1ldGVyKHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJHZW5lcmljTGl0ZXJhbFR5cGUgc2hvdWxkIG5ldmVyIGJlIHVzZWQg
YXMgYSB0eXBlIHBhcmFtZXRlciIpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBjb252
ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxl
dCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAgICAgICAg
aWYgKHJlYWxUaGlzLmVxdWFscyh0aGlzLnByZWZlcnJlZFR5cGUpKQotICAgICAgICAgICAgICAg
IHJldHVybiAwOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGNvbW1pdFVuaWZpY2F0aW9uKHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgdGhpcy50eXBlID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcykudmlz
aXQobmV3IEF1dG9XcmFwcGVyKCkpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB0b1N0
cmluZygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBjb25maWcucHJlZmVycmVkVHlw
ZU5hbWUgKyAiTGl0ZXJhbFR5cGU8IiArIHRoaXMudmFsdWUgKyAiPiI7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgCi0gICAgcmV0dXJuIEdlbmVyaWNMaXRlcmFsVHlwZTsKLX0KLQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzQ0NGJmYzU2NC4uMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRGVyZWZlcmVuY2VFeHByZXNzaW9u
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBEZXJlZmVyZW5j
ZUV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IHB0ciwgdHlwZSA9IG51bGwsIGFkZHJlc3NTcGFjZSA9IG51bGwpCi0gICAgewotICAgICAgICBz
dXBlcihvcmlnaW4pOwotICAgICAgICB0aGlzLl9wdHIgPSBwdHI7Ci0gICAgICAgIHRoaXMudHlw
ZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuYWRkcmVzc1NwYWNlID0gYWRkcmVzc1NwYWNlOwotICAg
IH0KLSAgICAKLSAgICBnZXQgcHRyKCkgeyByZXR1cm4gdGhpcy5fcHRyOyB9Ci0gICAgZ2V0IGlz
TFZhbHVlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiAiKigiICsgdGhpcy5wdHIgKyAiKSI7Ci0gICAgfQotfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRG9XaGlsZUxvb3AuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Eb1doaWxlTG9vcC5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYTJiOGEyMTMyMmQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0RvV2hpbGVMb29wLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBz
dHJpY3QiOwotCi1jbGFzcyBEb1doaWxlTG9vcCBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVj
dG9yKG9yaWdpbiwgYm9keSwgY29uZGl0aW9uYWwpCi0gICAgewotICAgICAgICBzdXBlcigpOwot
ICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRoaXMuX2JvZHkgPSBib2R5
OwotICAgICAgICB0aGlzLl9jb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsOwotICAgIH0KLQotICAg
IGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgYm9keSgpIHsg
cmV0dXJuIHRoaXMuX2JvZHk7IH0KLSAgICBnZXQgY29uZGl0aW9uYWwoKSB7IHJldHVybiB0aGlz
Ll9jb25kaXRpb25hbDsgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
ICJkbyAiICsgdGhpcy5ib2R5ICsgIiB3aGlsZSAoIiArIHRoaXMuY29uZGl0aW9uYWwgKyAiKTsi
OwotICAgIH0KLX07Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0RvdEV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Eb3RFeHBy
ZXNzaW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTBkZThjNGI2Yi4uMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRG90RXhwcmVzc2lv
bi5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRG90RXhwcmVz
c2lvbiBleHRlbmRzIFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiB7Ci0gICAgY29uc3RydWN0b3Io
b3JpZ2luLCBzdHJ1Y3QsIGZpZWxkTmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwg
c3RydWN0KTsKLSAgICAgICAgdGhpcy5fZmllbGROYW1lID0gZmllbGROYW1lOwotICAgIH0KLSAg
ICAKLSAgICBnZXQgc3RydWN0KCkgeyByZXR1cm4gdGhpcy5iYXNlOyB9Ci0gICAgZ2V0IGZpZWxk
TmFtZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTsgfQotICAgIAotICAgIGdldCBnZXRGdW5j
TmFtZSgpIHsgcmV0dXJuICJvcGVyYXRvci4iICsgdGhpcy5maWVsZE5hbWU7IH0KLSAgICBnZXQg
YW5kRnVuY05hbWUoKSB7IHJldHVybiAib3BlcmF0b3ImLiIgKyB0aGlzLmZpZWxkTmFtZTsgfQot
ICAgIGdldCBzZXRGdW5jTmFtZSgpIHsgcmV0dXJuICJvcGVyYXRvci4iICsgdGhpcy5maWVsZE5h
bWUgKyAiPSI7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4g
IigiICsgdGhpcy5zdHJ1Y3QgKyAiLiIgKyB0aGlzLmZpZWxkTmFtZSArICIpIjsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQXJyYXlSZWYuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQXJyYXlSZWYuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkxMmRlZjc3NTgwLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQXJyYXlSZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIEVBcnJheVJlZiB7Ci0gICAgY29uc3RydWN0b3IocHRyLCBs
ZW5ndGgpCi0gICAgewotICAgICAgICB0aGlzLl9wdHIgPSBwdHI7Ci0gICAgICAgIHRoaXMuX2xl
bmd0aCA9IGxlbmd0aDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHB0cigpIHsgcmV0dXJuIHRoaXMu
X3B0cjsgfQotICAgIGdldCBsZW5ndGgoKSB7IHJldHVybiB0aGlzLl9sZW5ndGg7IH0KLQotICAg
IGVxdWFscyhvdGhlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnB0ci5lcXVhbHMob3Ro
ZXIucHRyKSAmJiB0aGlzLmxlbmd0aCA9PSBvdGhlci5sZW5ndGg7Ci0gICAgfQotICAgIAotICAg
IHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAiQTo8IiArIHRoaXMucHRyICsgIiwg
IiArIHRoaXMubGVuZ3RoICsgIj4iOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRUJ1ZmZlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0VCdWZmZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlZjUzZTg2
MGFjLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQnVm
ZmVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1sZXQgZUJ1ZmZlckNv
dW50ID0gMDsKLWxldCBjYW5BbGxvY2F0ZUVCdWZmZXJzID0gdHJ1ZTsKLQotY2xhc3MgRUJ1ZmZl
ciB7Ci0gICAgY29uc3RydWN0b3Ioc2l6ZSkKLSAgICB7Ci0gICAgICAgIGlmICghY2FuQWxsb2Nh
dGVFQnVmZmVycykKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVHJ5aW5nIHRvIGFsbG9j
YXRlIEVCdWZmZXIgd2hpbGUgYWxsb2NhdGlvbiBpcyBkaXNhbGxvd2VkIik7Ci0gICAgICAgIHRo
aXMuX2luZGV4ID0gZUJ1ZmZlckNvdW50Kys7Ci0gICAgICAgIHRoaXMuX2FycmF5ID0gbmV3IEFy
cmF5KHNpemUpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgc2V0Q2FuQWxsb2NhdGVFQnVmZmVy
cyh2YWx1ZSwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBsZXQgb2xkQ2FuQWxsb2NhdGVFQnVm
ZmVycyA9IGNhbkFsbG9jYXRlRUJ1ZmZlcnM7Ci0gICAgICAgIGNhbkFsbG9jYXRlRUJ1ZmZlcnMg
PSB2YWx1ZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwot
ICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgY2FuQWxsb2NhdGVFQnVmZmVycyA9IG9s
ZENhbkFsbG9jYXRlRUJ1ZmZlcnM7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgc3RhdGlj
IGRpc2FsbG93QWxsb2NhdGlvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBFQnVm
ZmVyLnNldENhbkFsbG9jYXRlRUJ1ZmZlcnMoZmFsc2UsIGNhbGxiYWNrKTsKLSAgICB9Ci0gICAg
Ci0gICAgc3RhdGljIGFsbG93QWxsb2NhdGlvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBFQnVmZmVyLnNldENhbkFsbG9jYXRlRUJ1ZmZlcnModHJ1ZSwgY2FsbGJhY2spOwotICAg
IH0KLSAgICAKLSAgICBnZXQoaW5kZXgpCi0gICAgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8
IGluZGV4ID49IHRoaXMuX2FycmF5Lmxlbmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiT3V0IG9mIGJvdW5kcyBidWZmZXIgYWNjZXNzIChidWZmZXIgPSAiICsgdGhpcyArICIsIGlu
ZGV4ID0gIiArIGluZGV4ICsgIikiKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5W2luZGV4
XTsKLSAgICB9Ci0gICAgCi0gICAgc2V0KGluZGV4LCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlm
IChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYXJyYXkubGVuZ3RoKQotICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJvdXQgb2YgYm91bmRzIGJ1ZmZlciBhY2Nlc3MgKGJ1ZmZlciA9ICIg
KyB0aGlzICsgIiwgaW5kZXggPSAiICsgaW5kZXggKyAiKSIpOwotICAgICAgICB0aGlzLl9hcnJh
eVtpbmRleF0gPSB2YWx1ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGluZGV4KCkgeyByZXR1cm4g
dGhpcy5faW5kZXg7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1
cm4gIkIiICsgdGhpcy5faW5kZXggKyAiOlsiICsgdGhpcy5fYXJyYXkgKyAiXSI7Ci0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRUJ1ZmZlckJ1aWxk
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQnVmZmVyQnVpbGRlci5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTdmMzYxNmQ5YTEuLjAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VCdWZmZXJCdWlsZGVyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRUJ1ZmZlckJ1aWxkZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKLSAgICBfY3JlYXRlRVB0cih0eXBlKQotICAgIHsKLSAgICAgICAgaWYg
KHR5cGUuc2l6ZSA9PSBudWxsKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUeXBlIGRv
ZXMgbm90IGhhdmUgc2l6ZTogIiArIHR5cGUpOwotICAgICAgICBsZXQgYnVmZmVyID0gbmV3IEVC
dWZmZXIodHlwZS5zaXplKTsKLSAgICAgICAgaWYgKCF0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVl
KQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcG9wdWxhdGVEZWZhdWx0VmFs
dWUgd2l0aDogIiArIHR5cGUpOwotICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1
ZmZlciwgMCk7Ci0gICAgICAgIHJldHVybiBuZXcgRVB0cihidWZmZXIsIDApOwotICAgIH0KLSAg
ICAKLSAgICBfY3JlYXRlRVB0ckZvck5vZGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmICghbm9k
ZS50eXBlKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJub2RlIGhhcyBubyB0eXBlOiAi
ICsgbm9kZSk7Ci0gICAgICAgIG5vZGUuZVB0ciA9IHRoaXMuX2NyZWF0ZUVQdHIobm9kZS50eXBl
KTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAg
ICAgICB0aGlzLl9jcmVhdGVFUHRyRm9yTm9kZShub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlz
aXRWYXJpYWJsZURlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NyZWF0ZUVQdHJGb3JO
b2RlKG5vZGUpOwotICAgICAgICBpZiAobm9kZS5pbml0aWFsaXplcikKLSAgICAgICAgICAgIG5v
ZGUuaW5pdGlhbGl6ZXIudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RnVuY0Rl
Zihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5yZXR1cm5FUHRyID0gdGhpcy5fY3JlYXRlRVB0
cihub2RlLnJldHVyblR5cGUpOwotICAgICAgICBzdXBlci52aXNpdEZ1bmNEZWYobm9kZSk7Ci0g
ICAgfQotICAgIAotICAgIHZpc2l0RnVuY3Rpb25MaWtlQmxvY2sobm9kZSkKLSAgICB7Ci0gICAg
ICAgIG5vZGUucmV0dXJuRVB0ciA9IHRoaXMuX2NyZWF0ZUVQdHIobm9kZS5yZXR1cm5UeXBlKTsK
LSAgICAgICAgc3VwZXIudmlzaXRGdW5jdGlvbkxpa2VCbG9jayhub2RlKTsKLSAgICB9Ci0gICAg
Ci0gICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5yZXN1
bHRFUHRyID0gdGhpcy5fY3JlYXRlRVB0cihub2RlLnJlc3VsdFR5cGUpOwotICAgICAgICBzdXBl
ci52aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdE1ha2VQ
dHJFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmVQdHIgPSBFUHRyLmJveCgp
OwotICAgICAgICBzdXBlci52aXNpdE1ha2VQdHJFeHByZXNzaW9uKG5vZGUpOwotICAgIH0KLSAg
ICAKLSAgICB2aXNpdEdlbmVyaWNMaXRlcmFsKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmVQ
dHIgPSBFUHRyLmJveCgpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdE51bGxMaXRlcmFsKG5vZGUp
Ci0gICAgewotICAgICAgICBub2RlLmVQdHIgPSBFUHRyLmJveCgpOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdEJvb2xMaXRlcmFsKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmVQdHIgPSBFUHRy
LmJveCgpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEVudW1MaXRlcmFsKG5vZGUpCi0gICAgewot
ICAgICAgICBub2RlLmVQdHIgPSBFUHRyLmJveCgpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdExv
Z2ljYWxOb3Qobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUuZVB0ciA9IEVQdHIuYm94KCk7Ci0g
ICAgICAgIHN1cGVyLnZpc2l0TG9naWNhbE5vdChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlz
aXRMb2dpY2FsRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5lUHRyID0gRVB0
ci5ib3goKTsKLSAgICAgICAgc3VwZXIudmlzaXRMb2dpY2FsRXhwcmVzc2lvbihub2RlKTsKLSAg
ICB9Ci0gICAgCi0gICAgdmlzaXRBbm9ueW1vdXNWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fY3JlYXRlRVB0ckZvck5vZGUobm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0
TWFrZUFycmF5UmVmRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5lUHRyID0g
RVB0ci5ib3goKTsKLSAgICAgICAgc3VwZXIudmlzaXRNYWtlQXJyYXlSZWZFeHByZXNzaW9uKG5v
ZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdENvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lv
bihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5lUHRyID0gRVB0ci5ib3goKTsKLSAgICAgICAg
c3VwZXIudmlzaXRDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24obm9kZSk7Ci0gICAgfQot
fQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWY1YjViNDliOTYuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0VQdHIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWNsYXNzIEVQdHIgewotICAgIGNvbnN0cnVjdG9yKGJ1ZmZlciwgb2Zmc2V0KQotICAgIHsK
LSAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsIHx8IG9mZnNldCAhPSBvZmZzZXQpCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvZmZzZXQ6ICIgKyBvZmZzZXQpOwotICAgICAgICB0
aGlzLl9idWZmZXIgPSBidWZmZXI7Ci0gICAgICAgIHRoaXMuX29mZnNldCA9IG9mZnNldDsKLSAg
ICB9Ci0gICAgCi0gICAgLy8gVGhlIGludGVycHJldGVyIGFsd2F5cyBwYXNzZXMgYXJvdW5kIHBv
aW50ZXJzIHRvIHRoaW5ncy4gVGhpcyBtZWFucyB0aGF0IHNvbWV0aW1lcyB3ZSB3aWxsCi0gICAg
Ly8gd2FudCB0byByZXR1cm4gYSB2YWx1ZSBidXQgd2UgaGF2ZSB0byAiaW52ZW50IiBhIHBvaW50
ZXIgdG8gdGhhdCB2YWx1ZS4gTm8gcHJvYmxlbSwgdGhpcwotICAgIC8vIGZ1bmN0aW9uIGlzIGhl
cmUgdG8gaGVscC4KLSAgICAvLwotICAgIC8vIEluIGEgcmVhbCBleGVjdXRpb24gZW52aXJvbm1l
bnQsIHVzZXMgb2YgdGhpcyBtYW5pZmVzdCBhcyBTU0EgdGVtcG9yYXJpZXMuCi0gICAgc3RhdGlj
IGJveCh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgRVB0cihuZXcgRUJ1ZmZlcigx
KSwgMCkuYm94KHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgYm94KHZhbHVlKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fYnVmZmVyLnNldCgwLCB2YWx1ZSk7Ci0gICAgICAgIHJldHVybiB0aGlzOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgYnVmZmVyKCkgeyByZXR1cm4gdGhpcy5fYnVmZmVyOyB9Ci0g
ICAgZ2V0IG9mZnNldCgpIHsgcmV0dXJuIHRoaXMuX29mZnNldDsgfQotICAgIAotICAgIHBsdXMo
b2Zmc2V0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBFUHRyKHRoaXMuYnVmZmVyLCB0aGlz
Lm9mZnNldCArIG9mZnNldCk7Ci0gICAgfQotICAgIAotICAgIGxvYWRWYWx1ZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5idWZmZXIuZ2V0KHRoaXMub2Zmc2V0KTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0KG9mZnNldCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlci5nZXQo
dGhpcy5vZmZzZXQgKyBvZmZzZXQpOwotICAgIH0KLSAgICAKLSAgICBzZXQob2Zmc2V0LCB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuYnVmZmVyLnNldCh0aGlzLm9mZnNldCArIG9mZnNldCwg
dmFsdWUpOwotICAgIH0KLSAgICAKLSAgICBjb3B5RnJvbShvdGhlciwgc2l6ZSkKLSAgICB7Ci0g
ICAgICAgIGlmIChzaXplID09IG51bGwpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNh
bm5vdCBjb3B5IG51bGwgc2l6ZSIpOwotICAgICAgICBmb3IgKGxldCBpID0gc2l6ZTsgaS0tOykK
LSAgICAgICAgICAgIHRoaXMuc2V0KGksIG90aGVyLmdldChpKSk7Ci0gICAgfQotCi0gICAgZXF1
YWxzKG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyID09IG90aGVyLmJ1
ZmZlciAmJiB0aGlzLm9mZnNldCA9PSBvdGhlci5vZmZzZXQ7Ci0gICAgfQotICAgIAotICAgIHRv
U3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAiQiIgKyB0aGlzLmJ1ZmZlci5pbmRleCAr
ICI6IiArIHRoaXMub2Zmc2V0OwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRW51bUxpdGVyYWwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FbnVtTGl0ZXJhbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE0
YTc5ZWY4ODAuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0VudW1MaXRlcmFsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBFbnVtTGl0ZXJhbCBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbWVtYmVyKQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luKTsKLSAgICAgICAgdGhpcy5f
bWVtYmVyID0gbWVtYmVyOwotICAgIH0KLSAgICAKLSAgICBnZXQgbWVtYmVyKCkgeyByZXR1cm4g
dGhpcy5fbWVtYmVyOyB9Ci0gICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLm1lbWJlci5lbnVt
VHlwZTsgfQotICAgIGdldCBpc0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAKLSAg
ICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlm
ICghKG90aGVyIGluc3RhbmNlb2YgRW51bUxpdGVyYWwpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXIgPT0gb3RoZXIubWVtYmVyOwotICAgIH0K
LSAgICAKLSAgICBnZXQgdmFsdWVGb3JTZWxlY3RlZFR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMubWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZTsKLSAg
ICB9Ci0gICAgICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Lm1lbWJlci5lbnVtVHlwZS5uYW1lICsgIi4iICsgdGhpcy5tZW1iZXIubmFtZTsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FbnVtTWVtYmVyLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRW51bU1lbWJlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDc3YWJjZTJlYzkuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VudW1NZW1iZXIuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEVudW1NZW1iZXIgZXh0ZW5kcyBOb2RlIHsKLSAgICBj
b25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHZhbHVlKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsK
LSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKLSAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3Jp
Z2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0
aGlzLl9uYW1lOyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgbGV0IHJl
c3VsdCA9IHRoaXMubmFtZTsKLSAgICAgICAgaWYgKHRoaXMudmFsdWUpCi0gICAgICAgICAgICBy
ZXN1bHQgKz0gIiA9ICIgKyB0aGlzLnZhbHVlOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VudW1UeXBl
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRW51bVR5cGUuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0YTE1NTFmYjY4Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FbnVtVHlwZS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRW51bVR5cGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUsIGJhc2VUeXBlKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsK
LSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKLSAgICAgICAgdGhpcy5fYmFzZVR5cGUgPSBiYXNlVHlwZTsKLSAgICAgICAgdGhpcy5fbWVt
YmVycyA9IG5ldyBNYXAoKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkKG1lbWJlcikKLSAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLl9tZW1iZXJzLmhhcyhtZW1iZXIubmFtZSkpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihtZW1iZXIub3JpZ2luLm9yaWdpblN0cmluZywgIkR1cGxpY2F0
ZSBlbnVtIG1lbWJlciBuYW1lOiAiICsgbWVtYmVyLm5hbWUpOwotICAgICAgICBtZW1iZXIuZW51
bVR5cGUgPSB0aGlzOwotICAgICAgICB0aGlzLl9tZW1iZXJzLnNldChtZW1iZXIubmFtZSwgbWVt
YmVyKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdp
bjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBiYXNl
VHlwZSgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VUeXBlOyB9Ci0gICAgZ2V0IGlzRW51bSgpIHsgcmV0
dXJuIHRydWU7IH0KLSAgICAKLSAgICBnZXQgbWVtYmVyTmFtZXMoKSB7IHJldHVybiB0aGlzLl9t
ZW1iZXJzLmtleXMoKTsgfQotICAgIG1lbWJlckJ5TmFtZShuYW1lKSB7IHJldHVybiB0aGlzLl9t
ZW1iZXJzLmdldChuYW1lKTsgfQotICAgIGdldCBtZW1iZXJzKCkgeyByZXR1cm4gdGhpcy5fbWVt
YmVycy52YWx1ZXMoKTsgfQotICAgIGdldCBtZW1iZXJNYXAoKSB7IHJldHVybiB0aGlzLl9tZW1i
ZXJzOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IAotICAgICphbGxWYWx1ZXMoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgbWVtYmVyIG9mIHRo
aXMubWVtYmVycykKLSAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogbWVtYmVyLnZhbHVlLnVuaWZ5
Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSwgbmFtZTogbWVtYmVyLm5hbWV9OwotICAgIH0KLSAg
ICAKLSAgICB2YWx1ZXNFcXVhbChhLCBiKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuYmFz
ZVR5cGUudW5pZnlOb2RlLnZhbHVlc0VxdWFsKGEsIGIpOwotICAgIH0KLSAgICAKLSAgICBwb3B1
bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCkKLSAgICB7Ci0gICAgICAgIHRoaXMuYmFz
ZVR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwotICAgIH0KLSAgICAK
LSAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuYmFzZVR5cGUuc2l6ZTsgfQotICAgIAotICAg
IHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAiZW51bSAiICsgdGhpcy5uYW1lICsg
IiA6ICIgKyB0aGlzLmJhc2VUeXBlICsgIiB7ICIgKyBBcnJheS5mcm9tKHRoaXMubWVtYmVycyku
am9pbigiLCIpICsgIiB9IjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRpb25Db21tb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FdmFsdWF0aW9uQ29tbW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiYTI0MzA0NjVmNC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRXZhbHVhdGlvbkNvbW1vbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3Ry
aWN0IjsKLQotY29uc3QgQnJlYWtFeGNlcHRpb24gPSBTeW1ib2woIkJyZWFrRXhjZXB0aW9uIik7
Ci1jb25zdCBDb250aW51ZUV4Y2VwdGlvbiA9IFN5bWJvbCgiQ29udGludWVFeGNlcHRpb24iKTsK
LQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3Iu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxZjc3OGI2MjRjLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwzNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1sZXQgX2xhc3RJbnZvY2F0aW9uRGlkVHJhcDsKLQotLy8gVGhp
cyBpcyBhIGNvbWJpbmVkIExIUy9SSFMgZXZhbHVhdG9yIHRoYXQgcGFzc2VzIGFyb3VuZCBFUHRy
J3MgdG8gZXZlcnl0aGluZy4KLWNsYXNzIEV2YWx1YXRvciBleHRlbmRzIFZpc2l0b3IgewotICAg
IGNvbnN0cnVjdG9yKHByb2dyYW0pCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0
aGlzLl9wcm9ncmFtID0gcHJvZ3JhbTsKLSAgICAgICAgX2xhc3RJbnZvY2F0aW9uRGlkVHJhcCA9
IGZhbHNlOwotICAgIH0KLQotICAgIHN0YXRpYyBsYXN0SW52b2NhdGlvbkRpZFRyYXAoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGxhc3RJbnZvY2F0aW9uRGlkVHJhcDsKLSAgICB9Ci0gICAgCi0g
ICAgLy8gWW91IG11c3Qgc25hcHNob3QgaWYgeW91IHVzZSBhIHZhbHVlIGluIHJ2YWx1ZSBjb250
ZXh0LiBGb3IgZXhhbXBsZSwgYSBjYWxsIGV4cHJlc3Npb24gd2lsbAotICAgIC8vIHNuYXBzaG90
IGFsbCBvZiBpdHMgYXJndW1lbnRzIGltbWVkaWF0ZWx5IHVwb24gZXhlY3V0aW5nIHRoZW0uIElu
IGdlbmVyYWwsIGl0IHNob3VsZCBub3QgYmUKLSAgICAvLyBwb3NzaWJsZSBmb3IgYSBwb2ludGVy
IHJldHVybmVkIGZyb20gYSB2aXNpdCBtZXRob2QgaW4gcnZhbHVlIGNvbnRleHQgdG8gbGl2ZSBh
Y3Jvc3MgYW55IGVmZmVjdHMuCi0gICAgX3NuYXBzaG90KHR5cGUsIGRzdFB0ciwgc3JjUHRyKQot
ICAgIHsKLSAgICAgICAgaWYgKCFzcmNQdHIpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICAgICAgbGV0IHNpemUgPSB0eXBlLnNpemU7Ci0gICAgICAgIGlmIChzaXplID09IG51bGwpCi0g
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBnZXQgc2l6ZSBvZiB0eXBlOiAiICsg
dHlwZSArICIgKHNpemUgPSAiICsgc2l6ZSArICIsIGNvbnN0cnVjdG9yID0gIiArIHR5cGUuY29u
c3RydWN0b3IubmFtZSArICIpIik7Ci0gICAgICAgIGlmICghZHN0UHRyKQotICAgICAgICAgICAg
ZHN0UHRyID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoc2l6ZSksIDApOwotICAgICAgICBkc3RQdHIu
Y29weUZyb20oc3JjUHRyLCBzaXplKTsKLSAgICAgICAgcmV0dXJuIGRzdFB0cjsKLSAgICB9Ci0g
ICAgCi0gICAgcnVuRnVuYyhmdW5jKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEVCdWZmZXIuZGlz
YWxsb3dBbGxvY2F0aW9uKAotICAgICAgICAgICAgKCkgPT4gdGhpcy5fcnVuQm9keShmdW5jLnJl
dHVyblR5cGUsIGZ1bmMucmV0dXJuRVB0ciwgZnVuYy5ib2R5LCBmdW5jLmlzRW50cnlQb2ludCkp
OwotICAgIH0KLSAgICAKLSAgICBfcnVuQm9keSh0eXBlLCBwdHIsIGJsb2NrLCBpc0VudHJ5UG9p
bnQpCi0gICAgewotICAgICAgICBpZiAoIXB0cikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiTnVsbCBwdHIiKTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGJsb2NrLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYXZlIGEgY2hlY2sgdGhhdCB0
aGVyZSBpcyBubyB3YXkgdG8gZHJvcCBvdXQgb2YgYSBmdW5jdGlvbiB3aXRob3V0Ci0gICAgICAg
ICAgICAvLyByZXR1cm5pbmcgdW5sZXNzIHRoZSBmdW5jdGlvbiByZXR1cm5zIHZvaWQuCi0gICAg
ICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAg
aWYgKGUgPT0gQnJlYWtFeGNlcHRpb24gfHwgZSA9PSBDb250aW51ZUV4Y2VwdGlvbikKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBub3Qgc2VlIGJyZWFrL2NvbnRpbnVl
IGF0IGZ1bmN0aW9uIHNjb3BlIik7Ci0gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFJldHVy
bkV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc25hcHNob3QodHlwZSwg
cHRyLCBlLnZhbHVlKTsKLSAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgV1RyYXBFcnJvcikg
ewotICAgICAgICAgICAgICAgIGlmIChpc0VudHJ5UG9pbnQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgX2xhc3RJbnZvY2F0aW9uRGlkVHJhcCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUocHRyLmJ1ZmZlciwgcHRyLm9mZnNldCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBwdHI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9ldmFsdWF0
ZUFyZ3VtZW50cyhhcmd1bWVudExpc3QsIHBhcmFtZXRlckxpc3QpCi0gICAgewotICAgICAgICBj
b25zdCBjYWxsQXJndW1lbnRzID0gW107Ci0gICAgICAgIGZvciAobGV0IGkgPSBhcmd1bWVudExp
c3QubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICBjb25zdCBhcmd1bWVudCA9IGFyZ3VtZW50
TGlzdFtpXTsKLSAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXJMaXN0W2ldLnR5cGU7
Ci0gICAgICAgICAgICBpZiAoIXR5cGUgfHwgIWFyZ3VtZW50KQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCB0eXBlIG9yIGFyZ3VtZW50OyBpID0gIiArIGkgKyAi
LCBhcmd1bWVudCA9ICIgKyBhcmd1bWVudCArICIsIHR5cGUgPSAiICsgdHlwZSk7Ci0gICAgICAg
ICAgICBsZXQgYXJndW1lbnRWYWx1ZSA9IGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAg
ICAgaWYgKCFhcmd1bWVudFZhbHVlKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
TnVsbCBhcmd1bWVudCB2YWx1ZSwgaSA9ICIgKyBpICsgIiwgbm9kZSA9ICIgKyBub2RlKTsKLSAg
ICAgICAgICAgIGNhbGxBcmd1bWVudHMudW5zaGlmdChFQnVmZmVyLmFsbG93QWxsb2NhdGlvbigo
KSA9PiB0aGlzLl9zbmFwc2hvdCh0eXBlLCBudWxsLCBhcmd1bWVudFZhbHVlKSkpOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBjYWxsQXJndW1lbnRzOwotICAgIH0KLQotICAgIF9ldmFsdWF0
ZUZ1bmN0aW9uKG5vZGUsIGFyZ3VtZW50TGlzdCwgcGFyYW1ldGVyTGlzdCwgZnVuY0JvZHksIHJl
dHVyblR5cGUsIHJldHVybkVQdHIsIGlzRW50cnlQb2ludCkKLSAgICB7Ci0gICAgICAgIGNvbnN0
IGFyZ3VtZW50VmFsdWVzID0gdGhpcy5fZXZhbHVhdGVBcmd1bWVudHMoYXJndW1lbnRMaXN0LCBw
YXJhbWV0ZXJMaXN0KTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmFyZ3VtZW50
TGlzdC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHBhcmFtZXRlckxpc3RbaV0uZVB0ci5jb3B5
RnJvbShhcmd1bWVudFZhbHVlc1tpXSwgcGFyYW1ldGVyTGlzdFtpXS50eXBlLnNpemUpOwotICAg
ICAgICByZXR1cm4gRUJ1ZmZlci5hbGxvd0FsbG9jYXRpb24oKCkgPT4gdGhpcy5fcnVuQm9keShy
ZXR1cm5UeXBlLCByZXR1cm5FUHRyLCBmdW5jQm9keSwgaXNFbnRyeVBvaW50KSk7Ci0gICAgfQot
Ci0gICAgdmlzaXRGdW5jdGlvbkxpa2VCbG9jayhub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2V2YWx1YXRlRnVuY3Rpb24obm9kZSwgbm9kZS5hcmd1bWVudExpc3QsIG5vZGUucGFy
YW1ldGVycywgbm9kZS5ib2R5LCBub2RlLnJldHVyblR5cGUsIG5vZGUucmV0dXJuRVB0ciwgZmFs
c2UpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFJldHVybihub2RlKQotICAgIHsKLSAgICAgICAg
dGhyb3cgbmV3IFJldHVybkV4Y2VwdGlvbihub2RlLnZhbHVlID8gbm9kZS52YWx1ZS52aXNpdCh0
aGlzKSA6IG51bGwpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFZhcmlhYmxlRGVjbChub2RlKQot
ICAgIHsKLSAgICAgICAgaWYgKCFub2RlLmVQdHIuYnVmZmVyKQotICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJlcHRyIHdpdGhvdXQgYnVmZmVyIGluICIgKyBub2RlKTsKLSAgICAgICAgbm9k
ZS50eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlKG5vZGUuZVB0ci5idWZmZXIsIG5vZGUuZVB0ci5v
ZmZzZXQpOwotICAgICAgICBpZiAobm9kZS5pbml0aWFsaXplcikKLSAgICAgICAgICAgIG5vZGUu
ZVB0ci5jb3B5RnJvbShub2RlLmluaXRpYWxpemVyLnZpc2l0KHRoaXMpLCBub2RlLnR5cGUuc2l6
ZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0QXNzaWdubWVudChub2RlKQotICAgIHsKLSAgICAg
ICAgbGV0IHRhcmdldCA9IG5vZGUubGhzLnZpc2l0KHRoaXMpOwotICAgICAgICBsZXQgc291cmNl
ID0gbm9kZS5yaHMudmlzaXQodGhpcyk7Ci0gICAgICAgIHRhcmdldC5jb3B5RnJvbShzb3VyY2Us
IG5vZGUudHlwZS5zaXplKTsKLSAgICAgICAgcmV0dXJuIHRhcmdldDsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRJZGVudGl0eUV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBu
b2RlLnRhcmdldC52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXREZXJlZmVyZW5j
ZUV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBwdHIgPSBub2RlLnB0ci52aXNp
dCh0aGlzKS5sb2FkVmFsdWUoKTsKLSAgICAgICAgaWYgKCFwdHIpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOdWxsIGRlcmVmZXJl
bmNlIik7Ci0gICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TWFrZVB0
ckV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBwdHIgPSBub2RlLmxWYWx1ZS52
aXNpdCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIG5vZGUuZVB0ci5ib3gocHRyKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRNYWtlQXJyYXlSZWZFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gbm9kZS5lUHRyLmJveChuZXcgRUFycmF5UmVmKG5vZGUubFZhbHVlLnZpc2l0KHRo
aXMpLCBub2RlLm51bUVsZW1lbnRzLnZpc2l0KHRoaXMpLmxvYWRWYWx1ZSgpKSk7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0Q29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uKG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gbm9kZS5lUHRyLmJveChuZXcgRUFycmF5UmVmKG5vZGUubFZhbHVl
LnZpc2l0KHRoaXMpLmxvYWRWYWx1ZSgpLCAxKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29t
bWFFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0OwotICAgICAgICBm
b3IgKGxldCBleHByZXNzaW9uIG9mIG5vZGUubGlzdCkKLSAgICAgICAgICAgIHJlc3VsdCA9IGV4
cHJlc3Npb24udmlzaXQodGhpcyk7Ci0gICAgICAgIC8vIFRoaXMgc2hvdWxkIGFsbW9zdCBzbmFw
c2hvdCwgZXhjZXB0IHRoYXQgdGFpbC1yZXR1cm5pbmcgYSBwb2ludGVyIGlzIHRvdGFsbHkgT0su
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRUZXJuYXJ5RXhwcmVz
c2lvbihub2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUucHJlZGljYXRlLnZpc2l0KHRoaXMp
LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIG5vZGUuYm9keUV4cHJlc3Npb24udmlz
aXQodGhpcyk7Ci0gICAgICAgIHJldHVybiBub2RlLmVsc2VFeHByZXNzaW9uLnZpc2l0KHRoaXMp
OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gbm9kZS52YXJpYWJsZS5lUHRyOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEdlbmVy
aWNMaXRlcmFsKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZS5lUHRyLmJveChub2Rl
LnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXROdWxsTGl0ZXJh
bChub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUuZVB0ci5ib3gobnVsbCk7Ci0gICAg
fQotICAgIAotICAgIHZpc2l0Qm9vbExpdGVyYWwobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBub2RlLmVQdHIuYm94KG5vZGUudmFsdWUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEVudW1M
aXRlcmFsKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZS5lUHRyLmJveChub2RlLm1l
bWJlci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwotICAgIH0KLQotICAg
IHZpc2l0TG9naWNhbE5vdChub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9ICFub2Rl
Lm9wZXJhbmQudmlzaXQodGhpcykubG9hZFZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBub2RlLmVQ
dHIuYm94KHJlc3VsdCk7Ci0gICAgfQotCi0gICAgdmlzaXRMb2dpY2FsRXhwcmVzc2lvbihub2Rl
KQotICAgIHsKLSAgICAgICAgbGV0IGxocyA9IG5vZGUubGVmdC52aXNpdCh0aGlzKS5sb2FkVmFs
dWUoKTsKLSAgICAgICAgbGV0IHJlc3VsdDsKLSAgICAgICAgc3dpdGNoIChub2RlLnRleHQpIHsK
LSAgICAgICAgY2FzZSAiJiYiOgotICAgICAgICAgICAgcmVzdWx0ID0gbGhzICYmIG5vZGUucmln
aHQudmlzaXQodGhpcykubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSAifHwiOgotICAgICAgICAgICAgcmVzdWx0ID0gbGhzIHx8IG5vZGUucmlnaHQudmlzaXQo
dGhpcykubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biB0eXBlIG9mIGxvZ2ljYWwgZXhw
cmVzc2lvbiIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLmVQdHIuYm94KHJlc3Vs
dCk7Ci0gICAgfQotCi0gICAgdmlzaXRJZlN0YXRlbWVudChub2RlKQotICAgIHsKLSAgICAgICAg
aWYgKG5vZGUuY29uZGl0aW9uYWwudmlzaXQodGhpcykubG9hZFZhbHVlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gbm9kZS5ib2R5LnZpc2l0KHRoaXMpOwotICAgICAgICBlbHNlIGlmIChub2RlLmVs
c2VCb2R5KQotICAgICAgICAgICAgcmV0dXJuIG5vZGUuZWxzZUJvZHkudmlzaXQodGhpcyk7Ci0g
ICAgfQotCi0gICAgdmlzaXRXaGlsZUxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgIHdoaWxlIChu
b2RlLmNvbmRpdGlvbmFsLnZpc2l0KHRoaXMpLmxvYWRWYWx1ZSgpKSB7Ci0gICAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoZSA9PSBCcmVha0V4Y2VwdGlvbikK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgaWYgKGUgPT0gQ29u
dGludWVFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2
aXNpdERvV2hpbGVMb29wKG5vZGUpCi0gICAgewotICAgICAgICBkbyB7Ci0gICAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoZSA9PSBCcmVha0V4Y2VwdGlvbikK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgaWYgKGUgPT0gQ29u
dGludWVFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gd2hpbGUgKG5vZGUuY29u
ZGl0aW9uYWwudmlzaXQodGhpcykubG9hZFZhbHVlKCkpOwotICAgIH0KLQotICAgIHZpc2l0Rm9y
TG9vcChub2RlKQotICAgIHsKLSAgICAgICAgZm9yIChub2RlLmluaXRpYWxpemF0aW9uID8gbm9k
ZS5pbml0aWFsaXphdGlvbi52aXNpdCh0aGlzKSA6IHRydWU7Ci0gICAgICAgICAgICBub2RlLmNv
bmRpdGlvbiA/IG5vZGUuY29uZGl0aW9uLnZpc2l0KHRoaXMpLmxvYWRWYWx1ZSgpIDogdHJ1ZTsK
LSAgICAgICAgICAgIG5vZGUuaW5jcmVtZW50ID8gbm9kZS5pbmNyZW1lbnQudmlzaXQodGhpcykg
OiB0cnVlKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIG5vZGUuYm9keS52
aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoZSA9PSBCcmVha0V4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgaWYgKGUgPT0gQ29udGludWVFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdmlzaXRTd2l0Y2hTdGF0ZW1lbnQobm9kZSkKLSAg
ICB7Ci0gICAgICAgIGxldCBmaW5kQW5kUnVuQ2FzdCA9IHByZWRpY2F0ZSA9PiB7Ci0gICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuc3dpdGNoQ2FzZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgICAgICBsZXQgc3dpdGNoQ2FzZSA9IG5vZGUuc3dpdGNoQ2FzZXNbaV07Ci0g
ICAgICAgICAgICAgICAgaWYgKHByZWRpY2F0ZShzd2l0Y2hDYXNlKSkgewotICAgICAgICAgICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IGk7IGog
PCBub2RlLnN3aXRjaENhc2VzLmxlbmd0aDsgKytqKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vZGUuc3dpdGNoQ2FzZXNbal0udmlzaXQodGhpcyk7Ci0gICAgICAgICAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlICE9IEJyZWFrRXhj
ZXB0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9OwotICAgICAgICAKLSAgICAgICAgbGV0IHZhbHVlID0gbm9kZS52YWx1ZS52aXNpdCh0aGlz
KS5sb2FkVmFsdWUoKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBmb3VuZCA9IGZpbmRBbmRSdW5D
YXN0KHN3aXRjaENhc2UgPT4gewotICAgICAgICAgICAgaWYgKHN3aXRjaENhc2UuaXNEZWZhdWx0
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiBub2Rl
LnR5cGUudW5pZnlOb2RlLnZhbHVlc0VxdWFsKAotICAgICAgICAgICAgICAgIHZhbHVlLCBzd2l0
Y2hDYXNlLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7Ci0gICAgICAgIH0p
OwotICAgICAgICBpZiAoZm91bmQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAg
ICAgICBmb3VuZCA9IGZpbmRBbmRSdW5DYXN0KHN3aXRjaENhc2UgPT4gc3dpdGNoQ2FzZS5pc0Rl
ZmF1bHQpOwotICAgICAgICBpZiAoIWZvdW5kKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJTd2l0Y2ggc3RhdGVtZW50IGRpZCBub3QgZmluZCBjYXNlIik7Ci0gICAgfQotCi0gICAgdmlz
aXRCcmVhayhub2RlKQotICAgIHsKLSAgICAgICAgdGhyb3cgQnJlYWtFeGNlcHRpb247Ci0gICAg
fQotCi0gICAgdmlzaXRDb250aW51ZShub2RlKQotICAgIHsKLSAgICAgICAgdGhyb3cgQ29udGlu
dWVFeGNlcHRpb247Ci0gICAgfQotCi0gICAgdmlzaXRUcmFwU3RhdGVtZW50KG5vZGUpCi0gICAg
ewotICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJUcmFwIHN0YXRlbWVudCIpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEFub255bW91c1Zhcmlh
YmxlKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUo
bm9kZS5lUHRyLmJ1ZmZlciwgbm9kZS5lUHRyLm9mZnNldCk7Ci0gICAgfQotICAgIAotICAgIHZp
c2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlLmZ1bmMgaW5z
dGFuY2VvZiBOYXRpdmVGdW5jKSB7Ci0gICAgICAgICAgICBjb25zdCBjYWxsQXJndW1lbnRzID0g
dGhpcy5fZXZhbHVhdGVBcmd1bWVudHMobm9kZS5hcmd1bWVudExpc3QsIG5vZGUuZnVuYy5wYXJh
bWV0ZXJzKTsKLSAgICAgICAgICAgIHJldHVybiBFQnVmZmVyLmFsbG93QWxsb2NhdGlvbigoKSA9
PiB0aGlzLl9zbmFwc2hvdChub2RlLmZ1bmMucmV0dXJuVHlwZSwgbm9kZS5yZXN1bHRFUHRyLCBu
b2RlLmZ1bmMuaW1wbGVtZW50YXRpb24oY2FsbEFyZ3VtZW50cywgbm9kZSkpKTsKLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fZXZhbHVhdGVGdW5jdGlvbihub2RlLCBu
b2RlLmFyZ3VtZW50TGlzdCwgbm9kZS5mdW5jLnBhcmFtZXRlcnMsIG5vZGUuZnVuYy5ib2R5LCBu
b2RlLmZ1bmMucmV0dXJuVHlwZSwgbm9kZS5yZXN1bHRFUHRyLCBmYWxzZSk7Ci0gICAgfQotfQot
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbi5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ4ZGUxY2YwMjkuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb24uanMKKysrIC9kZXYvbnVsbApAQCAt
MSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEV4cHJlc3Npb24gZXh0ZW5kcyBWYWx1ZSB7Ci0gICAg
Y29uc3RydWN0b3Iob3JpZ2luKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhp
cy5fb3JpZ2luID0gb3JpZ2luOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1
cm4gdGhpcy5fb3JpZ2luOyB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRXhwcmVzc2lvbkZpbmRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg0
YTU0MzRkZTUuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0V4cHJlc3Npb25GaW5kZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwot
Ci0vLyBUaGlzIGZpbmRzIHR5cGUgYW5kIHZhbHVlIGV4cHJlc3Npb25zLCBidXQgc2tpcHMgdHlw
ZSBhbmQgdmFsdWUgZGVjbGFyYXRpb25zLgotY2xhc3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRz
IFZpc2l0b3IgewotICAgIGNvbnN0cnVjdG9yKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoKTsKLSAgICAgICAgdGhpcy5fY2FsbGJhY2sgPSBjYWxsYmFjazsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRGdW5jKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnJl
dHVyblR5cGUpOwotICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJz
KQotICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2
aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NhbGxiYWNrKG5v
ZGUudHlwZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0QXNzaWdubWVudChub2RlKQotICAgIHsK
LSAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UmVh
ZE1vZGlmeVdyaXRlRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FsbGJh
Y2sobm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0SWRlbnRpdHlFeHByZXNzaW9uKG5vZGUp
Ci0gICAgewotICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlKTsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FsbGJhY2so
bm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UmV0dXJuKG5vZGUpCi0gICAgewotICAgICAg
ICBpZiAobm9kZS52YWx1ZSkKLSAgICAgICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUudmFsdWUp
OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFdoaWxlTG9vcChub2RlKQotICAgIHsKLSAgICAgICAg
dGhpcy5fY2FsbGJhY2sobm9kZS5jb25kaXRpb25hbCk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNp
dCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXREb1doaWxlTG9vcChub2RlKQotICAgIHsK
LSAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9jYWxsYmFjayhu
b2RlLmNvbmRpdGlvbmFsKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRJZlN0YXRlbWVudChub2Rl
KQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZS5jb25kaXRpb25hbCk7Ci0gICAg
ICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKG5vZGUuZWxzZUJvZHkpCi0g
ICAgICAgICAgICBub2RlLmVsc2VCb2R5LnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2
aXNpdEZvckxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgIC8vIEluaXRpYWxpemF0aW9uIGlzIGEg
c3RhdGVtZW50LCBub3QgYW4gZXhwcmVzc2lvbi4gSWYgaXQncyBhbiBhc3NpZ25tZW50IG9yIHZh
cmlhYmxlRGVjbCwgd2UnbGwKLSAgICAgICAgLy8gY2F0Y2ggaXQgYW5kIHJlZGlyZWN0IHRvIHRo
ZSBjYWxsYmFjay4KLSAgICAgICAgaWYgKG5vZGUuaW5pdGlhbGl6YXRpb24pCi0gICAgICAgICAg
ICBub2RlLmluaXRpYWxpemF0aW9uLnZpc2l0KHRoaXMpOwotICAgICAgICAKLSAgICAgICAgaWYg
KG5vZGUuY29uZGl0aW9uKQotICAgICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZS5jb25kaXRp
b24pOwotICAgICAgICBpZiAobm9kZS5pbmNyZW1lbnQpCi0gICAgICAgICAgICB0aGlzLl9jYWxs
YmFjayhub2RlLmluY3JlbWVudCk7Ci0gICAgICAgIAotICAgICAgICBub2RlLmJvZHkudmlzaXQo
dGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VmFyaWFibGVEZWNsKG5vZGUpCi0gICAgewot
ICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnR5cGUpOwotICAgICAgICBpZiAobm9kZS5pbml0
aWFsaXplcikKLSAgICAgICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUuaW5pdGlhbGl6ZXIpOwot
ICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXh0
ZXJuYWxPcmlnaW4uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHRlcm5hbE9y
aWdpbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjYzNjU5YWVjNWMuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4dGVybmFsT3JpZ2lu
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jb25zdCBleHRlcm5hbE9y
aWdpbiA9IHsKLSAgICBvcmlnaW5TdHJpbmc6ICI8ZXh0ZXJuYWw+IiwKLSAgICBvcmlnaW5LaW5k
OiAidXNlciIKLX07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9G
aWVsZC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZpZWxkLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTJiMDBkOWUyOC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmllbGQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1
c2Ugc3RyaWN0IjsKLQotY2xhc3MgRmllbGQgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHR5cGUsIHNlbWFudGljID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5fbmFt
ZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgICAgICB0aGlzLl9zZW1h
bnRpYyA9IHNlbWFudGljOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4g
dGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0g
ICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IHNlbWFudGljKCkg
eyByZXR1cm4gdGhpcy5fc2VtYW50aWM7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewot
ICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lOwotICAgICAg
ICBpZiAodGhpcy5zZW1hbnRpYykKLSAgICAgICAgICAgIHJlc3VsdCArPSAiOiAiICsgdGhpcy5z
ZW1hbnRpYzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GaW5kSGlnaFpvbWJpZXMuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GaW5kSGlnaFpvbWJpZXMuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY2M2M2ZDU5YTYwLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9GaW5kSGlnaFpvbWJpZXMuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwzMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGZpbmRIaWdoWm9tYmllcyhwcm9ncmFtKQotewot
ICAgIHByb2dyYW0udmlzaXQobmV3IEhpZ2hab21iaWVGaW5kZXIoKSk7Ci19CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRo
ZXJlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5lZFN0cnVjdE9m
ZnNldEdhdGhlcmVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzM5ZDdiZjdm
YS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRl
bmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKLSAgICBjb25zdHJ1Y3Rvcihpbml0aWFsKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgdGhpcy5fb2Zmc2V0ID0gMDsKLSAgICAgICAgdGhpcy5fbmFtZSA9IFtpbml0aWFsXTsK
LSAgICAgICAgdGhpcy5fcmVzdWx0ID0gW107Ci0gICAgfQotCi0gICAgZ2V0IHJlc3VsdCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNp
dFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RmllbGQo
bm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX29mZnNldCArPSBub2RlLm9mZnNldDsKLSAgICAg
ICAgdGhpcy5fbmFtZS5wdXNoKG5vZGUubmFtZSk7Ci0gICAgICAgIHN1cGVyLnZpc2l0RmllbGQo
bm9kZSk7Ci0gICAgICAgIHRoaXMuX25hbWUucG9wKCk7Ci0gICAgICAgIHRoaXMuX29mZnNldCAt
PSBub2RlLm9mZnNldDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCi0g
ICAgewotICAgICAgICB0aGlzLl9yZXN1bHQucHVzaCh7bmFtZTogdGhpcy5fbmFtZS5qb2luKCIu
IiksIG9mZnNldDogdGhpcy5fb2Zmc2V0LCB0eXBlOiBub2RlLm5hbWV9KTsKLSAgICAgICAgc3Vw
ZXIudmlzaXROYXRpdmVUeXBlKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFR5cGVSZWYo
bm9kZSkKLSAgICB7Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS50eXBlLCB0aGlzKTsKLSAgICB9
Ci0KLSAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGNvbnN0IGZpZWxk
TmFtZXMgPSBbICJ4IiwgInkiLCAieiIsICJ3IiBdOwotICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IG5vZGUubnVtRWxlbWVudHNWYWx1ZTsgaSsrKSB7Ci0gICAgICAgICAgICB0aGlzLl9yZXN1
bHQucHVzaCh7Ci0gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5fbmFtZS5qb2luKCIuIikgKyAi
LiIgKyBmaWVsZE5hbWVzW2ldLAotICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5fb2Zmc2V0
ICsgaSAqIG5vZGUuZWxlbWVudFR5cGUuc2l6ZSwKLSAgICAgICAgICAgICAgICB0eXBlOiBub2Rl
LmVsZW1lbnRUeXBlLm5hbWUKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBjb25zdCBmaWVsZE5hbWVz
ID0gWyAicm93MCIsICJyb3cxIiwgInJvdzIiLCAicm93MyIgXTsKLSAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBub2RlLm51bVJvd3NWYWx1ZTsgaSsrKSB7Ci0gICAgICAgICAgICB0aGlzLl9y
ZXN1bHQucHVzaCh7Ci0gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5fbmFtZS5qb2luKCIuIikg
KyAiLiIgKyBmaWVsZE5hbWVzW2ldLAotICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5fb2Zm
c2V0ICsgaSAqIG5vZGUuZWxlbWVudFR5cGUuc2l6ZSAqIG5vZGUubnVtQ29sdW1uc1ZhbHVlLAot
ICAgICAgICAgICAgICAgIHR5cGU6IG5vZGUuZWxlbWVudFR5cGUubmFtZSArIG5vZGUubnVtQ29s
dW1uc1ZhbHVlLnRvU3RyaW5nKCkKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfQot
fQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVy
YWwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2YzU3MzdkZTE2Li4wMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWxldCBGbG9hdExpdGVyYWwgPSBjcmVhdGVMaXRl
cmFsKHsKLSAgICBsaXRlcmFsQ2xhc3NOYW1lOiAiRmxvYXRMaXRlcmFsIiwKLSAgICBwcmVmZXJy
ZWRUeXBlTmFtZTogImZsb2F0IiwKLSAgICAKLSAgICBuZWdDb25zdGV4cHIob3JpZ2luKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIG5ldyBJbnRMaXRlcmFsKG9yaWdpbiwgLXRoaXMudmFsdWUpOwot
ICAgIH0sCi0gICAgCi0gICAgY3JlYXRlVHlwZShvcmlnaW4sIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5ldyBGbG9hdExpdGVyYWxUeXBlKG9yaWdpbiwgdmFsdWUpOwotICAgIH0KLX0p
OwotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVy
YWxUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlw
ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdiYjdmMmM4YjAuLjAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWxldCBGbG9hdExpdGVyYWxU
eXBlID0gY3JlYXRlTGl0ZXJhbFR5cGUoewotICAgIHByZWZlcnJlZFR5cGVOYW1lOiAiZmxvYXQi
LAotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsK
LSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0g
ICAgICAgIGlmICghcmVhbFRoaXMuaXNGbG9hdGluZykKLSAgICAgICAgICAgIHJldHVybiB7cmVz
dWx0OiBmYWxzZSwgcmVhc29uOiAiQ2Fubm90IHVzZSBmbG9hdCBsaXRlcmFsIHdpdGggbm9uLWZs
b2F0aW5nIHR5cGUgIiArIHJlYWxUaGlzfTsKLSAgICAgICAgaWYgKCFyZWFsVGhpcy5jYW5SZXBy
ZXNlbnQodGhpcy52YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJl
YXNvbjogIkZsb2F0IGxpdGVyYWwgIiArIHRoaXMudmFsdWUgKyAiIGRvZXMgbm90IGZpdCBpbiB0
eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9
Ci19KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZvbGRDb25z
dGV4cHJzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRm9sZENvbnN0ZXhwcnMu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMDdhNzgyMWMyLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Gb2xkQ29uc3RleHBycy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gZm9sZENvbnN0ZXhw
cnMocHJvZ3JhbSkKLXsKLSAgICBwcm9ncmFtLnZpc2l0KG5ldyBDb25zdGV4cHJGb2xkZXIoKSk7
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zvckxvb3Au
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Gb3JMb29wLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlZGUyOTE3MGJiNC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRm9yTG9vcC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1
c2Ugc3RyaWN0IjsKLQotY2xhc3MgRm9yTG9vcCBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVj
dG9yKG9yaWdpbiwgaW5pdGlhbGl6YXRpb24sIGNvbmRpdGlvbiwgaW5jcmVtZW50LCBib2R5KQot
ICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwot
ICAgICAgICB0aGlzLl9pbml0aWFsaXphdGlvbiA9IGluaXRpYWxpemF0aW9uOwotICAgICAgICB0
aGlzLl9jb25kaXRpb24gPSBjb25kaXRpb247Ci0gICAgICAgIHRoaXMuX2luY3JlbWVudCA9IGlu
Y3JlbWVudDsKLSAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7Ci0gICAgfQotCi0gICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBpbml0aWFsaXphdGlvbigp
IHsgcmV0dXJuIHRoaXMuX2luaXRpYWxpemF0aW9uOyB9Ci0gICAgZ2V0IGNvbmRpdGlvbigpIHsg
cmV0dXJuIHRoaXMuX2NvbmRpdGlvbjsgfQotICAgIGdldCBpbmNyZW1lbnQoKSB7IHJldHVybiB0
aGlzLl9pbmNyZW1lbnQ7IH0KLSAgICBnZXQgYm9keSgpIHsgcmV0dXJuIHRoaXMuX2JvZHk7IH0K
LQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAiZm9yICgiICsgKHRoaXMu
aW5pdGlhbGl6YXRpb24gPyB0aGlzLmluaXRpYWxpemF0aW9uIDogIiAiKSArICI7ICIgKyAodGhp
cy5jb25kaXRpb24gPyB0aGlzLmNvbmRpdGlvbiA6ICIiKSArICI7ICIgKyAodGhpcy5pbmNyZW1l
bnQgPyB0aGlzLmluY3JlbWVudCA6ICIiKSArICIpICIgKyB0aGlzLmJvZHk7Ci0gICAgfQotfTsK
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGUwNmI0MzgyOTAyLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwot
Ci1jbGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1l
LCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUgPSBudWxsLCBzZW1h
bnRpYyA9IG51bGwsIGF0dHJpYnV0ZUJsb2NrID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIGlmICgh
KG9yaWdpbiBpbnN0YW5jZW9mIExleGVyVG9rZW4pKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgb3JpZ2luOiAiICsgb3JpZ2luKTsKLSAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVy
IG9mIHBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIGlmICghcGFyYW1ldGVyKQotICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBwYXJhbWV0ZXIiKTsKLSAgICAgICAgICAgIGlm
ICghcGFyYW1ldGVyLnR5cGUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxs
IHBhcmFtZXRlciB0eXBlIik7Ci0gICAgICAgIH0KLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAg
dGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAg
ICAgdGhpcy5fcmV0dXJuVHlwZSA9IHJldHVyblR5cGU7Ci0gICAgICAgIHRoaXMuX3BhcmFtZXRl
cnMgPSBwYXJhbWV0ZXJzOwotICAgICAgICB0aGlzLl9pc0Nhc3QgPSBpc0Nhc3Q7Ci0gICAgICAg
IHRoaXMuX3NoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwotICAgICAgICB0aGlzLl9zZW1hbnRpYyA9
IHNlbWFudGljOwotICAgICAgICB0aGlzLl9hdHRyaWJ1dGVCbG9jayA9IGF0dHJpYnV0ZUJsb2Nr
OwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9
Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHJldHVyblR5
cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9Ci0gICAgZ2V0IHBhcmFtZXRlcnMoKSB7
IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJzOyB9Ci0gICAgZ2V0IHBhcmFtZXRlclR5cGVzKCkgeyBy
ZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnR5cGUpOyB9
Ci0gICAgZ2V0IGlzQ2FzdCgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FzdDsgfQotICAgIGdldCBzaGFk
ZXJUeXBlKCkgeyByZXR1cm4gdGhpcy5fc2hhZGVyVHlwZTsgfQotICAgIGdldCBzZW1hbnRpYygp
IHsgcmV0dXJuIHRoaXMuX3NlbWFudGljOyB9Ci0gICAgZ2V0IGF0dHJpYnV0ZUJsb2NrKCkgeyBy
ZXR1cm4gdGhpcy5fYXR0cmlidXRlQmxvY2s7IH0KLSAgICBnZXQgaXNFbnRyeVBvaW50KCkgeyBy
ZXR1cm4gdGhpcy5zaGFkZXJUeXBlICE9IG51bGw7IH0KLSAgICBnZXQgcmV0dXJuVHlwZUZvck92
ZXJsb2FkUmVzb2x1dGlvbigpIHsgcmV0dXJuIHRoaXMuaXNDYXN0ID8gdGhpcy5yZXR1cm5UeXBl
IDogbnVsbDsgfQotICAgIAotICAgIHNldCBwYXJhbWV0ZXJzKG5ld1ZhbHVlKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IG5ld1ZhbHVlOwotICAgIH0KLQotICAgIGdldCBraW5k
KCkgeyByZXR1cm4gRnVuYzsgfQotICAgIAotICAgIHRvRGVjbFN0cmluZygpCi0gICAgewotICAg
ICAgICBsZXQgcmVzdWx0ID0gIiI7Ci0gICAgICAgIGlmICh0aGlzLnNoYWRlclR5cGUpCi0gICAg
ICAgICAgICByZXN1bHQgKz0gdGhpcy5zaGFkZXJUeXBlICsgIiAiOwotICAgICAgICBpZiAodGhp
cy5pc0Nhc3QpCi0gICAgICAgICAgICByZXN1bHQgKz0gYG9wZXJhdG9yICR7dGhpcy5yZXR1cm5U
eXBlfWA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCArPSBgJHt0aGlzLnJldHVy
blR5cGV9ICR7dGhpcy5uYW1lfWA7Ci0gICAgICAgIHJlc3VsdCArPSAiKCIgKyB0aGlzLnBhcmFt
ZXRlcnMgKyAiKSI7Ci0gICAgICAgIGlmICh0aGlzLnNlbWFudGljKQotICAgICAgICAgICAgcmVz
dWx0ICs9ICI6ICIgKyB0aGlzLnNlbWFudGljOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50b0Rl
Y2xTdHJpbmcoKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0Z1bmNBdHRyaWJ1dGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9GdW5jQXR0cmlidXRlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmUyNjdl
ODkzYy4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVu
Y0F0dHJpYnV0ZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBG
dW5jQXR0cmlidXRlIGV4dGVuZHMgTm9kZSB7Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GdW5jRGVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjM0Y2U0MDcx
Zi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0Rl
Zi5qcworKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRnVuY0RlZiBl
eHRlbmRzIEZ1bmMgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwg
cGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlID0gIiIsIHNlbWFudGljID0gbnVs
bCwgYXR0cmlidXRlQmxvY2sgPSBudWxsKQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUsIHNlbWFudGlj
LCBhdHRyaWJ1dGVCbG9jayk7Ci0gICAgICAgIHRoaXMuX2JvZHkgPSBib2R5OwotICAgICAgICB0
aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwotICAgIH0KLQotICAgIGdldCBib2R5KCkgeyByZXR1
cm4gdGhpcy5fYm9keTsgfQotCi0gICAgc2V0IGJvZHkobmV3Qm9keSkKLSAgICB7Ci0gICAgICAg
IHRoaXMuX2JvZHkgPSBuZXdCb2R5OwotICAgIH0KLQotICAgIHJld3JpdGUocmV3cml0ZXIpCi0g
ICAgewotICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gdGhpcy5fcmV0dXJuVHlwZS52aXNpdChy
ZXdyaXRlcik7Ci0gICAgICAgIHRoaXMuX3BhcmFtZXRlcnMgPSB0aGlzLl9wYXJhbWV0ZXJzLm1h
cChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHJld3JpdGVyKSk7Ci0gICAgICAgIHRoaXMu
X2JvZHkgPSB0aGlzLmJvZHkudmlzaXQocmV3cml0ZXIpOwotICAgIH0KLSAgICAKLSAgICB0b1N0
cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gc3VwZXIudG9TdHJpbmcoKSArICIgIiArIHRo
aXMuYm9keTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Z1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY051bVRocmVhZHNBdHRyaWJ1dGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZhYmUzNDQwNzQ3Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qcworKysgL2Rldi9udWxsCkBA
IC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZSBleHRlbmRz
IEZ1bmNBdHRyaWJ1dGUgewotICAgIGNvbnN0cnVjdG9yKHgsIHksIHopCi0gICAgewotICAgICAg
ICBzdXBlcigpOwotICAgICAgICB0aGlzLl94ID0geDsKLSAgICAgICAgdGhpcy5feSA9IHk7Ci0g
ICAgICAgIHRoaXMuX3ogPSB6OwotICAgIH0KLQotICAgIGdldCB4KCkgeyByZXR1cm4gdGhpcy5f
eDsgfQotICAgIGdldCB5KCkgeyByZXR1cm4gdGhpcy5feTsgfQotICAgIGdldCB6KCkgeyByZXR1
cm4gdGhpcy5fejsgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GdW5jUGFyYW1ldGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVu
Y1BhcmFtZXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDVjZGI1MmZkZTMu
LjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNQYXJh
bWV0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRnVuY1Bh
cmFtZXRlciBleHRlbmRzIFZhbHVlIHsKLSAgICAvLyBUaGUgbmFtZSBpcyBvcHRpb25hbC4gSXQn
cyBPSyBmb3IgaXQgdG8gYmUgbnVsbCEKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5
cGUsIHNlbWFudGljID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRo
aXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAg
IHRoaXMuX3R5cGUgPSB0eXBlOwotICAgICAgICB0aGlzLl9zZW1hbnRpYyA9IHNlbWFudGljOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0g
ICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGUoKSB7IHJl
dHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IHNlbWFudGljKCkgeyByZXR1cm4gdGhpcy5fc2Vt
YW50aWM7IH0KLSAgICBnZXQgdmFySXNMVmFsdWUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgCi0g
ICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdDsKLSAgICAgICAgaWYgKCF0
aGlzLm5hbWUpCi0gICAgICAgICAgICByZXN1bHQgPSAiIiArIHRoaXMudHlwZTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lOwot
ICAgICAgICBpZiAodGhpcy5zZW1hbnRpYykKLSAgICAgICAgICAgIHJlc3VsdCArPSAiOiAiICsg
dGhpcy5zZW1hbnRpYzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19Ci0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmN0aW9uTGlrZUJsb2NrLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY3Rpb25MaWtlQmxvY2suanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZjk5NWU0ZmU2Li4wMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jdGlvbkxpa2VCbG9jay5qcworKysg
L2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRnVuY3Rpb25MaWtlQmxvY2sg
ZXh0ZW5kcyBWYWx1ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBmdW5jLCBhcmd1bWVudExp
c3QpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmln
aW47Ci0gICAgICAgIHRoaXMuX2Z1bmMgPSBmdW5jOwotICAgICAgICB0aGlzLl9hcmd1bWVudExp
c3QgPSBhcmd1bWVudExpc3Q7Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVy
biB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgZnVuYygpIHsgcmV0dXJuIHRoaXMuX2Z1bmM7IH0K
LSAgICBnZXQgcmV0dXJuVHlwZSgpIHsgcmV0dXJuIHRoaXMuZnVuYy5fcmV0dXJuVHlwZTsgfQot
ICAgIGdldCBhcmd1bWVudExpc3QoKSB7IHJldHVybiB0aGlzLl9hcmd1bWVudExpc3Q7IH0KLSAg
ICBnZXQgcGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuZnVuYy5fcGFyYW1ldGVyczsgfQotICAg
IGdldCBib2R5KCkgeyByZXR1cm4gdGhpcy5mdW5jLl9ib2R5OyB9Ci0gICAgCi0gICAgdG9TdHJp
bmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICIoWyZdICgiICsgdGhpcy5wYXJhbWV0ZXJzICsg
IikgLT4gIiArIHRoaXMucmV0dXJuVHlwZSArICIgeyAiICsgdGhpcy5ib2R5ICsgIiB9KCIgKyB0
aGlzLmFyZ3VtZW50TGlzdCArICIpKSI7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSGlnaFpvbWJpZUZpbmRlci5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0hpZ2hab21iaWVGaW5kZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNhZWVlMTVhM2YxLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9IaWdoWm9tYmllRmluZGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi0vLyBJZiBhIGhpZ2gtbGV2ZWwgY29uc3RydWN0IHNvbWVob3cgbWFuYWdl
cyB0byBsaXZlIG9uIHdoZW4gd2UncmUgbG93ZXJlZCwgaXQncyBhIGhpZ2ggem9tYmllLgotY2xh
c3MgSGlnaFpvbWJpZUZpbmRlciBleHRlbmRzIFZpc2l0b3IgewotICAgIF9mb3VuZChub2RlKQot
ICAgIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZyAr
ICI6IEhpZ2ggem9tYmllOiAiICsgbm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RG90RXhw
cmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm91bmQobm9kZSk7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICB0aGlz
Ll9mb3VuZChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2Rl
KQotICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lkZW50aXR5
RXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lkZW50aXR5RXhw
cmVzc2lvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBjZTZhMzgxYzcuLjAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lkZW50aXR5RXhw
cmVzc2lvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgSWRl
bnRpdHlFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gICAgY29uc3RydWN0b3IodGFy
Z2V0KQotICAgIHsKLSAgICAgICAgc3VwZXIodGFyZ2V0Lm9yaWdpbik7Ci0gICAgICAgIHRoaXMu
X3RhcmdldCA9IHRhcmdldDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHRhcmdldCgpIHsgcmV0dXJu
IHRoaXMuX3RhcmdldDsgfQotICAgIAotICAgIGdldCB1bmlmeU5vZGUoKSB7IHJldHVybiB0aGlz
LnRhcmdldC51bmlmeU5vZGU7IH0KLSAgICBnZXQgaXNDb25zdGV4cHIoKSB7IHJldHVybiB0aGlz
LnRhcmdldC5pc0NvbnN0ZXhwcjsgfQotICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIHRoaXMu
dGFyZ2V0LmlzTFZhbHVlOyB9Ci0gICAgZ2V0IGFkZHJlc3NTcGFjZSgpIHsgcmV0dXJuIHRoaXMu
dGFyZ2V0LmFkZHJlc3NTcGFjZTsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAiKCIgKyB0aGlzLnRhcmdldCArICIpIjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lmU3RhdGVtZW50LmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSWZTdGF0ZW1lbnQuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc2ZGU1ZjkyMWQ1Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JZlN0YXRlbWVudC5qcworKysgL2Rldi9udWxsCkBAIC0xLDUwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ug
c3RyaWN0IjsKLQotY2xhc3MgSWZTdGF0ZW1lbnQgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1
Y3RvcihvcmlnaW4sIGNvbmRpdGlvbmFsLCBib2R5LCBlbHNlQm9keSkKLSAgICB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5f
Y29uZGl0aW9uYWwgPSBjb25kaXRpb25hbDsKLSAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7Ci0g
ICAgICAgIHRoaXMuX2Vsc2VCb2R5ID0gZWxzZUJvZHk7Ci0gICAgfQotCi0gICAgZ2V0IG9yaWdp
bigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBjb25kaXRpb25hbCgpIHsgcmV0
dXJuIHRoaXMuX2NvbmRpdGlvbmFsOyB9Ci0gICAgZ2V0IGJvZHkoKSB7IHJldHVybiB0aGlzLl9i
b2R5OyB9Ci0gICAgZ2V0IGVsc2VCb2R5KCkgeyByZXR1cm4gdGhpcy5fZWxzZUJvZHk7IH0KLQot
ICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSAiaWYgKCIgKyB0aGlz
LmNvbmRpdGlvbmFsICsgIikgIiArIHRoaXMuYm9keTsKLSAgICAgICAgaWYgKHRoaXMuZWxzZUJv
ZHkpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgIiBlbHNlICIgKyB0aGlzLmVsc2VCb2R5
OwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX07Ci0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZGV4RXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0luZGV4RXhwcmVzc2lvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjBiN2Y5MTcxZjYuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0luZGV4RXhwcmVzc2lvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1
c2Ugc3RyaWN0IjsKLQotY2xhc3MgSW5kZXhFeHByZXNzaW9uIGV4dGVuZHMgUHJvcGVydHlBY2Nl
c3NFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGFycmF5LCBpbmRleCkKLSAg
ICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgYXJyYXkpOwotICAgICAgICB0aGlzLl9pbmRleCA9
IGluZGV4OwotICAgIH0KLSAgICAKLSAgICBnZXQgYXJyYXkoKSB7IHJldHVybiB0aGlzLmJhc2U7
IH0KLSAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsgfQotICAgIAotICAgIGdl
dCBnZXRGdW5jTmFtZSgpIHsgcmV0dXJuICJvcGVyYXRvcltdIjsgfQotICAgIGdldCBhbmRGdW5j
TmFtZSgpIHsgcmV0dXJuICJvcGVyYXRvciZbXSI7IH0KLSAgICBnZXQgc2V0RnVuY05hbWUoKSB7
IHJldHVybiAib3BlcmF0b3JbXT0iOyB9Ci0KLSAgICB1cGRhdGVDYWxscygpCi0gICAgewotICAg
ICAgICBpZiAodGhpcy5jYWxsRm9yR2V0KQotICAgICAgICAgICAgdGhpcy5jYWxsRm9yR2V0LmFy
Z3VtZW50TGlzdFsxXSA9IHRoaXMuaW5kZXg7Ci0gICAgICAgIGlmICh0aGlzLmNhbGxGb3JBbmQp
Ci0gICAgICAgICAgICB0aGlzLmNhbGxGb3JBbmQuYXJndW1lbnRMaXN0WzFdID0gdGhpcy5pbmRl
eDsKLSAgICAgICAgaWYgKHRoaXMuY2FsbEZvclNldCkKLSAgICAgICAgICAgIHRoaXMuY2FsbEZv
clNldC5hcmd1bWVudExpc3RbMV0gPSB0aGlzLmluZGV4OwotICAgICAgICBzdXBlci51cGRhdGVD
YWxscygpOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAi
KCIgKyB0aGlzLmFycmF5ICsgIlsiICsgdGhpcy5pbmRleCArICJdKSI7Ci0gICAgfQotfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNmZWI5ODZjYWYuLjAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JDYWxsLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JD
YWxsKGZ1bmMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCi17Ci0gICAgaWYgKGFyZ3VtZW50
VHlwZXMubGVuZ3RoICE9IGZ1bmMucGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB7
ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIldyb25nIG51bWJl
ciBvZiBhcmd1bWVudHMgKHBhc3NlZCAiICsgYXJndW1lbnRUeXBlcy5sZW5ndGggKyAiLCByZXF1
aXJlICIgKyBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICsgIikiKX07Ci0gICAgbGV0IHVuaWZpY2F0
aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoKTsKLQotICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgYXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoIWFyZ3Vt
ZW50VHlwZXNbaV0pCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgYXJndW1lbnQg
dHlwZSBhdCBpID0gIiArIGkpOwotICAgICAgICBpZiAoIWFyZ3VtZW50VHlwZXNbaV0udW5pZnko
dW5pZmljYXRpb25Db250ZXh0LCBmdW5jLnBhcmFtZXRlcnNbaV0udHlwZSkpCi0gICAgICAgICAg
ICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJB
cmd1bWVudCAjIiArIChpICsgMSkgKyAiICIgKyAoZnVuYy5wYXJhbWV0ZXJzW2ldLm5hbWUgPyAi
Zm9yIHBhcmFtZXRlciAiICsgZnVuYy5wYXJhbWV0ZXJzW2ldLm5hbWUgKyAiICIgOiAiIikgKyAi
ZG9lcyBub3QgbWF0Y2ggKHBhc3NlZCAiICsgYXJndW1lbnRUeXBlc1tpXSArICIsIHJlcXVpcmUg
IiArIGZ1bmMucGFyYW1ldGVyc1tpXS50eXBlICsgIikiKX07Ci0gICAgfQotICAgIGlmIChyZXR1
cm5UeXBlICYmICFyZXR1cm5UeXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgZnVuYy5yZXR1
cm5UeXBlKSkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9u
RmFpbHVyZShmdW5jLCAiUmV0dXJuIHR5cGUgIiArIGZ1bmMucmV0dXJuVHlwZSArICIgZG9lcyBu
b3QgbWF0Y2ggIiArIHJldHVyblR5cGUpfTsKLSAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0g
dW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwotICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0
LnJlc3VsdCkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9u
RmFpbHVyZShmdW5jLCB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKX07Ci0KLSAgICByZXR1cm4g
e2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dH07Ci19Ci0KLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JU
eXBlQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMpCi17Ci0gICAgaWYgKHR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IHR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB7
ZmFpbHVyZTogbmV3IFR5cGVPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKHR5cGUsICJXcm9uZyBu
dW1iZXIgb2YgYXJndW1lbnRzIChwYXNzZWQgIiArIHR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwg
cmVxdWlyZSAiICsgdHlwZS50eXBlQXJndW1lbnRzLmxlbmd0aCArICIpIil9OwotICAgIGxldCB1
bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7Ci0KLSAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYg
KCF0eXBlQXJndW1lbnRzW2ldKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHR5
cGUgYXJndW1lbnQgYXQgaSA9ICIgKyBpKTsKLSAgICAgICAgaWYgKCF0eXBlQXJndW1lbnRzW2ld
LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgdHlwZS50eXBlQXJndW1lbnRzW2ldKSkKLSAgICAg
ICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IFR5cGVPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
KHR5cGUsICJBcmd1bWVudCAjIiArIChpICsgMSkgKyAiICIgKyAodHlwZS50eXBlQXJndW1lbnRz
W2ldLm5hbWUgPyAiZm9yIHBhcmFtZXRlciAiICsgdHlwZS50eXBlQXJndW1lbnRzW2ldLm5hbWUg
KyAiICIgOiAiIikgKyAiZG9lcyBub3QgbWF0Y2ggKHBhc3NlZCAiICsgdHlwZUFyZ3VtZW50c1tp
XSArICIsIHJlcXVpcmUgIiArIHR5cGUudHlwZUFyZ3VtZW50c1tpXS50eXBlICsgIikiKX07Ci0g
ICAgfQotICAgIGxldCB2ZXJpZmljYXRpb25SZXN1bHQgPSB1bmlmaWNhdGlvbkNvbnRleHQudmVy
aWZ5KCk7Ci0gICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQucmVzdWx0KQotICAgICAgICByZXR1
cm4ge2ZhaWx1cmU6IG5ldyBUeXBlT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZSh0eXBlLCB2ZXJp
ZmljYXRpb25SZXN1bHQucmVhc29uKX07Ci0KLSAgICByZXR1cm4ge3R5cGUsIHVuaWZpY2F0aW9u
Q29udGV4dH07Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bmxpbmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNTg4MWMxYmQwLi4wMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGlubGluZShwcm9ncmFtKQotewotICAgIGZvciAo
bGV0IGZ1bmNMaXN0IG9mIHByb2dyYW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7Ci0gICAgICAgIGZv
ciAobGV0IGZ1bmMgb2YgZnVuY0xpc3QpCi0gICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJv
Z3JhbSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KGZ1bmMpKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKLXsKLSAgICBpZiAoZnVu
Yy5pbmxpbmVkIHx8IGZ1bmMuaXNOYXRpdmUpCi0gICAgICAgIHJldHVybjsKLSAgICBmdW5jLnJl
d3JpdGUobmV3IElubGluZXIocHJvZ3JhbSwgZnVuYywgdmlzaXRpbmcpKTsKLSAgICBmdW5jLmlu
bGluZWQgPSB0cnVlOwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW5saW5lci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2YzQwZGZjNzE3Li4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0ZXIg
ewotICAgIGNvbnN0cnVjdG9yKHByb2dyYW0sIGZ1bmMsIHZpc2l0aW5nKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fcHJvZ3JhbSA9IHByb2dyYW07Ci0gICAgICAgIHRo
aXMuX3Zpc2l0aW5nID0gdmlzaXRpbmc7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q2FsbEV4cHJl
c3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdENhbGxF
eHByZXNzaW9uKG5vZGUpOwotICAgICAgICBpZiAocmVzdWx0LmZ1bmMuaXNOYXRpdmUpCi0gICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICByZXR1cm4gdGhpcy5fdmlzaXRpbmcuZG9W
aXNpdChyZXN1bHQuZnVuYywgKCkgPT4gewotICAgICAgICAgICAgbGV0IGZ1bmMgPSByZXN1bHQu
ZnVuYzsKLSAgICAgICAgICAgIGlmIChmdW5jLmlzTmF0aXZlKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBuYXRpdmUgZnVuYzogIiArIGZ1bmMpOwotICAgICAg
ICAgICAgX2lubGluZUZ1bmN0aW9uKHRoaXMuX3Byb2dyYW0sIGZ1bmMsIHRoaXMuX3Zpc2l0aW5n
KTsKLSAgICAgICAgICAgIGxldCByZXN1bHRpbmdCbG9jayA9IG5ldyBGdW5jdGlvbkxpa2VCbG9j
ayhyZXN1bHQub3JpZ2luLCBmdW5jLCByZXN1bHQuYXJndW1lbnRMaXN0KTsKLSAgICAgICAgICAg
IHJlc3VsdGluZ0Jsb2NrLnJldHVybkVQdHIgPSByZXN1bHQucmVzdWx0RVB0cjsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHRpbmdCbG9jazsKLSAgICAgICAgfSk7Ci0gICAgfQotfQotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRMaXRlcmFsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50TGl0ZXJhbC5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDIyYjM0M2RmOTIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0ludExpdGVyYWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWxldCBJbnRMaXRlcmFsID0gY3JlYXRlTGl0ZXJhbCh7Ci0gICAgbGl0ZXJh
bENsYXNzTmFtZTogIkludExpdGVyYWwiLAotICAgIHByZWZlcnJlZFR5cGVOYW1lOiAiaW50IiwK
LSAgICAKLSAgICBuZWdDb25zdGV4cHIob3JpZ2luKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyBJbnRMaXRlcmFsKG9yaWdpbiwgKC10aGlzLnZhbHVlKSB8IDApOwotICAgIH0sCi0gICAgCi0g
ICAgY3JlYXRlVHlwZShvcmlnaW4sIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBJ
bnRMaXRlcmFsVHlwZShvcmlnaW4sIHZhbHVlKTsKLSAgICB9Ci19KTsKLQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50TGl0ZXJhbFR5cGUuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRMaXRlcmFsVHlwZS5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2NkOWRkN2JhNTQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0ludExpdGVyYWxUeXBlLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1sZXQgSW50TGl0ZXJhbFR5cGUgPSBjcmVhdGVMaXRlcmFsVHlwZSh7
Ci0gICAgcHJlZmVycmVkVHlwZU5hbWU6ICJpbnQiLAotICAgIAotICAgIHZlcmlmeUFzQXJndW1l
bnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5p
ZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIGlmICghcmVhbFRoaXMuaXNOdW1i
ZXIpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkNhbm5vdCB1
c2UgaW50IGxpdGVyYWwgd2l0aCBub24tbnVtYmVyIHR5cGUgIiArIHJlYWxUaGlzfTsKLSAgICAg
ICAgaWYgKCFyZWFsVGhpcy5jYW5SZXByZXNlbnQodGhpcy52YWx1ZSkpCi0gICAgICAgICAgICBy
ZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkludCBsaXRlcmFsICIgKyB0aGlzLnZhbHVl
ICsgIiB0b28gbGFyZ2UgdG8gYmUgcmVwcmVzZW50ZWQgYnkgdHlwZSAiICsgcmVhbFRoaXN9Owot
ICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotfSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmQ4YzM3ZWY2OTEuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNjU1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgSW50cmluc2ljcyB7Ci0gICAgY29uc3RydWN0b3IobmFtZUNvbnRleHQpCi0g
ICAgewotICAgICAgICB0aGlzLl9tYXAgPSBuZXcgTWFwKCk7Ci0KLSAgICAgICAgLy8gTk9URTog
SW50cmluc2ljIHJlc29sdXRpb24gaGFwcGVucyBiZWZvcmUgdHlwZSBuYW1lIHJlc29sdXRpb24s
IHNvIHRoZSBzdHJpbmdzIHdlIHVzZSBoZXJlCi0gICAgICAgIC8vIHRvIGNhdGNoIHRoZSBpbnRy
aW5zaWNzIG11c3QgYmUgYmFzZWQgb24gdGhlIHR5cGUgbmFtZXMgdGhhdCBTdGFuZGFyZExpYnJh
cnkuanMgdXNlcy4KLSAgICAgICAgLy8gRm9yIGV4YW1wbGUsIGlmIGEgbmF0aXZlIGZ1bmN0aW9u
IGlzIGRlY2xhcmVkIHVzaW5nICJpbnQiIHJhdGhlciB0aGFuICJpbnQiLCB0aGVuIHdlIG11c3QK
LSAgICAgICAgLy8gdXNlICJpbnQiIGhlcmUsIHNpbmNlIHdlIGRvbid0IHlldCBrbm93IHRoYXQg
dGhleSBhcmUgdGhlIHNhbWUgdHlwZS4KLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQiLAotICAgICAgICAgICAgdHlwZSA9PiB7Ci0gICAg
ICAgICAgICAgICAgdGhpcy52b2lkID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLnNpemUg
PSAwOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoKSA9PiB7
IH07Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIGJvb2wiLAotICAgICAgICAgICAgdHlwZSA9PiB7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5ib29sID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0
aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCBmYWxzZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVjaGFyIiwKLSAgICAgICAgICAg
IHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWNoYXIgPSB0eXBlOwotICAgICAgICAg
ICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNJ
bnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwotICAgICAg
ICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB0eXBlLmNh
blJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNoYXIodmFs
dWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0VG9VY2hhcih2YWx1ZSksIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29y
VmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSArIDEpOwotICAgICAgICAgICAgICAg
IHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0
eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0
KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOwotICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSk7
Ci0gICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0gICAgICAgICAgICAgICAg
fTsKLSAgICAgICAgICAgIH0pOwotCi0KLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVzaG9ydCIsCi0gICAgICAgICAgICAgdHlwZSA9PiB7
Ci0gICAgICAgICAgICAgICAgIHRoaXMudXNob3J0ID0gdHlwZTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0
cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVXNob3J0KHZhbHVl
KSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRl
TGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwg
Y2FzdFRvVXNob3J0KHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vz
c29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9Vc2hvcnQodmFsdWUgKyAxKTsKLSAgICAgICAgICAg
ICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
SW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9Vc2hv
cnQodmFsdWUpOwotICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigp
IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytp
KQotICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0g
ICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdWludCIsCi0gICAgICAgICAgICAg
dHlwZSA9PiB7Ci0gICAgICAgICAgICAgICAgIHRoaXMudWludCA9IHR5cGU7Ci0gICAgICAgICAg
ICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmlz
SW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlw
ZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb1VpbnQo
dmFsdWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5j
cmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3Jp
Z2luLCBjYXN0VG9VaW50KHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlICsgMSk7Ci0gICAgICAgICAg
ICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VpbnQo
dmFsdWUpOwotICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsK
LSAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsr
aSkKLSAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9Owot
ICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGNoYXIiLAotICAgICAgICAgICAg
IHR5cGUgPT4gewotICAgICAgICAgICAgICAgICB0aGlzLmNoYXIgPSB0eXBlOwotICAgICAgICAg
ICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5p
c0ludCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlw
ZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb0NoYXIo
dmFsdWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5j
cmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3Jp
Z2luLCBjYXN0VG9DaGFyKHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9DaGFyKHZhbHVlICsgMSk7Ci0gICAgICAgICAg
ICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9DaGFyKHZhbHVlKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIo
dmFsdWUpOwotICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsK
LSAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0NoYXIoaSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9Owot
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAg
IH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgIm5hdGl2ZSB0eXBl
ZGVmIHNob3J0IiwKLSAgICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICAgdGhp
cy5zaG9ydCA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0
cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0
d2lzZUVxdWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0g
MDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUp
ID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9TaG9ydCh2YWx1ZSksIHR5cGUp
OwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRv
U2hvcnQodmFsdWUgKyAxKTsKLSAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChh
LCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZh
bHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RU
b1Nob3J0KHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50
TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZhbHVlKTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8PSAweGZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB2YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIHlp
ZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKLSAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBpbnQiLAotICAgICAgICAgICAg
IHR5cGUgPT4gewotICAgICAgICAgICAgICAgICB0aGlzLmludCA9IHR5cGU7Ci0gICAgICAgICAg
ICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmlz
SW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBl
LmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvSW50KHZh
bHVlKSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAg
ICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3Jl
YXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdp
biwgY2FzdFRvSW50KHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vz
c29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUgKyAxKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50
TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUp
OwotICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKLSAgICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0ludChpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07Ci0g
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAg
fSk7Ci0KLSAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgIm5hdGl2ZSB0eXBl
ZGVmIGhhbGYiLAotICAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgICB0aGlz
LmhhbGYgPSB0eXBlOwotICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICAgdHlwZS5p
c0Zsb2F0aW5nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1h
dFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwotICAgICAg
ICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IGNh
c3RUb0hhbGYodmFsdWUpOwotICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBmbG9hdCIsCi0gICAgICAgICAgICAg
dHlwZSA9PiB7Ci0gICAgICAgICAgICAgICAgIHRoaXMuZmxvYXQgPSB0eXBlOwotICAgICAgICAg
ICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKLSAgICAgICAgICAgICAgICAgdHlwZS5pc0Zsb2F0aW5nID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUu
Y2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2
YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50
TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZh
bHVlRnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0Zsb2F0KHZhbHVlKTsKLSAgICAg
ICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICJuYXRp
dmUgdHlwZWRlZiBhdG9taWNfaW50IiwKLSAgICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAg
ICAgICAgICAgdGhpcy5hdG9taWNfaW50ID0gdHlwZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKLSAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgIH0p
OwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVm
IGF0b21pY191aW50IiwKLSAgICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICAg
dGhpcy5hdG9taWNfdWludCA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7
Ci0gICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICBmb3IgKGxldCB2ZWN0b3JUeXBlIG9mIFZlY3RvckVsZW1lbnRUeXBlcykgewotICAgICAg
ICAgICAgZm9yIChsZXQgdmVjdG9yU2l6ZSBvZiBWZWN0b3JFbGVtZW50U2l6ZXMpIHsKLSAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGBuYXRpdmUgdHlwZWRlZiB2ZWN0b3I8JHt2ZWN0b3JU
eXBlfSwgJHt2ZWN0b3JTaXplfT5gLCB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGhp
c1tgdmVjdG9yPCR7dmVjdG9yVHlwZX0sICR7dmVjdG9yU2l6ZX0+YF0gPSB0eXBlOwotICAgICAg
ICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IHR5cGVOYW1l
IG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBoZWlnaHQgPSAy
OyBoZWlnaHQgPD0gNDsgKytoZWlnaHQpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB3aWR0
aCA9IDI7IHdpZHRoIDw9IDQ7ICsrd2lkdGgpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldChgbmF0aXZlIHR5cGVkZWYgbWF0cml4PCR7dHlwZU5hbWV9LCAke2hlaWdodH0sICR7
d2lkdGh9PmAsIHR5cGUgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgbWF0cml4
PCR7dHlwZU5hbWV9LCAke2hlaWdodH0sICR7d2lkdGh9PmBdID0gdHlwZTsKLSAgICAgICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBz
YW1wbGVyIiwKLSAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMuc2Ft
cGxlciA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwge30pOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgZm9yIChsZXQg
dGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJy
YXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4
dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJl
M0QiLCAiVGV4dHVyZUN1YmUiXSkgewotICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50
IG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0Iiwg
ImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0
eXBlQXJndW1lbnR9PmAsCi0gICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0g
dHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlLmlzVGV4dHVyZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwge30pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAk
e3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUuaXNUZXh0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBv
cHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNl
dCwge30pOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUg
b2YgWyJUZXh0dXJlRGVwdGgyRCIsICJSV1RleHR1cmVEZXB0aDJEIiwgIlRleHR1cmVEZXB0aDJE
QXJyYXkiLCAiUldUZXh0dXJlRGVwdGgyREFycmF5IiwgIlRleHR1cmVEZXB0aEN1YmUiXSkgewot
ICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIFsiZmxvYXQiLCAiaGFsZiJdKSB7
Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAotICAgICAgICAg
ICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4
dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0
ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9
KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidXNob3J0IiwgInVpbnQiLCAiY2hh
ciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7Ci0gICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdWNoYXIoJHtwcmlt
aXRpdmVUeXBlfSlgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Vj
aGFyKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0K
LQotICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidWludCIsICJj
aGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKLSAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtw
cmltaXRpdmVUeXBlfSlgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RU
b1VzaG9ydCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICB9Ci0KLSAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9y
dCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKLSAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1aW50
KCR7cHJpbWl0aXZlVHlwZX0pYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChj
YXN0VG9VaW50KHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNo
b3J0IiwgInVpbnQiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgewotICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGNo
YXIoJHtwcmltaXRpdmVUeXBlfSlgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KGNhc3RUb0NoYXIodmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1
c2hvcnQiLCAidWludCIsICJjaGFyIiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKLSAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBz
aG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdFRvU2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIs
ICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImhhbGYiLCAiZmxvYXQiXSkgewot
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJh
dG9yIGludCgke3ByaW1pdGl2ZVR5cGV9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goY2FzdChJbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBb
InVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImZsb2F0
Il0pIHsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2
ZSBvcGVyYXRvciBoYWxmKCR7cHJpbWl0aXZlVHlwZX0pYCwKLSAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveChjYXN0VG9IYWxmKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9m
IFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFs
ZiJdKSB7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRp
dmUgb3BlcmF0b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAotICAgICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgYG5hdGl2ZSBvcGVyYXRvciBpbnQoYXRvbWljX2ludClgLAotICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21p
Y191aW50KWAsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIGJvb2wgb3BlcmF0b3I9PShib29sLGJvb2wpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdo
dC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICBmb3IgKGxldCBwcmlt
aXRpdmVUeXBlIG9mIFsidWludCIsICJpbnQiLCAiZmxvYXQiXSkgewotICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I9PSgke3By
aW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmln
aHRdKSA9PgotICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUo
KSA9PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9y
PCgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKLSAgICAgICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3Bl
cmF0b3I8PSgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKLSAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0KLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSBi
b29sIG9wZXJhdG9yPigke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKLSAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3gobGVmdC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAg
ICB9KTsKLQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0
aXZlIGJvb2wgb3BlcmF0b3I+PSgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwK
LSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7
Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7
Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3IrKGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsaW50KSIsCi0g
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0ludChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAg
IH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvciooaW50LGludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRW
YWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IvKGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9h
ZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcisodWlu
dCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1
ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQsdWlu
dCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwotICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvci8odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAv
IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsZmxvYXQp
IiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0gICAg
ICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUo
KSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxv
YXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0g
ICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFs
dWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCxpbnQp
IiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkpOwotICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
aW50IG9wZXJhdG9yfChpbnQsaW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQu
bG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcl4oaW50LGludCkiLAotICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVm
dC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQot
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J+
KGludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQofnZhbHVlLmxvYWRW
YWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAotICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5s
b2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPj4o
aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQubG9hZFZhbHVlKCkp
KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIHVpbnQgb3BlcmF0b3ImKHVpbnQsdWludCkiLAotICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZh
bHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWludCx1
aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0g
ICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgp
IF4gcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+KHVpbnQpIiwKLSAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVWludCh+dmFsdWUubG9hZFZhbHVlKCkpKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1
ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPj4odWludCx1
aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IHNpbihmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNpbih2YWx1ZS5sb2FkVmFsdWUo
KSkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IHRhbihmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0g
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5sb2FkVmFs
dWUoKSkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hY29zKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXNpbihmbG9hdCkiLAotICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmFzaW4odmFs
dWUubG9hZFZhbHVlKCkpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhdGFuKGZsb2F0KSIsCi0gICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRh
bih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKLSAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0
aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc2luaChmbG9hdCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9h
dChNYXRoLnNpbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCB0YW5oKGZsb2F0
KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0Zsb2F0KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKLSAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwo
ZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwotICAgICAgICAgICAg
fSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
ZXhwKGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwotICAgICAgICAg
ICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgZmxvb3IoZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKLSAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGZsb2F0IGxvZyhmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucm91bmQodmFsdWUubG9hZFZhbHVl
KCkpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBzcXJ0KGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRydW5jKGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFs
dWUubG9hZFZhbHVlKCkpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmcmFnbWVudCBmbG9hdCBkZHgoZmxvYXQpIiwKLSAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goMCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmcmFnbWVudCBmbG9hdCBkZHkoZmxv
YXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goMCk7Ci0gICAgICAgICAgICB9KTsKLQot
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBwb3coZmxv
YXQsZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9h
ZFZhbHVlKCkpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIGlzZmluaXRlKGZsb2F0KSIsCi0gICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE51bWJlci5pc0Zpbml0ZSh2YWx1ZS5s
b2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc2luZihmbG9hdCkiLAotICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgodmFsdWUubG9hZFZhbHVlKCkgPT0gTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRZKSB8fCAodmFsdWUubG9hZFZhbHVlKCkgPT0gTnVtYmVyLk5F
R0FUSVZFX0lORklOSVRZKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIGlzbmFuKGZsb2F0KSIsCi0gICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE51bWJlci5pc05hTih2YWx1ZS5s
b2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0aGlzLgotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBi
b29sIGlzbm9ybWFsKGhhbGYpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goaXNOYU4odmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KLSAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChmbG9hdCkiLAotICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChpc05hTih2YWx1ZS5sb2FkVmFs
dWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5h
dGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKLSAgICAgICAgICAg
IH0pOwotCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBh
c2ludChmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChiaXR3aXNlQ2FzdChGbG9hdDMyQXJyYXksIEludDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1
ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IGFzdWludChmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChGbG9hdDMyQXJyYXksIFVpbnQz
MkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXNmbG9hdChpbnQpIiwK
LSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goYml0d2lzZUNh
c3QoSW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwotICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgYXNmbG9hdCh1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0KFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIHZhbHVl
LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMuCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGZsb2F0IGYxNnRvZjMyKHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goMCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRoaXMuCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIHVpbnQgZjMydG9mMTYoZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goMCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBjb21wdXRlIHZvaWQgQWxsTWVtb3J5QmFycmll
cldpdGhHcm91cFN5bmMoKSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsKLSAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGNvbXB1dGUgdm9p
ZCBEZXZpY2VNZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYygpIiwKLSAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbigpIHt9
OwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgY29tcHV0ZSB2b2lkIEdyb3VwTWVtb3J5QmFycmllcldpdGhHcm91cFN5bmMoKSIs
Ci0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oKSB7fTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIGZvciAobGV0
IG5hdGl2ZVZlY3RvclR5cGVOYW1lIG9mIGFsbFZlY3RvclR5cGVOYW1lcygpKSB7Ci0gICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KGBuYXRpdmUgdHlwZWRlZiAke25hdGl2ZVZlY3RvclR5cGVOYW1l
fWAsIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBnZXR0ZXIgb2Yg
QnVpbHRpblZlY3RvckdldHRlci5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoZ2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gZ2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50
YXRpb24oZnVuYykpOwotCi0gICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGluVmVjdG9y
U2V0dGVyLmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzZXR0ZXIudG9T
dHJpbmcoKSwgZnVuYyA9PiBzZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7
Ci0KLSAgICAgICAgZm9yIChsZXQgZ2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhHZXR0ZXIuZnVuY3Rp
b25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGdldHRlci50b1N0cmluZygpLCBmdW5j
ID0+IGdldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKLQotICAgICAgICBm
b3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlvbnMoKSkKLSAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmlu
c3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOwotCi0gICAgICAgIGZvciAobGV0IGFkZHJl
c3NTcGFjZTEgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAg
ICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAi
LCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRBZGQoYXRvbWljX3VpbnQqICR7YWRk
cmVzc1NwYWNlMX0sdWludCx1aW50KiAke2FkZHJlc3NTcGFjZTJ9KWAsCi0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFthdG9taWMsIHZhbHVlLCBvcmlnaW5hbFZhbHVlXSwgbm9kZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXRvbWljLmxvYWRWYWx1ZSgpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJOdWxsIGF0b21pYyBwb2ludGVyIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGEgPSBhdG9taWMubG9hZFZhbHVlKCkubG9hZFZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSB2YWx1ZS5sb2FkVmFsdWUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gY2FzdFRvVWludChhICsgYik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWUubG9hZFZhbHVl
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsVmFsdWUubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3goYSksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF0b21pYy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveChyZXN1bHQpLCAxKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgSW50ZXJsb2NrZWRBZGQoYXRvbWljX2ludCogJHthZGRyZXNzU3BhY2UxfSxpbnQsaW50KiAk
e2FkZHJlc3NTcGFjZTJ9KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFthdG9taWMs
IHZhbHVlLCBvcmlnaW5hbFZhbHVlXSwgbm9kZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghYXRvbWljLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOdWxs
IGF0b21pYyBwb2ludGVyIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSBh
dG9taWMubG9hZFZhbHVlKCkubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGIgPSB2YWx1ZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgcmVzdWx0ID0gY2FzdFRvSW50KGEgKyBiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAob3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveChh
KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHJlc3VsdCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZEFuZChhdG9taWNf
dWludCogJHthZGRyZXNzU3BhY2UxfSx1aW50LHVpbnQqICR7YWRkcmVzc1NwYWNlMn0pYCwKLSAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW2F0b21pYywgdmFsdWUsIG9yaWdpbmFsVmFsdWVd
LCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdG9taWMubG9hZFZh
bHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIiKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUoKS5sb2Fk
VmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IHZhbHVlLmxvYWRW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBjYXN0VG9V
aW50KGEgJiBiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1
ZS5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxW
YWx1ZS5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveChhKSwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXRvbWljLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHJlc3Vs
dCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9
KTsKLQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZEFuZChhdG9taWNfaW50KiAke2FkZHJlc3NTcGFjZTF9
LGludCxpbnQqICR7YWRkcmVzc1NwYWNlMn0pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW2F0b21pYywgdmFsdWUsIG9yaWdpbmFsVmFsdWVdLCBub2RlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFhdG9taWMubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0
cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUoKS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgYiA9IHZhbHVlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCByZXN1bHQgPSBjYXN0VG9JbnQoYSAmIGIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KGEpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9taWMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3gocmVzdWx0KSwgMSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEludGVybG9ja2Vk
RXhjaGFuZ2UoYXRvbWljX3VpbnQqICR7YWRkcmVzc1NwYWNlMX0sdWludCx1aW50KiAke2FkZHJl
c3NTcGFjZTJ9KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFthdG9taWMsIHZhbHVl
LCBvcmlnaW5hbFZhbHVlXSwgbm9kZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghYXRvbWljLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOdWxsIGF0b21p
YyBwb2ludGVyIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSBhdG9taWMu
bG9hZFZhbHVlKCkubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGIgPSB2YWx1ZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
b3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveChhKSwgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KGIpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRFeGNoYW5nZShhdG9taWNfaW50KiAke2Fk
ZHJlc3NTcGFjZTF9LGludCxpbnQqICR7YWRkcmVzc1NwYWNlMn0pYCwKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW2F0b21pYywgdmFsdWUsIG9yaWdpbmFsVmFsdWVdLCBub2RlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdG9taWMubG9hZFZhbHVlKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3Jp
Z2luLm9yaWdpblN0cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIiKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUoKS5sb2FkVmFsdWUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IHZhbHVlLmxvYWRWYWx1ZSgpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KGEpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dG9taWMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3goYiksIDEpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBJbnRlcmxv
Y2tlZE1heChhdG9taWNfdWludCogJHthZGRyZXNzU3BhY2UxfSx1aW50LHVpbnQqICR7YWRkcmVz
c1NwYWNlMn0pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW2F0b21pYywgdmFsdWUs
IG9yaWdpbmFsVmFsdWVdLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFhdG9taWMubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgYXRvbWlj
IHBvaW50ZXIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5s
b2FkVmFsdWUoKS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
YiA9IHZhbHVlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSBjYXN0VG9VaW50KGEgPiBiID8gYSA6IGIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KGEpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9taWMubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3gocmVzdWx0KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEludGVybG9ja2VkTWF4KGF0b21p
Y19pbnQqICR7YWRkcmVzc1NwYWNlMX0saW50LGludCogJHthZGRyZXNzU3BhY2UyfSlgLAotICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbYXRvbWljLCB2YWx1ZSwgb3JpZ2luYWxWYWx1ZV0s
IG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0b21pYy5sb2FkVmFs
dWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBhdG9taWMgcG9pbnRlciIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gYXRvbWljLmxvYWRWYWx1ZSgpLmxvYWRW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gdmFsdWUubG9hZFZh
bHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGNhc3RUb0lu
dChhID4gYiA/IGEgOiBiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2lu
YWxWYWx1ZS5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Jp
Z2luYWxWYWx1ZS5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveChhKSwgMSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXRvbWljLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHJlc3VsdCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9KTsKLQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZE1pbihhdG9taWNfdWludCogJHthZGRyZXNz
U3BhY2UxfSx1aW50LHVpbnQqICR7YWRkcmVzc1NwYWNlMn0pYCwKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW2F0b21pYywgdmFsdWUsIG9yaWdpbmFsVmFsdWVdLCBub2RlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdG9taWMubG9hZFZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIiKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUoKS5sb2FkVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IHZhbHVlLmxvYWRWYWx1ZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBjYXN0VG9VaW50KGEgPCBiID8gYSA6
IGIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxvYWRW
YWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVlLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KGEpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdG9taWMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3gocmVzdWx0KSwgMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0g
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIEludGVybG9ja2VkTWluKGF0b21pY19pbnQqICR7YWRkcmVzc1NwYWNlMX0saW50LGlu
dCogJHthZGRyZXNzU3BhY2UyfSlgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbYXRv
bWljLCB2YWx1ZSwgb3JpZ2luYWxWYWx1ZV0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIWF0b21pYy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
TnVsbCBhdG9taWMgcG9pbnRlciIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBh
ID0gYXRvbWljLmxvYWRWYWx1ZSgpLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBiID0gdmFsdWUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IGNhc3RUb0ludChhIDwgYiA/IGEgOiBiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveChhKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHJlc3VsdCksIDEpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tl
ZE9yKGF0b21pY191aW50KiAke2FkZHJlc3NTcGFjZTF9LHVpbnQsdWludCogJHthZGRyZXNzU3Bh
Y2UyfSlgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbYXRvbWljLCB2YWx1ZSwgb3Jp
Z2luYWxWYWx1ZV0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0
b21pYy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBhdG9taWMgcG9p
bnRlciIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gYXRvbWljLmxvYWRW
YWx1ZSgpLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0g
dmFsdWUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3Vs
dCA9IGNhc3RUb1VpbnQoYSB8IGIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChv
cmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcmlnaW5hbFZhbHVlLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KGEpLCAxKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9taWMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3gocmVzdWx0KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEludGVybG9ja2VkT3IoYXRvbWljX2ludCogJHthZGRy
ZXNzU3BhY2UxfSxpbnQsaW50KiAke2FkZHJlc3NTcGFjZTJ9KWAsCi0gICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFthdG9taWMsIHZhbHVlLCBvcmlnaW5hbFZhbHVlXSwgbm9kZSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXRvbWljLmxvYWRWYWx1ZSgpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdp
bi5vcmlnaW5TdHJpbmcsICJOdWxsIGF0b21pYyBwb2ludGVyIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGEgPSBhdG9taWMubG9hZFZhbHVlKCkubG9hZFZhbHVlKCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSB2YWx1ZS5sb2FkVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gY2FzdFRvSW50KGEgfCBiKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveChhKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXRvbWljLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHJlc3VsdCksIDEpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBJ
bnRlcmxvY2tlZFhvcihhdG9taWNfdWludCogJHthZGRyZXNzU3BhY2UxfSx1aW50LHVpbnQqICR7
YWRkcmVzc1NwYWNlMn0pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW2F0b21pYywg
dmFsdWUsIG9yaWdpbmFsVmFsdWVdLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFhdG9taWMubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwg
YXRvbWljIHBvaW50ZXIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGF0
b21pYy5sb2FkVmFsdWUoKS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgYiA9IHZhbHVlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCByZXN1bHQgPSBjYXN0VG9VaW50KGEgXiBiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAob3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZS5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveChh
KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHJlc3VsdCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZFhvcihhdG9taWNf
aW50KiAke2FkZHJlc3NTcGFjZTF9LGludCxpbnQqICR7YWRkcmVzc1NwYWNlMn0pYCwKLSAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW2F0b21pYywgdmFsdWUsIG9yaWdpbmFsVmFsdWVdLCBu
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdG9taWMubG9hZFZhbHVl
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUoKS5sb2FkVmFs
dWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IHZhbHVlLmxvYWRWYWx1
ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBjYXN0VG9JbnQo
YSBeIGIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxv
YWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVl
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KGEpLCAxKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdG9taWMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3gocmVzdWx0KSwg
MSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKGF0b21pY191aW50KiAke2FkZHJl
c3NTcGFjZTF9LHVpbnQsdWludCx1aW50KiAke2FkZHJlc3NTcGFjZTJ9KWAsCi0gICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFthdG9taWMsIGNvbXBhcmVWYWx1ZSwgdmFsdWUsIG9yaWdpbmFs
VmFsdWVdLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdG9taWMu
bG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIi
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUo
KS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IGNvbXBh
cmVWYWx1ZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9
IHZhbHVlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhID09
IGIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21pYy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveChjKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG9yaWdpbmFsVmFsdWUubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9yaWdpbmFsVmFsdWUubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3goYSksIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZShhdG9taWNfaW50KiAke2FkZHJlc3NTcGFj
ZTF9LGludCxpbnQsaW50KiAke2FkZHJlc3NTcGFjZTJ9KWAsCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFthdG9taWMsIGNvbXBhcmVWYWx1ZSwgdmFsdWUsIG9yaWdpbmFsVmFsdWVdLCBu
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdG9taWMubG9hZFZhbHVl
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgYXRvbWljIHBvaW50ZXIiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGF0b21pYy5sb2FkVmFsdWUoKS5sb2FkVmFs
dWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IGNvbXBhcmVWYWx1ZS5s
b2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9IHZhbHVlLmxv
YWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhID09IGIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21pYy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveChjKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdpbmFs
VmFsdWUubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdp
bmFsVmFsdWUubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3goYSksIDEpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNoZWNrVW5kZWZpbmVkKG9yaWdpbiwgZXhw
bGFuYXRpb24sIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodmFsdWUgPT0gdW5k
ZWZpbmVkKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG9yaWdpbiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRp
b24sIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iob3JpZ2luLCAiVGV4dHVyZSBzdG9y
ZSBvdXQgb2YgYm91bmRzIik7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBib3hWZWN0
b3IoYSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgewot
ICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0
aCksIDApOwotICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsr
aSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
cmV0dXJuIEVQdHIuYm94KGEpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gdW5ib3hW
ZWN0b3IoYSwgbGVuZ3RoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIi
KSB7Ci0gICAgICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7Ci0g
ICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNo
KGEuZ2V0KGkpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7Ci0gICAgICAgIH0K
LQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAi
Y2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7Ci0gICAgICAgICAgICBm
b3IgKHZhciBsZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7Ci0gICAgICAg
ICAgICAgICAgbGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOwotICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRp
b24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAs
IDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCi0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dLCBub2RlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5l
ZChub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKLSAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSwgbm9kZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmlu
ZWQobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgxKSwg
MCwgMCwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmxvYWRWYWx1ZSgpKSkpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBhZGRyZXNzU3BhY2UxIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRl
dmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2Yg
WyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlw
TGV2ZWwsdWludCogJHthZGRyZXNzU3BhY2UxfSBXaWR0aCx1aW50KiAke2FkZHJlc3NTcGFjZTJ9
IE51bWJlck9mTGV2ZWxzKWAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10sIG5vZGUp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJl
LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1p
cElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3Jp
Z2luU3RyaW5nLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJl
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGgubG9hZFZh
bHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXJPZkxldmVscy5s
b2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1i
ZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCks
IDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEs
IGxvY2F0aW9uLmdldCgxKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShU
ZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0
KDEpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZz
ZXQubG9hZFZhbHVlKCksIDAsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCi0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dLCBub2RlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5l
ZChub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQgb2Zm
c2V0KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24s
IG9mZnNldF0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmxvYWRWYWx1ZSgpKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2Ux
IG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAi
LCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NT
cGFjZTMgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMURBcnJheTwke3R5
cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgs
dWludCogJHthZGRyZXNzU3BhY2UyfSBFbGVtZW50cyx1aW50KiAke2FkZHJlc3NTcGFjZTN9IE51
bWJlck9mTGV2ZWxzKWAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGVsZW1lbnRzLCBudW1iZXJP
ZkxldmVsc10sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVs
Q291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMubG9hZFZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVs
cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCi0g
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAotICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZh
bHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAotICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNl
dF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQyIEREWCxmbG9hdDIgRERZKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJh
eSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZz
ZXQpYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4
LmdldCgwKSwgZGR4LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwK
LSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBsb2RdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAs
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgbG9kLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwK
LSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0
YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
MCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgMCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Z2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIy
IiB8fCBsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDEpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAi
MyIgfHwgbGVuZ3RoID09ICI0IikgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
KWAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMikpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBd
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zm
c2V0KWAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9yaWdp
blN0cmluZywgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDApKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBl
fSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdLCBub2RlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZChu
b2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRl
eHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBs
b2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQu
Z2V0KDApKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UxIG9mIFsidGhyZWFk
IiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0p
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTMgb2YgWyJ0
aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sdWlu
dCBNaXBMZXZlbCx1aW50KiAke2FkZHJlc3NTcGFjZTF9IFdpZHRoLHVpbnQqICR7YWRkcmVzc1Nw
YWNlMn0gSGVpZ2h0LHVpbnQqICR7YWRkcmVzc1NwYWNlM30gTnVtYmVyT2ZMZXZlbHMpYCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10sIG5vZGUpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUu
b3JpZ2luLm9yaWdpblN0cmluZywgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwg
b2YgdGV4dHVyZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRM
ZXZlbChtaXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0IEJpYXMpYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNl
dC5nZXQoMSksIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBk
ZHkuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4Lmdl
dCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2Rk
eS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAotICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCks
IHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIg
b2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRl
bHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgMCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGggPT0g
IjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4o
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMSkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMSkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgMikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0
KDIpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5
ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCAyKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0g
IjQiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0
aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCA0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGlu
dDQgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChs
b2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCkpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSwgbm9kZSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQo
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRp
b24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3Bh
Y2UxIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3Jv
dXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJl
c3NTcGFjZTMgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2U0IG9mIFsidGhyZWFk
IiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9Pix1aW50IE1pcExldmVsLHVpbnQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgsdWludCogJHth
ZGRyZXNzU3BhY2UyfSBIZWlnaHQsdWludCogJHthZGRyZXNzU3BhY2UzfSBFbGVtZW50cyx1aW50
KiAke2FkZHJlc3NTcGFjZTR9IE51bWJlck9mTGV2ZWxzKWAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxl
dmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdLCBub2RlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUmVhZGluZyBmcm9tIG5vbmV4
aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQubG9hZFZhbHVlKCkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50
cy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNv
dW50KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMiksIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVy
ZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0
KWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQo
MiksIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIG9mZnNldC5nZXQoMildOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50
NCBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uXSwgbm9kZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IoY2hlY2tVbmRlZmluZWQobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSBy
ZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAs
IGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgwKSkpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xl
bmd0aH0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSwgbm9kZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQobm9kZS5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24u
Z2V0KDIpICsgb2Zmc2V0LmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwg
bG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQg
YWRkcmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewot
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFsidGhyZWFkIiwg
InRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBhZGRyZXNzU3BhY2UzIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSJd
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlNCBv
ZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogJHthZGRyZXNzU3BhY2UxfSBXaWR0aCx1aW50
KiAke2FkZHJlc3NTcGFjZTJ9IEhlaWdodCx1aW50KiAke2FkZHJlc3NTcGFjZTN9IERlcHRoLHVp
bnQqICR7YWRkcmVzc1NwYWNlNH0gTnVtYmVyT2ZMZXZlbHMpYCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10sIG5vZGUpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJSZWFkaW5nIGZyb20gbm9uZXhp
c3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcHRoLmxv
YWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoQXRMZXZlbCht
aXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlh
cyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBCaWFzKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNh
bXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIGRkeC5n
ZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHku
Z2V0KDApLCBkZHkuZ2V0KDEpLCBkZHkuZ2V0KDIpXTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUxldmVsKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwg
MSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRo
ZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3Ro
ID09ICI0IikgewotICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAotICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCAxKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0g
IjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3Vi
ZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYWRk
cmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFsidGhyZWFkIiwgInRo
cmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxl
dCBhZGRyZXNzU3BhY2UzIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiAke2FkZHJlc3NTcGFjZTF9
IFdpZHRoLHVpbnQqICR7YWRkcmVzc1NwYWNlMn0gSGVpZ2h0LHVpbnQqICR7YWRkcmVzc1NwYWNl
M30gTnVtYmVyT2ZMZXZlbHMpYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1i
ZXJPZkxldmVsc10sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4LmxheWVyQ291bnQg
IT0gNikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291
bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgp
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGZvciAobGV0
IGFkZHJlc3NTcGFjZSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewot
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogJHthZGRyZXNzU3BhY2V9IFdpZHRoKWAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogJHthZGRyZXNzU3BhY2V9IFdp
ZHRoKWAsCi0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGgubG9hZFZh
bHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LGludCBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSwgbm9kZSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQobm9kZS5vcmlnaW4ub3Jp
Z2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1
ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpKSkpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgU3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1
aW50IGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
dmFsdWUsIGxvY2F0aW9uXSwgbm9kZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrRmFsc2Uobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAw
LCBsb2NhdGlvbi5sb2FkVmFsdWUoKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAg
ICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UxIG9mIFsidGhyZWFkIiwgInRocmVhZGdy
b3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NT
cGFjZTIgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHts
ZW5ndGh9Pix1aW50KiAke2FkZHJlc3NTcGFjZTF9IFdpZHRoLHVpbnQqICR7YWRkcmVzc1NwYWNl
Mn0gRWxlbWVudHMpYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChlbGVtZW50cy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGF5ZXJDb3VudCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqICR7
YWRkcmVzc1NwYWNlMX0gV2lkdGgsdWludCogJHthZGRyZXNzU3BhY2UyfSBFbGVtZW50cylgLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoLCBlbGVtZW50c10pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53
aWR0aCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1l
bnRzLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwg
MSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LGludDIgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbl0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0
b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1
aW50MiBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHZhbHVlLCBsb2NhdGlvbl0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja0ZhbHNlKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRleHR1cmUgd3JpdGUgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24u
Z2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5n
dGgpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotCi0gICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMSBvZiBbInRocmVhZCIs
ICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxl
dCBhZGRyZXNzU3BhY2UyIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlw
ZX0ke2xlbmd0aH0+LHVpbnQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgsdWludCogJHthZGRyZXNz
U3BhY2UyfSBIZWlnaHQpYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqICR7YWRkcmVzc1NwYWNl
MX0gV2lkdGgsZmxvYXQqICR7YWRkcmVzc1NwYWNlMn0gSGVpZ2h0KWAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0p
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJl
LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdp
ZHRoLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAotICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSwgbm9kZSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQo
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgx
KSwgbG9jYXRpb24uZ2V0KDApKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0sIG5vZGUpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKG5vZGUub3JpZ2luLm9yaWdpblN0cmlu
ZywgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0
RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCks
IHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgZm9yIChsZXQgYWRk
cmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFsidGhyZWFkIiwgInRo
cmVhZGdyb3VwIiwgImRldmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxl
dCBhZGRyZXNzU3BhY2UzIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSJdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiAke2FkZHJlc3NTcGFjZTF9IFdpZHRoLHVp
bnQqICR7YWRkcmVzc1NwYWNlMn0gSGVpZ2h0LHVpbnQqICR7YWRkcmVzc1NwYWNlM30gRWxlbWVu
dHMpYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFs
dWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMubG9hZFZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgs
ZmxvYXQqICR7YWRkcmVzc1NwYWNlMn0gSGVpZ2h0LGZsb2F0KiAke2FkZHJlc3NTcGFjZTN9IEVs
ZW1lbnRzKWAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGgubG9h
ZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQubG9hZFZhbHVlKCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxvYWRWYWx1ZSgpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0sIG5vZGUpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCi0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSwgbm9kZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2Uobm9kZS5vcmlnaW4ub3Jp
Z2luU3RyaW5nLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAg
ICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTEgb2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3Jv
dXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1Nw
YWNlMiBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMyBvZiBbInRocmVhZCIsICJ0aHJl
YWRncm91cCIsICJkZXZpY2UiXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiAke2FkZHJl
c3NTcGFjZTF9IFdpZHRoLHVpbnQqICR7YWRkcmVzc1NwYWNlMn0gSGVpZ2h0LHVpbnQqICR7YWRk
cmVzc1NwYWNlM30gRGVwdGgpYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3
aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2Fk
VmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVp
Z2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVwdGgubG9hZFZhbHVlKCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aCksIDEpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1
cmUzRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogJHthZGRyZXNzU3BhY2UxfSBXaWR0aCxmbG9h
dCogJHthZGRyZXNzU3BhY2UyfSBIZWlnaHQsZmxvYXQqICR7YWRkcmVzc1NwYWNlM30gRGVwdGgp
YCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZGVwdGgubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5kZXB0aCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQz
IGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihjaGVja1VuZGVmaW5lZChub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwg
MCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIFN0b3JlKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0s
dWludDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCB2YWx1ZSwgbG9jYXRpb25dLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hlY2tGYWxzZShub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUZXh0dXJlIHdyaXRlIG91dCBv
ZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxv
Y2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVj
dG9yKHZhbHVlLCBsZW5ndGgpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZm9y
IChsZXQgdHlwZSBvZiBbImhhbGYiLCAiZmxvYXQiXSkgewotICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZz
ZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwK
LSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBh
cmVWYWx1ZV0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxv
YWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRd
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNv
bXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKLSAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1
ZV0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDAsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOwot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBM
ZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
JHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCwgY29tcGFyZVZhbHVlLmxv
YWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24sZmxvYXQgQmlhcylgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0
YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJp
YXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZs
b2F0MiBERFgsZmxvYXQyIEREWSlgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgw
KSwgZGR4LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFy
cmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50
MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwg
ZGR4LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBb
ZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2
ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQg
TE9EKWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBsb2RdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkp
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVM
ZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBMT0QsaW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0
LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0
aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBh
cmVfdmFsdWUpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29t
cGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAot
ICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Z2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFs
dWUpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGNvbXBhcmVWYWx1ZV0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAotICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlLCBvZmZzZXRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQu
Z2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0
aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LGludDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2Nh
dGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0sIG5vZGUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQobm9kZS5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24u
Z2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkp
KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJk
ZXZpY2UiXSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0
aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgYWRkcmVzc1NwYWNlMyBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZp
Y2UiXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgs
dWludCogJHthZGRyZXNzU3BhY2UyfSBIZWlnaHQsdWludCogJHthZGRyZXNzU3BhY2UzfSBOdW1i
ZXJPZkxldmVscylgLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdLCBu
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4
dHVyZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxv
YWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwg
MSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0LmxvYWRW
YWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAx
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXJPZkxldmVs
cy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3Vu
dCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBl
fSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlg
LAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBjb21wYXJl
VmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZz
ZXQpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9
IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGJpYXNdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIp
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAotICAgICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0
KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAotICAgICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAw
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBk
ZHkuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAs
Ci0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgs
IGRkeSwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgw
KSwgZGR4LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
TGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBMT0QpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGxvZF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKLSAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQu
Z2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBs
b2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9j
YXRpb24uZ2V0KDIpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Z2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgMCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29t
cGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRl
bHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29t
cGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCi0gICAg
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFs
dWVdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFy
ZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0
KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBj
b21wYXJlVmFsdWUsIG9mZnNldF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOwotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCks
IDApKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9h
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKLSAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dLCBub2RlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKG5vZGUub3JpZ2luLm9yaWdpblN0
cmluZywgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRp
b24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgw
KSkpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIs
ICJkZXZpY2UiXSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2Yg
WyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMyBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJk
ZXZpY2UiXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNl
NCBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiAke2FkZHJlc3NTcGFjZTF9IFdpZHRoLHVpbnQqICR7
YWRkcmVzc1NwYWNlMn0gSGVpZ2h0LHVpbnQqICR7YWRkcmVzc1NwYWNlM30gRWxlbWVudHMsdWlu
dCogJHthZGRyZXNzU3BhY2U0fSBOdW1iZXJPZkxldmVscylgLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIG1pcGxldmVsLCB3
aWR0aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdLCBub2RlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZh
bHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElE
ID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdp
bi5vcmlnaW5TdHJpbmcsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRl
eHR1cmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lk
dGgubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGhlaWdodC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRB
dExldmVsKG1pcElEKSksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChlbGVtZW50cy5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxheWVyQ291bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCi0gICAgICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVl
LmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCi0gICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDAsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUo
KSkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgQmlhcylgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhc10pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiks
IDEsIDBdOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKLSAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgZGR4Lmdl
dCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgw
KSwgZGR5LmdldCgxKSwgZGR5LmdldCgyKV07Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5
LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKLSAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOwotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCi0gICAgICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKLSAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJl
X3ZhbHVlKWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWVdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpLCAxLCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0
aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVl
KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBj
b21wYXJlVmFsdWVdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTEg
b2YgWyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFsidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRl
dmljZSJdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTMgb2Yg
WyJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Pix1aW50IE1pcExl
dmVsLHVpbnQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgsdWludCogJHthZGRyZXNzU3BhY2UyfSBI
ZWlnaHQsdWludCogJHthZGRyZXNzU3BhY2UzfSBOdW1iZXJPZkxldmVscylgLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXll
ckNvdW50ICE9IDYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3Vu
dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGhBdExldmVsKG1pcElEKSksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdo
dEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChs
ZXQgYWRkcmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkg
ewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0aHJlYWQiLCAi
dGhyZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sdWludCogJHthZGRyZXNzU3BhY2UxfSBXaWR0aCx1
aW50KiAke2FkZHJlc3NTcGFjZTJ9IEhlaWdodClgLAotICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sZmxvYXQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgsZmxvYXQqICR7YWRkcmVzc1NwYWNlMn0g
SGVpZ2h0KWAsCi0gICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCB3aWR0aCwgaGVpZ2h0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQubG9hZFZhbHVlKCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQyIGxv
Y2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSwgbm9k
ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVm
aW5lZChub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24u
Z2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sJHt0eXBlfSx1
aW50MiBsb2NhdGlvbilgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwg
bG9jYXRpb25dLCBub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKG5v
ZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRl
eHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCAiIikpKTsKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZm9yIChsZXQg
YWRkcmVzc1NwYWNlMSBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewot
ICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgWyJ0aHJlYWQiLCAidGhy
ZWFkZ3JvdXAiLCAiZGV2aWNlIl0pIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRk
cmVzc1NwYWNlMyBvZiBbInRocmVhZCIsICJ0aHJlYWRncm91cCIsICJkZXZpY2UiXSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sdWludCogJHthZGRyZXNzU3BhY2UxfSBXaWR0aCx1aW50KiAke2FkZHJlc3NTcGFj
ZTJ9IEhlaWdodCx1aW50KiAke2FkZHJlc3NTcGFjZTN9IEVsZW1lbnRzKWAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWln
aHQsIGVsZW1lbnRzXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0
LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMubG9hZFZhbHVlKCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sZmxvYXQqICR7YWRkcmVzc1NwYWNlMX0gV2lkdGgsZmxvYXQqICR7YWRkcmVz
c1NwYWNlMn0gSGVpZ2h0LGZsb2F0KiAke2FkZHJlc3NTcGFjZTN9IEVsZW1lbnRzKWAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRo
LCBoZWlnaHQsIGVsZW1lbnRzXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LndpZHRoKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
aGVpZ2h0LmxvYWRWYWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMubG9hZFZh
bHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlv
bilgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0sIG5vZGUpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQo
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0sIG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrRmFsc2Uobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGV4dHVyZSB3cml0ZSBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlv
bi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZl
Y3Rvcih2YWx1ZSwgIiIpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGFkZCh0aGluZykKLSAgICB7Ci0gICAgICAg
IGxldCBpbnRyaW5zaWMgPSB0aGlzLl9tYXAuZ2V0KHRoaW5nLnRvU3RyaW5nKCkpOwotICAgICAg
ICBpZiAoIWludHJpbnNpYykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaW5n
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJVbnJlY29nbml6ZWQgaW50cmluc2ljOiAiICsgdGhpbmcp
OwotICAgICAgICBpbnRyaW5zaWModGhpbmcpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF5b3V0QnVmZmVycy5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0xheW91dEJ1ZmZlcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM3NzE4ZDQyZWM4Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9MYXlvdXRCdWZmZXJzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0
cmljdCI7Ci0KLWZ1bmN0aW9uIGxheW91dEJ1ZmZlcnMocHJvZ3JhbSkKLXsKLSAgICBmb3IgKGxl
dCBmdW5jTGlzdCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewotICAgICAgICBmb3Ig
KGxldCBmdW5jIG9mIGZ1bmNMaXN0KSB7Ci0gICAgICAgICAgICBpZiAoZnVuYy5pc05hdGl2ZSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGZ1bmMudmlzaXQobmV3IEVC
dWZmZXJCdWlsZGVyKCkpOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGV4ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9MZXhlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNhNzkzY2Ri
ZTIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xleGVy
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTGV4ZXIgewot
ICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCkKLSAgICB7Ci0gICAgICAgIGlmICghaXNPcmlnaW5LaW5kKG9yaWdpbktpbmQpKQotICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3JpZ2luIGtpbmQ6ICIgKyBvcmlnaW5LaW5kKTsK
LSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9vcmlnaW5LaW5k
ID0gb3JpZ2luS2luZDsKLSAgICAgICAgdGhpcy5fbGluZU51bWJlck9mZnNldCA9IGxpbmVOdW1i
ZXJPZmZzZXQ7Ci0gICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAgICB0aGlzLl9pbmRl
eCA9IDA7Ci0gICAgICAgIHRoaXMuX3N0YWNrID0gW107Ci0KLSAgICAgICAgdGhpcy5fbGluZU51
bWJlcnMgPSBbXTsKLSAgICAgICAgbGV0IGxpbmVOdW1iZXIgPSAxOwotICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHRoaXMuX3RleHQubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHRoaXMu
X2xpbmVOdW1iZXJzLnB1c2gobGluZU51bWJlcik7Ci0gICAgICAgICAgICBpZiAodGhpcy5fdGV4
dFtpXSA9PSAnXG4nKQotICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjsKLSAgICAgICAgfQot
ICAgIH0KLSAgICAKLSAgICBnZXQgbGluZU51bWJlcigpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5saW5lTnVtYmVyRm9ySW5kZXgodGhpcy5faW5kZXgpOwotICAgIH0KLSAgICAKLSAgICBn
ZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgCi0gICAgZ2V0IG9yaWdp
blN0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fb3JpZ2luICsgIjoiICsgKHRo
aXMubGluZU51bWJlciArIDEpOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luS2luZCgpIHsg
cmV0dXJuIHRoaXMuX29yaWdpbktpbmQ7IH0KLSAgICAKLSAgICBsaW5lTnVtYmVyRm9ySW5kZXgo
aW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGluZU51bWJlcnNbaW5kZXhdICsg
dGhpcy5fbGluZU51bWJlck9mZnNldDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHN0YXRlKCkgeyBy
ZXR1cm4ge2luZGV4OiB0aGlzLl9pbmRleCwgc3RhY2s6IHRoaXMuX3N0YWNrLmNvbmNhdCgpfTsg
fQotICAgIHNldCBzdGF0ZSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2luZGV4ID0gdmFs
dWUuaW5kZXg7Ci0gICAgICAgIHRoaXMuX3N0YWNrID0gdmFsdWUuc3RhY2s7Ci0gICAgfQotICAg
IAotICAgIHN0YXRpYyBfdGV4dElzSWRlbnRpZmllckltcGwodGV4dCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiAvXlteXGRcV11cdyovLnRlc3QodGV4dCk7Ci0gICAgfQotICAgIAotICAgIHN0YXRp
YyB0ZXh0SXNJZGVudGlmaWVyKHRleHQpCi0gICAgewotICAgICAgICByZXR1cm4gTGV4ZXIuX3Rl
eHRJc0lkZW50aWZpZXJJbXBsKHRleHQpICYmICFSZWdFeHAucmlnaHRDb250ZXh0Lmxlbmd0aDsK
LSAgICB9Ci0gICAgCi0gICAgbmV4dCgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc3RhY2su
bGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YWNrLnBvcCgpOwotICAgICAgICAK
LSAgICAgICAgaWYgKHRoaXMuX2luZGV4ID49IHRoaXMuX3RleHQubGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIAotICAgICAgICBjb25zdCBpc0NDb21tZW50QmVnaW4g
PSAvXC9cKi87Ci0gICAgICAgIGNvbnN0IGlzQ1BsdXNQbHVzQ29tbWVudEJlZ2luID0gL1wvXC8v
OwotICAgICAgICAKLSAgICAgICAgbGV0IHJlc3VsdCA9IChraW5kKSA9PiB7Ci0gICAgICAgICAg
ICBsZXQgdGV4dCA9IFJlZ0V4cC5sYXN0TWF0Y2g7Ci0gICAgICAgICAgICBsZXQgdG9rZW4gPSBu
ZXcgTGV4ZXJUb2tlbih0aGlzLCB0aGlzLl9pbmRleCwga2luZCwgdGV4dCk7Ci0gICAgICAgICAg
ICB0aGlzLl9pbmRleCArPSB0ZXh0Lmxlbmd0aDsKLSAgICAgICAgICAgIHJldHVybiB0b2tlbjsK
LSAgICAgICAgfTsKLQotICAgICAgICBsZXQgcmVsZXZhbnRUZXh0OwotICAgICAgICBmb3IgKDs7
KSB7Ci0gICAgICAgICAgICByZWxldmFudFRleHQgPSB0aGlzLl90ZXh0LnN1YnN0cmluZyh0aGlz
Ll9pbmRleCk7Ci0gICAgICAgICAgICBpZiAoL15ccysvLnRlc3QocmVsZXZhbnRUZXh0KSkgewot
ICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ICs9IFJlZ0V4cC5sYXN0TWF0Y2gubGVuZ3RoOwot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KC9eXC9cKi8udGVzdChyZWxldmFudFRleHQpKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGVuZElu
ZGV4ID0gcmVsZXZhbnRUZXh0LnNlYXJjaCgvXCpcLy8pOwotICAgICAgICAgICAgICAgIGlmIChl
bmRJbmRleCA8IDApCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFpbCgiVW50ZXJtaW5hdGVk
IGNvbW1lbnQiKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9pbmRleCArPSBlbmRJbmRleCArIDI7
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAoL15cL1wvLiovLnRlc3QocmVsZXZhbnRUZXh0KSkgewotICAgICAgICAgICAgICAgIHRoaXMu
X2luZGV4ICs9IFJlZ0V4cC5sYXN0TWF0Y2gubGVuZ3RoOwotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIGlmICh0aGlzLl9pbmRleCA+PSB0aGlzLl90ZXh0Lmxlbmd0aCkKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgaGFuZGxl
IGV4cC1mb3JtIGxpdGVyYWxzIGxpa2UgMWUxLgotICAgICAgICBpZiAoL14oKFswLTldKlwuWzAt
OV0rW2ZkXT8pfChbMC05XStcLlswLTldKltmZF0/KSkvLnRlc3QocmVsZXZhbnRUZXh0KSkKLSAg
ICAgICAgICAgIHJldHVybiByZXN1bHQoImZsb2F0TGl0ZXJhbCIpOwotICAgICAgICAKLSAgICAg
ICAgLy8gRklYTUU6IE1ha2UgdGhpcyBkbyBVbmljb2RlLgotICAgICAgICBpZiAoTGV4ZXIuX3Rl
eHRJc0lkZW50aWZpZXJJbXBsKHJlbGV2YW50VGV4dCkpIHsKLSAgICAgICAgICAgIGlmICgvXihz
dHJ1Y3R8dHlwZWRlZnxpZnxlbHNlfGVudW18Y29udGludWV8YnJlYWt8c3dpdGNofGNhc2V8ZGVm
YXVsdHxmb3J8d2hpbGV8ZG98cmV0dXJufGNvbnN0YW50fGRldmljZXx0aHJlYWRncm91cHx0aHJl
YWR8b3BlcmF0b3J8bnVsbHx0cnVlfGZhbHNlKSQvLnRlc3QoUmVnRXhwLmxhc3RNYXRjaCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCgia2V5d29yZCIpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAodGhpcy5fb3JpZ2luS2luZCA9PSAibmF0aXZlIiAmJiAvXihuYXRpdmV8
cmVzdHJpY3RlZCkkLy50ZXN0KFJlZ0V4cC5sYXN0TWF0Y2gpKQotICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQoImtleXdvcmQiKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdCgiaWRlbnRpZmllciIpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKC9eMHhbMC05
YS1mQS1GXSt1Ly50ZXN0KHJlbGV2YW50VGV4dCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0
KCJ1aW50SGV4TGl0ZXJhbCIpOwotCi0gICAgICAgIGlmICgvXjB4WzAtOWEtZkEtRl0rLy50ZXN0
KHJlbGV2YW50VGV4dCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0KCJpbnRIZXhMaXRlcmFs
Iik7Ci0KLSAgICAgICAgaWYgKC9eWzAtOV0rdS8udGVzdChyZWxldmFudFRleHQpKQotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdCgidWludExpdGVyYWwiKTsKLQotICAgICAgICBpZiAoL15bMC05
XSsvLnRlc3QocmVsZXZhbnRUZXh0KSkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQoImludExp
dGVyYWwiKTsKLSAgICAgICAgCi0gICAgICAgIGlmICgvXjw8fD4+fC0+fD49fDw9fD09fCE9fFwr
PXwtPXxcKj18XC89fCU9fFxePXxcfD18Jj18XCtcK3wtLXwmJnxcfFx8fChbe30oKVxbXF0/Oj0r
KlwvLC4lIX5eJnw8PkA7LV0pLy50ZXN0KHJlbGV2YW50VGV4dCkpCi0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0KCJwdW5jdHVhdGlvbiIpOwotICAgICAgICAKLSAgICAgICAgbGV0IHJlbWFpbmlu
ZyA9IHJlbGV2YW50VGV4dC5zdWJzdHJpbmcoMCwgMjApLnNwbGl0KC9ccy8pWzBdOwotICAgICAg
ICBpZiAoIXJlbWFpbmluZy5sZW5ndGgpCi0gICAgICAgICAgICByZW1haW5pbmcgPSByZWxldmFu
dFRleHQuc3Vic3RyaW5nKDAsIDIwKTsKLSAgICAgICAgdGhpcy5mYWlsKCJVbnJlY29nbml6ZWQg
dG9rZW4gYmVnaW5uaW5nIHdpdGg6ICIgKyByZW1haW5pbmcpOwotICAgIH0KLSAgICAKLSAgICBw
dXNoKHRva2VuKQotICAgIHsKLSAgICAgICAgdGhpcy5fc3RhY2sucHVzaCh0b2tlbik7Ci0gICAg
fQotICAgIAotICAgIHBlZWsoKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMubmV4
dCgpOwotICAgICAgICB0aGlzLnB1c2gocmVzdWx0KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9Ci0gICAgCi0gICAgZmFpbChlcnJvcikKLSAgICB7Ci0gICAgICAgIHRocm93IG5ldyBX
TGV4aWNhbEVycm9yKHRoaXMub3JpZ2luU3RyaW5nLCBlcnJvcik7Ci0gICAgfQotfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGV4ZXJUb2tlbi5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xleGVyVG9rZW4uanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDE0NDAzMTJjZGRkLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9MZXhlclRva2VuLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBz
dHJpY3QiOwotCi1jbGFzcyBMZXhlclRva2VuIHsKLSAgICBjb25zdHJ1Y3RvcihsZXhlciwgaW5k
ZXgsIGtpbmQsIHRleHQpCi0gICAgewotICAgICAgICB0aGlzLl9sZXhlciA9IGxleGVyOwotICAg
ICAgICB0aGlzLl9pbmRleCA9IGluZGV4OwotICAgICAgICB0aGlzLl9raW5kID0ga2luZDsKLSAg
ICAgICAgdGhpcy5fdGV4dCA9IHRleHQ7Ci0gICAgfQotICAgIAotICAgIGdldCBsZXhlcigpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGV4ZXI7Ci0gICAgfQotICAgIAotICAgIGdldCBr
aW5kKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9raW5kOwotICAgIH0KLSAgICAKLSAg
ICBnZXQgdGV4dCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdGV4dDsKLSAgICB9Ci0g
ICAgCi0gICAgZ2V0IG9yaWdpbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5sZXhlci5v
cmlnaW47Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW5LaW5kKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLmxleGVyLm9yaWdpbktpbmQ7Ci0gICAgfQotICAgIAotICAgIGdldCBpbmRl
eCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5faW5kZXg7Ci0gICAgfQotICAgIAotICAg
IGdldCBsaW5lTnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9sZXhlci5saW5l
TnVtYmVyRm9ySW5kZXgodGhpcy5faW5kZXgpOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2lu
U3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm9yaWdpbiArICI6IiArIHRoaXMu
bGluZU51bWJlcjsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuICJMZXhlclRva2VuKCIgKyB0aGlzLmtpbmQgKyAiLCAiICsgdGhpcy50ZXh0ICsgIiwg
IiArIHRoaXMubGluZU51bWJlciArICIpIjsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MaXRlcmFsVHlwZUNoZWNrZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9MaXRlcmFsVHlwZUNoZWNrZXIuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDkwZTM0MTdkMjUzLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9MaXRlcmFsVHlwZUNoZWNrZXIuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLS8vIFRoaXMgcGhhc2UgaXMgZm9yIGFzc2VydGluZyB0aGF0
IHRoZSBjb21waWxlciBkaWRuJ3QgdmlvbGF0ZSBpdHMgaW50ZXJuYWwgY29uc3RyYWludHMsIHNv
IGl0Ci0vLyB0aHJvd3MgRXJyb3Igbm90IFdUeXBlRXJyb3IuCi0vLwotLy8gVGhlIHJlYXNvbiB0
aGlzIHBoYXNlIGV4aXN0cyBpcyB0aGF0IGluIGEgY29tcGlsZXIsIHdlIG5lZWQgbGl0ZXJhbHMg
bGlrZSBudWxsIGFuZCAwIHRvIGtub3cgdGhlaXIKLS8vIGV4YWN0IHR5cGUgc28gdGhhdCB0aGV5
IGtub3cgaG93IG1hbnkgYnl0ZXMgdGhleSBvY2N1cHkgYW5kIGhvdyB0byBzZXQgdGhlaXIgZGVm
YXVsdCB2YWx1ZS4gRm9yCi0vLyBleGFtcGxlLCBudWxsIGZvciBeIHdpbGwgcHJvYmFibHkgdGFr
ZSBvbmUgcG9pbnRlci1zaXplZCB3b3JkIHdoaWxlIG51bGwgZm9yIFtdIHdpbGwgdGFrZSB0d28g
d29yZHMKLS8vIChvbmUgZm9yIGJhc2UgYW5kIG9uZSBmb3IgbGVuZ3RoKS4gVGhlIHR5cGUgY2hl
Y2tlciBpcyBlcXVpcHBlZCB0byBpbmZlciB0aGlzLCBhbmQgdGhpcyBwaGFzZSdzIGpvYgotLy8g
aXMganVzdCB0byB2ZXJpZnkgdGhhdCB0aGUgdHlwZSBjaGVja2VyIHN1Y2NlZWRlZC4KLWNsYXNz
IExpdGVyYWxUeXBlQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewotICAgIHZpc2l0TnVsbFR5cGUo
bm9kZSkKLSAgICB7Ci0gICAgICAgIGlmICghbm9kZS50eXBlKQotICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJOdWxsIGF0ICIgKyBub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiIGRvZXMg
bm90IGhhdmUgdHlwZSIpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlw
ZShub2RlKQotICAgIHsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3Iobm9kZSArICIgYXQgIiArIG5vZGUub3JpZ2luLm9yaWdpblN0cmluZyArICIg
ZG9lcyBub3QgaGF2ZSB0eXBlIik7Ci0gICAgICAgIGlmICghbm9kZS50eXBlLnR5cGUuY2FuUmVw
cmVzZW50KG5vZGUudmFsdWUpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25vZGUu
dmFsdWV9IGF0ICR7bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nfSBjYW5ub3QgYmUgcmVwcmVzZW50
ZWQgYnkgJHtub2RlLnR5cGV9YCk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Mb2dpY2FsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0xvZ2ljYWxFeHByZXNzaW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5MzdkZDU0MDRhNS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTG9naWNhbEV4cHJlc3Npb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIExvZ2ljYWxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lv
biB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCB0ZXh0LCBsZWZ0LCByaWdodCkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAg
ICB0aGlzLl9sZWZ0ID0gbGVmdDsKLSAgICAgICAgdGhpcy5fcmlnaHQgPSByaWdodDsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IHRleHQoKSB7IHJldHVybiB0aGlzLl90ZXh0OyB9Ci0gICAgZ2V0IGxl
ZnQoKSB7IHJldHVybiB0aGlzLl9sZWZ0OyB9Ci0gICAgZ2V0IHJpZ2h0KCkgeyByZXR1cm4gdGhp
cy5fcmlnaHQ7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4g
IigiICsgdGhpcy5sZWZ0ICsgIiAiICsgdGhpcy50ZXh0ICsgIiAiICsgdGhpcy5yaWdodCArICIp
IjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0xvZ2ljYWxOb3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Mb2dpY2FsTm90
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTBhNTRjODBmMi4uMDAwMDAwMDAw
MDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTG9naWNhbE5vdC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTG9naWNhbE5vdCBleHRlbmRz
IEV4cHJlc3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgb3BlcmFuZCkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRoaXMuX29wZXJhbmQgPSBvcGVyYW5kOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgb3BlcmFuZCgpIHsgcmV0dXJuIHRoaXMuX29wZXJhbmQ7IH0K
LSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gIiEoIiArIHRoaXMu
b3BlcmFuZCArICIpIjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0xvb3BDaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTG9vcENoZWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4MzU0NWEx
Y2E2Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Mb29w
Q2hlY2tlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTG9v
cENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBjb25zdHJ1Y3RvcigpCi0gICAgewotICAg
ICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9sb29wRGVwdGggPSAwOwotICAgICAgICB0aGlz
Ll9zd2l0Y2hEZXB0aCA9IDA7Ci0gICAgfQotCi0gICAgdmlzaXRGdW5jRGVmKG5vZGUpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5fbG9vcERlcHRoICE9IDApCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJMb29wQ2hlY2tlciBkb2Vz
IG5vdCB1bmRlcnN0YW5kIG5lc3RlZCBmdW5jdGlvbnMuIik7Ci0gICAgICAgIHN1cGVyLnZpc2l0
RnVuY0RlZihub2RlKTsKLSAgICB9Ci0KLSAgICB2aXNpdFdoaWxlTG9vcChub2RlKQotICAgIHsK
LSAgICAgICAgbm9kZS5jb25kaXRpb25hbC52aXNpdCh0aGlzKTsKLSAgICAgICAgKyt0aGlzLl9s
b29wRGVwdGg7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKHRo
aXMuX2xvb3BEZXB0aCA9PSAwKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVGhlIG51bWJlciBvZiBuZXN0ZWQgbG9vcHMgaXMgbmVn
YXRpdmUhIik7Ci0gICAgICAgIC0tdGhpcy5fbG9vcERlcHRoOwotICAgIH0KLQotICAgIHZpc2l0
RG9XaGlsZUxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgICsrdGhpcy5fbG9vcERlcHRoOwotICAg
ICAgICBub2RlLmJvZHkudmlzaXQodGhpcyk7Ci0gICAgICAgIGlmICh0aGlzLl9sb29wRGVwdGgg
PT0gMCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdp
blN0cmluZywgIlRoZSBudW1iZXIgb2YgbmVzdGVkIGxvb3BzIGlzIG5lZ2F0aXZlISIpOwotICAg
ICAgICAtLXRoaXMuX2xvb3BEZXB0aDsKLSAgICAgICAgbm9kZS5jb25kaXRpb25hbC52aXNpdCh0
aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNpdEZvckxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgIGlm
IChub2RlLmluaXRpYWxpemF0aW9uKQotICAgICAgICAgICAgbm9kZS5pbml0aWFsaXphdGlvbi52
aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKG5vZGUuY29uZGl0aW9uKQotICAgICAgICAgICAgbm9k
ZS5jb25kaXRpb24udmlzaXQodGhpcyk7Ci0gICAgICAgIGlmIChub2RlLmluY3JlbWVudCkKLSAg
ICAgICAgICAgIG5vZGUuaW5jcmVtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICArK3RoaXMuX2xv
b3BEZXB0aDsKLSAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpOwotICAgICAgICBpZiAodGhp
cy5fbG9vcERlcHRoID09IDApCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2Rl
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUaGUgbnVtYmVyIG9mIG5lc3RlZCBsb29wcyBpcyBuZWdh
dGl2ZSEiKTsKLSAgICAgICAgLS10aGlzLl9sb29wRGVwdGg7Ci0gICAgfQotICAgIAotICAgIHZp
c2l0U3dpdGNoU3RhdGVtZW50KG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnZhbHVlLnZpc2l0
KHRoaXMpOwotICAgICAgICB0aGlzLl9zd2l0Y2hEZXB0aCsrOwotICAgICAgICBmb3IgKGxldCBz
d2l0Y2hDYXNlIG9mIG5vZGUuc3dpdGNoQ2FzZXMpCi0gICAgICAgICAgICBzd2l0Y2hDYXNlLnZp
c2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9zd2l0Y2hEZXB0aC0tOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdEJyZWFrKG5vZGUpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fbG9vcERlcHRoID09
IDAgJiYgdGhpcy5fc3dpdGNoRGVwdGggPT0gMCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlw
ZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkJyZWFrIHN0YXRlbWVudCB3aXRob3V0
IGVuY2xvc2luZyBsb29wIG9yIHN3aXRjaCEiKTsKLSAgICAgICAgc3VwZXIudmlzaXRCcmVhayhu
b2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb250aW51ZShub2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX2xvb3BEZXB0aCA9PSAwKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBl
RXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ29udGludWUgc3RhdGVtZW50IHdpdGhv
dXQgZW5jbG9zaW5nIGxvb3AhIik7Ci0gICAgICAgIHN1cGVyLnZpc2l0Q29udGludWUobm9kZSk7
Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWFr
ZUFycmF5UmVmRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01h
a2VBcnJheVJlZkV4cHJlc3Npb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZl
YjZmMjdkMjZjLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBNYWtlQXJyYXlSZWZFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBsVmFsdWUpCi0gICAgewotICAgICAgICBzdXBlcihv
cmlnaW4pOwotICAgICAgICB0aGlzLl9sVmFsdWUgPSBsVmFsdWU7Ci0gICAgfQotCi0gICAgZ2V0
IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHR5cGVPZih0aGlzLmxWYWx1ZSkuYXJyYXlS
ZWZUeXBlOwotICAgIH0KLQotICAgIGdldCBsVmFsdWUoKSB7IHJldHVybiB0aGlzLl9sVmFsdWU7
IH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAiQCIgKyAodGhpcy5u
dW1FbGVtZW50cyA/ICI8PCIgKyB0aGlzLm51bUVsZW1lbnRzICsgIj4+IiA6ICIiKSArICIoIiAr
IHRoaXMubFZhbHVlICsgIikiOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTWFrZVB0ckV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NYWtlUHRyRXhwcmVzc2lvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmYyMzdkMDlhMTQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ha2VQdHJFeHByZXNzaW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi1jbGFzcyBNYWtlUHRyRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24g
ewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbFZhbHVlKQotICAgIHsKLSAgICAgICAgc3VwZXIo
b3JpZ2luKTsKLSAgICAgICAgdGhpcy5fbFZhbHVlID0gbFZhbHVlOwotICAgIH0KLSAgICAKLSAg
ICBnZXQgbFZhbHVlKCkgeyByZXR1cm4gdGhpcy5fbFZhbHVlOyB9Ci0gICAgCi0gICAgdG9TdHJp
bmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICImKCIgKyB0aGlzLmxWYWx1ZSArICIpIjsKLSAg
ICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhU
eXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWF0cml4VHlwZS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM5Y2VlYzcxNWUuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTWF0cml4VHlwZSBleHRlbmRzIE5hdGl2ZVR5
cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cykKLSAgICB7
Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cyk7Ci0gICAgfQotCi0g
ICAgZ2V0IGVsZW1lbnRUeXBlKCkgeyByZXR1cm4gdGhpcy50eXBlQXJndW1lbnRzWzBdOyB9Ci0g
ICAgZ2V0IG51bVJvd3MoKSB7IHJldHVybiB0aGlzLnR5cGVBcmd1bWVudHNbMV07IH0KLSAgICBn
ZXQgbnVtQ29sdW1ucygpIHsgcmV0dXJuIHRoaXMudHlwZUFyZ3VtZW50c1syXTsgfQotICAgIGdl
dCBudW1Sb3dzVmFsdWUoKSB7IHJldHVybiB0aGlzLm51bVJvd3MudmFsdWU7IH0KLSAgICBnZXQg
bnVtQ29sdW1uc1ZhbHVlKCkgeyByZXR1cm4gdGhpcy5udW1Db2x1bW5zLnZhbHVlOyB9Ci0gICAg
Z2V0IHNpemUoKSB7IHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnNpemUgKiB0aGlzLm51bVJvd3NW
YWx1ZSAqIHRoaXMubnVtQ29sdW1uc1ZhbHVlOyB9Ci0KLSAgICB1bmlmeUltcGwodW5pZmljYXRp
b25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2Yg
TWF0cml4VHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHRo
aXMubnVtUm93c1ZhbHVlICE9PSBvdGhlci5udW1Sb3dzVmFsdWUgfHwgdGhpcy5udW1Db2x1bW5z
VmFsdWUgIT09IG90aGVyLm51bUNvbHVtbnNWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS51bmlmeSh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyLmVsZW1lbnRUeXBlKTsKLSAgICB9Ci0KLSAgICBwb3B1bGF0ZURlZmF1bHRW
YWx1ZShidWZmZXIsIG9mZnNldCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dGhpcy5udW1Sb3dzVmFsdWUgKiB0aGlzLm51bUNvbHVtbnNWYWx1ZTsgKytpKQotICAgICAgICAg
ICAgdGhpcy5lbGVtZW50VHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCAr
IGkgKiB0aGlzLmVsZW1lbnRUeXBlLnNpemUpOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBgbmF0aXZlIHR5cGVkZWYgbWF0cml4PCR7dGhpcy5lbGVtZW50
VHlwZX0sICR7dGhpcy5udW1Sb3dzVmFsdWV9LCAke3RoaXMubnVtQ29sdW1uc1ZhbHVlfT5gOwot
ICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L01TTEJhY2tlbmQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xC
YWNrZW5kLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTk5M2FiOWM5ZC4uMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQmFj
a2VuZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotY29uc3QgRGVmYXVsdE1ldGFsU291cmNlID0g
YCNpbmNsdWRlIDxtZXRhbF9zdGRsaWI+Ci11c2luZyBuYW1lc3BhY2UgbWV0YWw7Ci0KLWA7Ci0K
LS8vIEhhbmRsZXMgdGhlIGNvbXBpbGF0aW9uIG9mIFByb2dyYW0gQVNUIGluc3RhbmNlcyB0byBN
U0xDb21waWxlUmVzdWx0IGluc3RhbmNlcywgd2hpY2gKLS8vIGluY2x1ZGUgdGhlIHJhdyBNU0wu
IEluIGdlbmVyYWwgY2xpZW50cyBzaG91bGQgY2FsbCB8d2hsc2xUb01zbHwsIHdoaWNoIHBhcnNl
cywKLS8vIHR5cGVjaGVja3MsIGFuZCBpbmxpbmVzIHRoZSBXSExTTCBiZWZvcmUgcGFzc2luZyBp
dCB0byB0aGlzIGNvbXBpbGVyLgotY2xhc3MgTVNMQmFja2VuZCB7Ci0KLSAgICBjb25zdHJ1Y3Rv
cihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZ3JhbSA9IHByb2dyYW07Ci0gICAg
ICAgIHRoaXMuX2RlY2xhcmF0aW9ucyA9IFtdOwotICAgICAgICB0aGlzLl9mdW5jTmFtZU1hbmds
ZXIgPSBuZXcgTVNMTmFtZU1hbmdsZXIoIkYiKTsKLSAgICAgICAgdGhpcy5fdHlwZVVuaWZpZXIg
PSBuZXcgTVNMVHlwZVVuaWZpZXIoKTsKLSAgICAgICAgdGhpcy5fZm9yd2FyZFR5cGVEZWNscyA9
IFtdOwotICAgICAgICB0aGlzLl90eXBlRGVmaW5pdGlvbnMgPSBbXTsKLSAgICAgICAgdGhpcy5f
Zm9yd2FyZEZ1bmN0aW9uRGVjbHMgPSBbXTsKLSAgICAgICAgdGhpcy5fZnVuY3Rpb25EZWZpbnRp
b25zID0gW107Ci0gICAgfQotCi0gICAgZ2V0IHByb2dyYW0oKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3Byb2dyYW07Ci0gICAgfQotCi0gICAgZ2V0IGRlY2xhcmF0aW9ucygpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyYXRpb25zOwotICAgIH0KLQotICAgIGdldCBm
dW5jdGlvblNvdXJjZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uU291
cmNlczsKLSAgICB9Ci0KLSAgICBjb21waWxlKCkKLSAgICB7Ci0gICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICBjb25zdCBzcmMgPSB0aGlzLl9tc2woKTsKLSAgICAgICAgICAgIGNvbnN0IG1hbmds
ZWRNYXAgPSB7fTsKLSAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgdGhpcy5fZnVuY3Rpb25E
ZWZpbnRpb25zKSB7Ci0gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZnVuYy5mdW5jLm5hbWU7
Ci0gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9mdW5jTmFtZU1hbmdsZXIubWFu
Z2xlKGZ1bmMuZnVuYyk7Ci0gICAgICAgICAgICAgICAgbWFuZ2xlZE1hcFtrZXldID0gdmFsdWU7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBuZXcgTVNMQ29tcGlsZVJlc3Vs
dChzcmMsIG51bGwsIG1hbmdsZWRNYXAsIHRoaXMuX2Z1bmN0aW9uU291cmNlcyk7Ci0gICAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTVNMQ29tcGlsZVJlc3VsdChu
dWxsLCBlLCBudWxsLCBudWxsKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9tc2woKQotICAg
IHsKLSAgICAgICAgaW5zZXJ0VHJhcFBhcmFtZXRlcih0aGlzLnByb2dyYW0pOwotCi0gICAgICAg
IGNvbnN0IGZ1bmN0aW9uc1RvQ29tcGlsZSA9IHRoaXMuX2ZpbmRGdW5jdGlvbnNUb0NvbXBpbGUo
KTsKLSAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jdGlvbnNUb0NvbXBpbGUpCi0gICAgICAg
ICAgICBmdW5jLnZpc2l0KHRoaXMuX3R5cGVVbmlmaWVyKTsKLQotICAgICAgICB0aGlzLl9hbGxU
eXBlQXR0cmlidXRlcyA9IG5ldyBNU0xUeXBlQXR0cmlidXRlc01hcChmdW5jdGlvbnNUb0NvbXBp
bGUsIHRoaXMuX3R5cGVVbmlmaWVyKTsKLSAgICAgICAgdGhpcy5fY3JlYXRlVHlwZURlY2xzKCk7
Ci0gICAgICAgIHRoaXMuX2NyZWF0ZUZ1bmN0aW9uRGVjbHMoZnVuY3Rpb25zVG9Db21waWxlKTsK
LQotICAgICAgICBsZXQgb3V0cHV0U3RyID0gRGVmYXVsdE1ldGFsU291cmNlOwotCi0gICAgICAg
IGNvbnN0IGFkZFNlY3Rpb24gPSAodGl0bGUsIGRlY2xzKSA9PiB7Ci0gICAgICAgICAgICBvdXRw
dXRTdHIgKz0gYCNwcmFnbWEgbWFyayAtICR7dGl0bGV9XG5cbiR7ZGVjbHMuam9pbigiXG5cbiIp
fVxuXG5gOwotICAgICAgICB9OwotCi0gICAgICAgIGFkZFNlY3Rpb24oIkZvcndhcmQgdHlwZSBk
ZWNsYXJhdGlvbnMiLCB0aGlzLl9mb3J3YXJkVHlwZURlY2xzKTsKLSAgICAgICAgYWRkU2VjdGlv
bigiVHlwZSBkZWZpbml0aW9ucyIsIHRoaXMuX3R5cGVEZWZpbml0aW9ucyk7Ci0gICAgICAgIGFk
ZFNlY3Rpb24oIkZvcndhcmQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIiwgdGhpcy5fZm9yd2FyZEZ1
bmN0aW9uRGVjbHMpOwotICAgICAgICBhZGRTZWN0aW9uKCJGdW5jdGlvbiBkZWZpbml0aW9ucyIs
IHRoaXMuX2Z1bmN0aW9uRGVmaW50aW9ucyk7Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9hbGxvd0Nv
bW1lbnRzKQotICAgICAgICAgICAgb3V0cHV0U3RyID0gdGhpcy5fcmVtb3ZlQ29tbWVudHNBbmRF
bXB0eUxpbmVzKG91dHB1dFN0cik7Ci0KLSAgICAgICAgcmV0dXJuIG91dHB1dFN0cjsKLSAgICB9
Ci0KLSAgICBfZmluZEZ1bmN0aW9uc1RvQ29tcGlsZSgpCi0gICAgewotICAgICAgICBjb25zdCBl
bnRyeVBvaW50RnVuY3Rpb25zID0gW107Ci0gICAgICAgIGZvciAobGV0IFtuYW1lLCBpbnN0YW5j
ZXNdIG9mIHRoaXMuX3Byb2dyYW0uZnVuY3Rpb25zKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBp
bnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UuaXNF
bnRyeVBvaW50KQotICAgICAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25zLnB1c2go
aW5zdGFuY2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGZ1bmN0
aW9ucyA9IG5ldyBTZXQoZW50cnlQb2ludEZ1bmN0aW9ucyk7Ci0KLSAgICAgICAgY2xhc3MgRmlu
ZEZ1bmN0aW9uc1RoYXRHZXRDYWxsZWQgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICAgICAgICAgIHZp
c2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBz
dXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgICAgICAgICAgICAgIGlmIChub2Rl
LmZ1bmMgaW5zdGFuY2VvZiBGdW5jRGVmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
cy5hZGQobm9kZS5mdW5jKTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5mdW5jLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBjb25zdCBmaW5kRnVuY3Rpb25zVGhhdEdldENhbGxlZFZpc2l0b3IgPSBuZXcgRmluZEZ1bmN0
aW9uc1RoYXRHZXRDYWxsZWQoKTsKLSAgICAgICAgZm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRy
eVBvaW50RnVuY3Rpb25zKQotICAgICAgICAgICAgZW50cnlQb2ludC52aXNpdChmaW5kRnVuY3Rp
b25zVGhhdEdldENhbGxlZFZpc2l0b3IpOwotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShmdW5j
dGlvbnMpOwotICAgIH0KLQotICAgIF9jcmVhdGVUeXBlRGVjbHMoKQotICAgIHsKLSAgICAgICAg
Y29uc3QgdHlwZXNUaGF0TmVlZERlY2xhcmF0aW9uID0gdGhpcy5fdHlwZVVuaWZpZXIudHlwZXNU
aGF0TmVlZERlY2xhcmF0aW9uKCk7Ci0gICAgICAgIGNvbnN0IHR5cGVEZWNsc0luT3JkZXJJblR5
cGVEZWZPcmRlciA9IHRoaXMuX3NvcnRUeXBlRGVmc0FuZEZvcndhcmREZWNsYXJhdGlvbnNJblRv
cG9sb2dpY2FsT3JkZXIodHlwZXNUaGF0TmVlZERlY2xhcmF0aW9uKTsKLSAgICAgICAgZm9yIChs
ZXQgdHlwZSBvZiB0eXBlRGVjbHNJbk9yZGVySW5UeXBlRGVmT3JkZXIpIHsKLSAgICAgICAgICAg
IGlmICh0eXBlIGluc3RhbmNlb2YgU3RydWN0VHlwZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9m
b3J3YXJkVHlwZURlY2xzLnB1c2godGhpcy5fbWV0YWxTb3VyY2VGb3JTdHJ1Y3RGb3J3YXJkRGVj
bGFyYXRpb24odHlwZSkpOwotICAgICAgICAgICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIEFy
cmF5UmVmVHlwZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9mb3J3YXJkVHlwZURlY2xzLnB1c2go
dGhpcy5fbWV0YWxTb3VyY2VGb3JBcnJheVJlZkZvcndhcmREZWNsYXJhdGlvbih0eXBlKSk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9yd2FyZFR5cGVEZWNscy5w
dXNoKHRoaXMuX21ldGFsU291cmNlRm9yVHlwZURlZih0eXBlKSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBjb25zdCB0eXBlRGVjbHNUaGF0TmVlZERlY2xhcmF0aW9uSW5PcmRlciA9IHRoaXMuX3Nv
cnRUeXBlRGVjbGFyYXRpb25zSW5Ub3BvbG9naWNhbE9yZGVyKHR5cGVzVGhhdE5lZWREZWNsYXJh
dGlvbik7Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgdHlwZURlY2xzVGhhdE5lZWREZWNsYXJh
dGlvbkluT3JkZXIpIHsKLSAgICAgICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgU3RydWN0VHlw
ZSkKLSAgICAgICAgICAgICAgICB0aGlzLl90eXBlRGVmaW5pdGlvbnMucHVzaCh0aGlzLl9tZXRh
bFNvdXJjZUZvclN0cnVjdERlZmluaXRpb24odHlwZSkpOwotICAgICAgICAgICAgZWxzZSBpZiAo
dHlwZSBpbnN0YW5jZW9mIEFycmF5UmVmVHlwZSkKLSAgICAgICAgICAgICAgICB0aGlzLl90eXBl
RGVmaW5pdGlvbnMucHVzaCh0aGlzLl9tZXRhbFNvdXJjZUZvckFycmF5UmVmRGVmaW5pdGlvbih0
eXBlKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfY3JlYXRlRnVuY3Rpb25EZWNscyh1bmlm
aWVkRnVuY3Rpb25EZWZzKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgZnVuYyBvZiB1bmlmaWVk
RnVuY3Rpb25EZWZzKSB7Ci0gICAgICAgICAgICB0aGlzLl9mb3J3YXJkRnVuY3Rpb25EZWNscy5w
dXNoKG5ldyBNU0xGdW5jdGlvbkZvcndhcmREZWNsYXJhdGlvbih0aGlzLnByb2dyYW0sIHRoaXMu
X2Z1bmNOYW1lTWFuZ2xlciwgZnVuYywgdGhpcy5fdHlwZVVuaWZpZXIsIHRoaXMuX2FsbFR5cGVB
dHRyaWJ1dGVzKSk7Ci0gICAgICAgICAgICB0aGlzLl9mdW5jdGlvbkRlZmludGlvbnMucHVzaChu
ZXcgTVNMRnVuY3Rpb25EZWZpbml0aW9uKHRoaXMucHJvZ3JhbSwgdGhpcy5fZnVuY05hbWVNYW5n
bGVyLCBmdW5jLCB0aGlzLl90eXBlVW5pZmllciwgdGhpcy5fYWxsVHlwZUF0dHJpYnV0ZXMpKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIF9zb3J0VHlwZURlZnNBbmRGb3J3YXJkRGVjbGFyYXRp
b25zSW5Ub3BvbG9naWNhbE9yZGVyKHR5cGVzVG9EZWNsYXJlKQotICAgIHsKLSAgICAgICAgLy8g
QWxsIHR5cGVzIGFyZSBzb3J0ZWQgaW4gdG9wb2xvZ2ljYWwgb3JkZXIgaW4gdGhpcyBtZXRob2Q7
IGV2ZXJ5IHR5cGUgbmVlZHMgYSB0eXBlZGVmLgotICAgICAgICAvLyBXZSBkbyBub3QgcmVjdXJz
ZSBpbnRvIHN0cnVjdHMgYmVjYXN1ZSB0aGlzIGlzICpqdXN0KiBmb3IgZm9yd2FyZCBkZWNsYXJh
dGlvbnMuCi0gICAgICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IG5ldyBBcnJheSgpOwotICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIHR5cGVzVG9EZWNsYXJlKQotICAgICAgICAgICAgZGVjbGFyYXRp
b25zLnB1c2godHlwZSk7Ci0KLSAgICAgICAgbGV0IHR5cGVPcmRlciA9IFtdOwotICAgICAgICBs
ZXQgdmlzaXRlZFNldCA9IG5ldyBTZXQoKTsKLSAgICAgICAgY29uc3QgdHlwZVVuaWZpZXIgPSB0
aGlzLl90eXBlVW5pZmllcjsKLSAgICAgICAgY2xhc3MgVHlwZU9yZGVyZXIgZXh0ZW5kcyBWaXNp
dG9yIHsKLSAgICAgICAgICAgIF92aXNpdFR5cGUobm9kZSwgdmlzaXRDYWxsYmFjaykKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb25zdCBpZCA9IHR5cGVVbmlmaWVyLnVuaXF1ZVR5
cGVJZChub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoIXZpc2l0ZWRTZXQuaGFzKGlkKSkgewot
ICAgICAgICAgICAgICAgICAgICB2aXNpdGVkU2V0LmFkZChpZCk7Ci0gICAgICAgICAgICAgICAg
ICAgIHZpc2l0Q2FsbGJhY2soKTsKLSAgICAgICAgICAgICAgICAgICAgdHlwZU9yZGVyLnB1c2go
bm9kZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2
aXNpdE5hdGl2ZVR5cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlz
Ll92aXNpdFR5cGUobm9kZSwgKCkgPT4ge30pOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICB2aXNpdEVudW1UeXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbm9k
ZS5iYXNlVHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlz
aXRBcnJheVR5cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92
aXNpdFR5cGUobm9kZSwgKCkgPT4gc3VwZXIudmlzaXRBcnJheVR5cGUobm9kZSkpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB0aGlzLl92aXNpdFR5cGUobm9kZSwgKCkgPT4ge30pOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92aXNpdFR5cGUobm9kZSwgKCkgPT4ge30pOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBEb24ndCBuZWVkIHRvIHJlY3Vyc2UgaW50byBl
bGVtZW50cyBmb3IgdGhlIGZvcndhcmQgZGVjbGFyYXRpb25zLgotICAgICAgICAgICAgICAgIHRo
aXMuX3Zpc2l0VHlwZShub2RlLCAoKSA9PiB7fSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIHZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fdmlzaXRUeXBlKG5vZGUsICgpID0+IHN1cGVyLnZpc2l0QXJyYXlSZWZUeXBlKG5v
ZGUpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5v
ZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fdmlzaXRUeXBlKG5vZGUs
ICgpID0+IHN1cGVyLnZpc2l0UmVmZXJlbmNlVHlwZShub2RlKSk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHN1cGVyLnZpc2l0VHlwZVJlZihub2RlKTsKLSAgICAgICAgICAgICAgICBub2RlLnR5
cGUudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3Qg
dHlwZU9yZGVyZXIgPSBuZXcgVHlwZU9yZGVyZXIoKTsKLSAgICAgICAgZm9yIChsZXQgdHlwZSBv
ZiB0eXBlc1RvRGVjbGFyZSkKLSAgICAgICAgICAgIHR5cGUudmlzaXQodHlwZU9yZGVyZXIpOwot
ICAgICAgICByZXR1cm4gdHlwZU9yZGVyOwotICAgIH0KLQotICAgIF9zb3J0VHlwZURlY2xhcmF0
aW9uc0luVG9wb2xvZ2ljYWxPcmRlcih0eXBlc1RvRGVjbGFyZSkKLSAgICB7Ci0gICAgICAgIGNv
bnN0IGRlY2xhcmF0aW9ucyA9IG5ldyBBcnJheSgpOwotICAgICAgICBmb3IgKGxldCB0eXBlIG9m
IHR5cGVzVG9EZWNsYXJlKQotICAgICAgICAgICAgZGVjbGFyYXRpb25zLnB1c2godHlwZSk7Ci0K
LSAgICAgICAgbGV0IHR5cGVPcmRlciA9IFtdOwotICAgICAgICBsZXQgdmlzaXRlZFNldCA9IG5l
dyBTZXQoKTsKLSAgICAgICAgY29uc3QgdHlwZVVuaWZpZXIgPSB0aGlzLl90eXBlVW5pZmllcjsK
LSAgICAgICAgY2xhc3MgVHlwZU9yZGVyZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICAgICAgICAg
IF92aXNpdFR5cGUobm9kZSwgdmlzaXRDYWxsYmFjaykKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBjb25zdCBpZCA9IHR5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZChub2RlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXZpc2l0ZWRTZXQuaGFzKGlkKSkgewotICAgICAgICAgICAgICAgICAg
ICB2aXNpdGVkU2V0LmFkZChpZCk7Ci0gICAgICAgICAgICAgICAgICAgIHZpc2l0Q2FsbGJhY2so
KTsKLSAgICAgICAgICAgICAgICAgICAgdHlwZU9yZGVyLnB1c2gobm9kZSk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9k
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92aXNpdFR5cGUobm9kZSwg
KCkgPT4gc3VwZXIudmlzaXRTdHJ1Y3RUeXBlKG5vZGUpKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwotICAgICAgICAgICAgICAgIG5vZGUudHlwZS52
aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRBcnJheVJlZlR5
cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92aXNpdFR5cGUo
bm9kZSwgKCkgPT4gc3VwZXIudmlzaXRBcnJheVJlZlR5cGUobm9kZSkpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIHRvIGF2
b2lkIHJlY3Vyc2lvbi4KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjb25zdCB0
eXBlT3JkZXJlciA9IG5ldyBUeXBlT3JkZXJlcigpOwotICAgICAgICBmb3IgKGxldCB0eXBlIG9m
IHR5cGVzVG9EZWNsYXJlKQotICAgICAgICAgICAgdHlwZS52aXNpdCh0eXBlT3JkZXJlcik7Ci0K
LSAgICAgICAgY29uc3QgdHlwZU9yZGVyTWFwID0gbmV3IE1hcCgpOwotICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHR5cGVPcmRlci5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIHR5cGVPcmRl
ck1hcC5zZXQodHlwZU9yZGVyW2ldLCBpKTsKLQotICAgICAgICByZXR1cm4gdHlwZU9yZGVyOwot
ICAgIH0KLQotICAgIC8vIEFsc28gcmVtb3ZlcyAjcHJhZ21hIG1hcmtzLgotICAgIF9yZW1vdmVD
b21tZW50c0FuZEVtcHR5TGluZXMoc3JjKQotICAgIHsKLSAgICAgICAgY29uc3Qgc2luZ2xlTGlu
ZUNvbW1lbnRSZWdleCA9IC8oXC9cL3xcI3ByYWdtYSkoLio/KSgkfFxuKS87Ci0gICAgICAgIGNv
bnN0IGxpbmVzID0gc3JjLnNwbGl0KCdcbicpCi0gICAgICAgICAgICAubWFwKGxpbmUgPT4gbGlu
ZS5yZXBsYWNlKHNpbmdsZUxpbmVDb21tZW50UmVnZXgsICcnKS50cmltRW5kKCkpCi0gICAgICAg
ICAgICAuZmlsdGVyKGxpbmUgPT4gbGluZS5sZW5ndGggPiAwKTsKLSAgICAgICAgcmV0dXJuIGxp
bmVzLmpvaW4oJ1xuJyk7Ci0gICAgfQotCi0gICAgX21ldGFsU291cmNlRm9yQXJyYXlSZWZEZWZp
bml0aW9uKGFycmF5UmVmVHlwZSkKLSAgICB7Ci0gICAgICAgIGxldCBzcmMgPSBgc3RydWN0ICR7
dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKGFycmF5UmVmVHlwZSl9IHtcbmA7Ci0gICAg
ICAgIGNvbnN0IGZha2VQdHJUeXBlID0gbmV3IFB0clR5cGUoYXJyYXlSZWZUeXBlLm9yaWdpbiwg
YXJyYXlSZWZUeXBlLmFkZHJlc3NTcGFjZSwgYXJyYXlSZWZUeXBlLmVsZW1lbnRUeXBlKTsKLSAg
ICAgICAgc3JjICs9IGAgICAgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQoZmFrZVB0
clR5cGUpfSBwdHI7XG5gCi0gICAgICAgIHNyYyArPSAiICAgIHVpbnQzMl90IGxlbmd0aDtcbiI7
Ci0gICAgICAgIHNyYyArPSAifTsiOwotICAgICAgICByZXR1cm4gc3JjOwotICAgIH0KLQotICAg
IF9tZXRhbFNvdXJjZUZvckFycmF5UmVmRm9yd2FyZERlY2xhcmF0aW9uKGFycmF5UmVmVHlwZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBgc3RydWN0ICR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVl
VHlwZUlkKGFycmF5UmVmVHlwZSl9O2A7Ci0gICAgfQotCi0gICAgX21ldGFsU291cmNlRm9yU3Ry
dWN0Rm9yd2FyZERlY2xhcmF0aW9uKHN0cnVjdFR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4g
YHN0cnVjdCAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZChzdHJ1Y3RUeXBlKX07YDsK
LSAgICB9Ci0KLSAgICBfbWV0YWxTb3VyY2VGb3JTdHJ1Y3REZWZpbml0aW9uKHN0cnVjdFR5cGUp
Ci0gICAgewotICAgICAgICBjb25zdCBzdHJ1Y3RUeXBlQXR0cmlidXRlcyA9IHRoaXMuX2FsbFR5
cGVBdHRyaWJ1dGVzLmF0dHJpYnV0ZXNGb3JUeXBlKHN0cnVjdFR5cGUpOwotICAgICAgICBsZXQg
c3JjID0gYHN0cnVjdCAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZChzdHJ1Y3RUeXBl
KX0ge1xuYDsKLQotICAgICAgICBmb3IgKGxldCBbZmllbGROYW1lLCBmaWVsZF0gb2Ygc3RydWN0
VHlwZS5maWVsZE1hcCkgewotICAgICAgICAgICAgY29uc3QgbWFuZ2xlZEZpZWxkTmFtZSA9IHN0
cnVjdFR5cGVBdHRyaWJ1dGVzLm1hbmdsZWRGaWVsZE5hbWUoZmllbGROYW1lKTsKLSAgICAgICAg
ICAgIHNyYyArPSBgICAgICR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKGZpZWxkLnR5
cGUpfSAke21hbmdsZWRGaWVsZE5hbWV9YDsKLQotICAgICAgICAgICAgY29uc3QgYW5ub3RhdGlv
bnMgPSBbXTsKLSAgICAgICAgICAgIGlmIChzdHJ1Y3RUeXBlQXR0cmlidXRlcy5pc1ZlcnRleEF0
dHJpYnV0ZSkKLSAgICAgICAgICAgICAgICBhbm5vdGF0aW9ucy5wdXNoKGBhdHRyaWJ1dGUoJHtm
aWVsZC5fc2VtYW50aWMuX2luZGV4fSlgKTsKLSAgICAgICAgICAgIGlmIChzdHJ1Y3RUeXBlQXR0
cmlidXRlcy5pc1ZlcnRleE91dHB1dE9yRnJhZ21lbnRJbnB1dCAmJiBmaWVsZC5fc2VtYW50aWMu
X25hbWUgPT09ICJTVl9Qb3NpdGlvbiIpCi0gICAgICAgICAgICAgICAgYW5ub3RhdGlvbnMucHVz
aCgicG9zaXRpb24iKTsKLSAgICAgICAgICAgIGlmIChzdHJ1Y3RUeXBlQXR0cmlidXRlcy5pc0Zy
YWdtZW50T3V0cHV0ICYmIGZpZWxkLl9zZW1hbnRpYy5fbmFtZSA9PSAiU1ZfVGFyZ2V0IikKLSAg
ICAgICAgICAgICAgICBhbm5vdGF0aW9ucy5wdXNoKGBjb2xvcigke2ZpZWxkLl9zZW1hbnRpYy5f
ZXh0cmFBcmd1bWVudHNbMF19KWApOwotICAgICAgICAgICAgaWYgKGFubm90YXRpb25zLmxlbmd0
aCkKLSAgICAgICAgICAgICAgICBzcmMgKz0gYCBbWyR7YW5ub3RhdGlvbnMuam9pbigiLCAiKX1d
XWA7Ci0gICAgICAgICAgICBzcmMgKz0gYDsgLy8gJHtmaWVsZE5hbWV9ICgke2ZpZWxkLnR5cGV9
KSBcbmA7Ci0gICAgICAgIH0KLQotICAgICAgICBzcmMgKz0gIn07IjsKLQotICAgICAgICByZXR1
cm4gc3JjOwotICAgIH0KLQotICAgIF9tZXRhbFNvdXJjZUZvclR5cGVEZWYobm9kZSkKLSAgICB7
Ci0gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQobm9k
ZSk7Ci0gICAgICAgIGlmIChub2RlLmlzQXJyYXkpCi0gICAgICAgICAgICByZXR1cm4gYHR5cGVk
ZWYgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQobm9kZS5lbGVtZW50VHlwZSl9ICR7
bmFtZX1bJHtub2RlLm51bUVsZW1lbnRzVmFsdWV9XTtgOwotICAgICAgICBlbHNlIGlmIChub2Rl
LmlzUHRyKQotICAgICAgICAgICAgcmV0dXJuIGB0eXBlZGVmICR7bm9kZS5hZGRyZXNzU3BhY2V9
ICR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKG5vZGUuZWxlbWVudFR5cGUpfSAoKiR7
bmFtZX0pO2A7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgY2xhc3MgTmF0aXZlVHlwZU5h
bWVWaXNpdG9yIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICAgICAgdmlzaXROYXRpdmVU
eXBlKG5vZGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogQWxzbyBhZGQgc2FtcGxlcnMgYW5kIHRleHR1cmVzIGhlcmUuCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnN0IG5hdGl2ZVR5cGVOYW1lTWFwID0gewotICAgICAgICAgICAgICAgICAgICAgICAg
InZvaWQiOiAidm9pZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYm9vbCI6ICJib29sIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ1Y2hhciI6ICJ1aW50OF90IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ1c2hvcnQiOiAidWludDE2X3QiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgInVpbnQiOiAidWludDMyX3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgImNoYXIiOiAi
aW50OF90IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzaG9ydCI6ICJpbnQxNl90IiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJpbnQiOiAiaW50MzJfdCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAiaGFsZiI6ICJoYWxmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJmbG9hdCI6
ICJmbG9hdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYXRvbWljX2ludCI6ICJhdG9taWNf
aW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJhdG9taWNfdWludCI6ICJhdG9taWNfdWlu
dCIKLSAgICAgICAgICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bmF0aXZlVHlwZU5hbWVNYXBbbm9kZS5uYW1lXTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIFZlY3RvciB0eXBlIG5hbWVzIHdvcmsgc2xpZ2h0bHkgZGlmZmVy
ZW50bHkgdG8gbmF0aXZlIHR5cGUgbmFtZXMuCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVs
ZW1lbnRUeXBlTmFtZU1hcCA9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJib29sIjogImJv
b2wiLAotICAgICAgICAgICAgICAgICAgICAgICAgImNoYXIiOiAiY2hhciIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAidWNoYXIiOiAidWNoYXIiLAotICAgICAgICAgICAgICAgICAgICAgICAg
InNob3J0IjogInNob3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ1c2hvcnQiOiAidXNo
b3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnQiOiAiaW50IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ1aW50IjogInVpbnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgImhh
bGYiOiAiaGFsZiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQiOiAiZmxvYXQiCi0g
ICAgICAgICAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVu
dFR5cGVOYW1lID0gZWxlbWVudFR5cGVOYW1lTWFwW25vZGUuZWxlbWVudFR5cGUubmFtZV07Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghZWxlbWVudFR5cGVOYW1lKQotICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25vZGUuZWxlbWVudFR5cGUubmFtZX0gaXMgbm90
IGEgc3VwcG9ydGVkIHZlY3RvciBlbGVtZW50IHR5cGVgKTsKLQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYCR7ZWxlbWVudFR5cGVOYW1lfSR7bm9kZS5udW1FbGVtZW50c1ZhbHVlfWA7Ci0g
ICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50VHlw
ZU5hbWVNYXAgPSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAiaGFsZiI6ICJoYWxmIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJmbG9hdCI6ICJmbG9hdCIKLSAgICAgICAgICAgICAgICAg
ICAgfTsKLQotICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50VHlwZU5hbWUgPSBlbGVt
ZW50VHlwZU5hbWVNYXBbbm9kZS5lbGVtZW50VHlwZS5uYW1lXTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFlbGVtZW50VHlwZU5hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoYCR7bm9kZS5lbGVtZW50VHlwZS5uYW1lfSBpcyBub3QgYSBzdXBwb3J0ZWQgbWF0
cml4IGVsZW1lbnQgdHlwZWApOwotCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtlbGVt
ZW50VHlwZU5hbWV9JHtub2RlLm51bVJvd3NWYWx1ZX14JHtub2RlLm51bUNvbHVtbnNWYWx1ZX1g
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnN0IG5h
dGl2ZU5hbWUgPSBub2RlLnZpc2l0KG5ldyBOYXRpdmVUeXBlTmFtZVZpc2l0b3IoKSk7Ci0gICAg
ICAgICAgICBpZiAoIW5hdGl2ZU5hbWUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGBOYXRpdmUgdHlwZSBuYW1lIG5vdCBmb3VuZCBmb3IgJHtub2RlfWApOwotICAgICAgICAgICAg
cmV0dXJuIGB0eXBlZGVmICR7bmF0aXZlTmFtZX0gJHtuYW1lfTtgOwotICAgICAgICB9Ci0gICAg
fQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNM
Q29kZWdlbkFsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENv
ZGVnZW5BbGwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZTRjZjg5ZTQzLi4w
MDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xD
b2RlZ2VuQWxsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLWxvYWQoIk1TTEJhY2tlbmQuanMiKTsK
LWxvYWQoIk1TTENvbXBpbGVSZXN1bHQuanMiKTsKLWxvYWQoIk1TTENvbnN0ZXhwckVtaXR0ZXIu
anMiKTsKLWxvYWQoIk1TTEZ1bmN0aW9uRGVjbGFyYXRpb24uanMiKTsKLWxvYWQoIk1TTEZ1bmN0
aW9uRGVmaW5pdGlvbi5qcyIpOwotbG9hZCgiTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24u
anMiKTsKLWxvYWQoIk1TTEluc2VydFRyYXBQYXJhbWV0ZXIuanMiKTsKLWxvYWQoIk1TTE5hbWVN
YW5nbGVyLmpzIik7Ci1sb2FkKCJNU0xOYXRpdmVGdW5jdGlvbkNhbGwuanMiKTsKLWxvYWQoIk1T
TFN0YXRlbWVudEVtaXR0ZXIuanMiKTsKLWxvYWQoIk1TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzIik7
Ci1sb2FkKCJNU0xUeXBlQXR0cmlidXRlcy5qcyIpOwotbG9hZCgiTVNMVHlwZVVuaWZpZXIuanMi
KTsKLWxvYWQoIlR5cGVPZi5qcyIpOwotbG9hZCgiV2hsc2xUb01zbC5qcyIpOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ldGFsL01TTENvbXBpbGVSZXN1bHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9NU0xDb21waWxlUmVzdWx0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyZmQwYmI4OTJiNi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvTVNMQ29tcGlsZVJlc3VsdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDYw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1j
bGFzcyBNU0xDb21waWxlUmVzdWx0IHsKLQotICAgIGNvbnN0cnVjdG9yKHNyYywgZXJyLCBtYW5n
bGVkTmFtZU1hcCwgZnVuY3Rpb25Tb3VyY2VzKQotICAgIHsKLSAgICAgICAgdGhpcy5fbWV0YWxT
aGFkZXJMYW5ndWFnZVNvdXJjZSA9IHNyYzsKLSAgICAgICAgdGhpcy5fZXJyb3IgPSBlcnI7Ci0g
ICAgICAgIHRoaXMuX29yaWdpbmFsRnVuY3Rpb25OYW1lVG9NYW5nbGVkTmFtZXMgPSBtYW5nbGVk
TmFtZU1hcDsKLSAgICAgICAgdGhpcy5fZnVuY3Rpb25Tb3VyY2VzID0gZnVuY3Rpb25Tb3VyY2Vz
OwotICAgIH0KLQotICAgIGdldCBtZXRhbFNoYWRlckxhbmd1YWdlU291cmNlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9tZXRhbFNoYWRlckxhbmd1YWdlU291cmNlOwotICAgIH0KLQot
ICAgIGdldCBlcnJvcigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3I7Ci0gICAg
fQotCi0gICAgZ2V0IG9yaWdpbmFsRnVuY3Rpb25OYW1lVG9NYW5nbGVkTmFtZXMoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsRnVuY3Rpb25OYW1lVG9NYW5nbGVkTmFtZXM7
Ci0gICAgfQotCi0gICAgZ2V0IGZ1bmN0aW9uU291cmNlcygpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fZnVuY3Rpb25Tb3VyY2VzOwotICAgIH0KLQotICAgIGdldCBkaWRTdWNjZWVkKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiAhdGhpcy5lcnJvcjsKLSAgICB9Ci19ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTWV0YWwvTVNMQ29uc3RleHByRW1pdHRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL01TTENvbnN0ZXhwckVtaXR0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVkMzQzMjg2Y2ZkLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xDb25zdGV4cHJFbWl0dGVyLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLS8vIFVzZWQgaW4gc2NlbmFyaW9zIHdoZXJlIGhhdmluZyBhbiBhdXhpbGlhcnkgdmFy
aWFibGUgaXMgbm90IHBvc3NpYmxlIChlLmcuIHN3aXRjaCBjYXNlcykuCi1jbGFzcyBNU0xDb25z
dGV4cHJFbWl0dGVyIGV4dGVuZHMgVmlzaXRvcgotewotICAgIHZpc2l0SWRlbnRpdHlFeHByZXNz
aW9uKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZS50YXJnZXQudmlzaXQodGhpcyk7
Ci0gICAgfQotCi0gICAgdmlzaXRCb29sTGl0ZXJhbChub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIG5vZGUudmFsdWUudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICB2aXNpdEVudW1MaXRlcmFs
KG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZS5tZW1iZXIudmFsdWUudmlzaXQodGhp
cyk7Ci0gICAgfQotCi0gICAgdmlzaXRHZW5lcmljTGl0ZXJhbChub2RlKQotICAgIHsKLSAgICAg
ICAgLy8gRklYTUU6IFdoYXQgaGFwcGVucyBpbiB0aGUgY2FzZSBvZiBoYWxmcy9mbG9hdHMvZXRj
Ci0gICAgICAgIHJldHVybiBub2RlLnZhbHVlLnRvU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgdmlz
aXROdWxsTGl0ZXJhbChub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuICJudWxscHRyIjsKLSAg
ICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMRnVuY3Rpb25EZWNsYXJhdGlvbi5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEZ1bmN0aW9uRGVjbGFyYXRpb24u
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzZDljOThlMDUzLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xGdW5jdGlvbkRl
Y2xhcmF0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vLyBFbWl0cyBjb2RlIGZvciB0aGUg
Zmlyc3QgbGluZSBvZiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9yIGRlZmluaXRpb24uCi1jbGFz
cyBNU0xGdW5jdGlvbkRlY2xhcmF0aW9uIHsKLQotICAgIGNvbnN0cnVjdG9yKHByb2dyYW0sIGZ1
bmNNYW5nbGVyLCBmdW5jRGVmLCB0eXBlVW5pZmllciwgdHlwZUF0dHJpYnV0ZXMpCi0gICAgewot
ICAgICAgICB0aGlzLl9wcm9ncmFtID0gcHJvZ3JhbTsKLSAgICAgICAgdGhpcy5fZnVuY01hbmds
ZXIgPSBmdW5jTWFuZ2xlcjsKLSAgICAgICAgdGhpcy5fZnVuYyA9IGZ1bmNEZWY7Ci0gICAgICAg
IHRoaXMuX3R5cGVVbmlmaWVyID0gdHlwZVVuaWZpZXI7Ci0gICAgICAgIHRoaXMuX3R5cGVBdHRy
aWJ1dGVzID0gdHlwZUF0dHJpYnV0ZXM7Ci0gICAgfQotCi0gICAgZ2V0IHByb2dyYW0oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2dyYW07Ci0gICAgfQotCi0gICAgZ2V0IGZ1bmNN
YW5nbGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jTWFuZ2xlcjsKLSAgICB9
Ci0KLSAgICBnZXQgZnVuYygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZnVuYzsKLSAg
ICB9Ci0KLSAgICBnZXQgdHlwZVVuaWZpZXIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3R5cGVVbmlmaWVyOwotICAgIH0KLQotICAgIGdldCB0eXBlQXR0cmlidXRlcygpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fdHlwZUF0dHJpYnV0ZXM7Ci0gICAgfQotCi0gICAgZ2V0IGlz
VmVydGV4U2hhZGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jLnNoYWRlclR5
cGUgPT0gInZlcnRleCI7Ci0gICAgfQotCi0gICAgZ2V0IHBhcmFtTWFwKCkKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgbGV0IGNvdW50ZXIgPSAwOwotICAg
ICAgICBmb3IgKGxldCBwYXJhbSBvZiB0aGlzLl9mdW5jLnBhcmFtZXRlcnMpCi0gICAgICAgICAg
ICBtYXAuc2V0KHBhcmFtLCBgUCR7Y291bnRlcisrfWApOwotICAgICAgICByZXR1cm4gbWFwOwot
ICAgIH0KLQotICAgIGNvbW1lbnRMaW5lKCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHBhcmFtcyA9
IFtdOwotICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiB0aGlzLnBhcmFtTWFwLmtleXMoKSkKLSAg
ICAgICAgICAgIHBhcmFtcy5wdXNoKHBhcmFtLm5hbWUpOwotICAgICAgICByZXR1cm4gYC8vICR7
dGhpcy5fZnVuYy5uYW1lfSgke3BhcmFtcy5qb2luKCIsICIpfSkgQCAke3RoaXMuX2Z1bmMub3Jp
Z2luLm9yaWdpblN0cmluZ31cbmA7Ci0gICAgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAg
ICAgICAgbGV0IGRlY2xMaW5lID0gIiI7Ci0KLSAgICAgICAgaWYgKHRoaXMuaXNTaGFkZXIpCi0g
ICAgICAgICAgICBkZWNsTGluZSArPSBgJHt0aGlzLl9mdW5jLnNoYWRlclR5cGV9IGA7Ci0gICAg
ICAgIGRlY2xMaW5lICs9IGAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZCh0aGlzLl9m
dW5jLnJldHVyblR5cGUpfSBgOwotICAgICAgICBkZWNsTGluZSArPSB0aGlzLl9mdW5jTWFuZ2xl
ci5tYW5nbGUodGhpcy5mdW5jKTsKLSAgICAgICAgZGVjbExpbmUgKz0gIigiCi0KLSAgICAgICAg
bGV0IHBhcmFtcyA9IFtdOwotICAgICAgICBjb25zdCBwYXJhbU1hcCA9IHRoaXMucGFyYW1NYXA7
Ci0gICAgICAgIGZvciAobGV0IHBhcmFtIG9mIHRoaXMuX2Z1bmMucGFyYW1ldGVycykgewotICAg
ICAgICAgICAgbGV0IHBTdHIgPSBgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQocGFy
YW0udHlwZSl9ICR7cGFyYW1NYXAuZ2V0KHBhcmFtKX1gOwotICAgICAgICAgICAgLy8gRklYTUU6
IFRoZSBwYXJzZXIgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCB2ZXJ0ZXggc2hhZGVycyBoYXZp
bmcgdWludCBwYXJhbWV0ZXJzLCBzbyB0aGlzIGRvZXNuJ3Qgd29yay4KLSAgICAgICAgICAgIGlm
ICh0aGlzLnBhcmFtZXRlcklzVmVydGV4SWQocGFyYW0pICYmIHRoaXMuaXNWZXJ0ZXhTaGFkZXIp
Ci0gICAgICAgICAgICAgICAgcFN0ciArPSAiIFtbdmVydGV4X2lkXV0iOwotICAgICAgICAgICAg
ZWxzZSBpZiAodGhpcy5wYXJhbWV0ZXJJc0F0dHJpYnV0ZShwYXJhbSkpCi0gICAgICAgICAgICAg
ICAgcFN0ciArPSAiIFtbc3RhZ2VfaW5dXSI7Ci0gICAgICAgICAgICBwYXJhbXMucHVzaChwU3Ry
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGRlY2xMaW5lICs9IHBhcmFtcy5qb2luKCIsICIpICsg
IikiOwotCi0gICAgICAgIHJldHVybiBkZWNsTGluZTsKLSAgICB9Ci0KLSAgICBnZXQgaXNTaGFk
ZXIoKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgV0hMU0wgImNvbXB1dGUiIHNo
YWRlcnMgKE1TTCBjYWxscyB0aGVzZSBrZXJuZWwgc2hhZGVycykKLSAgICAgICAgcmV0dXJuIHRo
aXMuZnVuYy5zaGFkZXJUeXBlID09PSAidmVydGV4IiB8fCB0aGlzLmZ1bmMuc2hhZGVyVHlwZSA9
PT0gImZyYWdtZW50IjsKLSAgICB9Ci0KLSAgICBwYXJhbWV0ZXJJc0F0dHJpYnV0ZShub2RlKQot
ICAgIHsKLSAgICAgICAgLy8gV2UgY3VycmVudGx5IGFzc3VtaW5nIHRoYXQgYWxsIHBhcmFtZXRl
cnMgdG8gZW50cnkgcG9pbnRzIGFyZSBhdHRyaWJ1dGVzLgotICAgICAgICAvLyBUT0RPOiBCZXR0
ZXIgbG9naWMgZm9yIHRoaXMsIGkuZS4gc3VwcG9ydCBzYW1wbGVycy4KLSAgICAgICAgcmV0dXJu
IHRoaXMuaXNTaGFkZXI7Ci0gICAgfQotCi0gICAgcGFyYW1ldGVySXNWZXJ0ZXhJZChub2RlKQot
ICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXNuJ3QgZmluYWwsIGFuZCBpc24ndCBmb3Jt
YWxseSBzcGVjaWZpZWQgeWV0LgotICAgICAgICByZXR1cm4gdGhpcy5pc1ZlcnRleFNoYWRlciAm
JiBub2RlLm5hbWUgPT0gIndzbF92ZXJ0ZXhJRCIgJiYgbm9kZS50eXBlLm5hbWUgPT0gInVpbnQz
MiI7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEZ1bmN0aW9uRGVmaW5pdGlvbi5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEZ1bmN0aW9uRGVmaW5p
dGlvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg5ZmY5MTU3YmYuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEZ1bmN0
aW9uRGVmaW5pdGlvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1jbGFzcyBNU0xGdW5jdGlvbkRl
ZmluaXRpb24gZXh0ZW5kcyBNU0xGdW5jdGlvbkRlY2xhcmF0aW9uCi17Ci0gICAgdG9TdHJpbmco
KQotICAgIHsKLSAgICAgICAgbGV0IHNyYyA9IHRoaXMuY29tbWVudExpbmUoKSArICJcbiIgKyBz
dXBlci50b1N0cmluZygpOwotICAgICAgICBzcmMgKz0gIlxue1xuIjsKLSAgICAgICAgbGV0IGVt
aXR0ZXIgPSBuZXcgTVNMU3RhdGVtZW50RW1pdHRlcih0aGlzLnByb2dyYW0sIHRoaXMuZnVuY01h
bmdsZXIsIHRoaXMudHlwZVVuaWZpZXIsIHRoaXMuZnVuYywgdGhpcy5wYXJhbU1hcCwgdGhpcy5m
dW5jLm5hbWUsIHRoaXMudHlwZUF0dHJpYnV0ZXMpOwotICAgICAgICBzcmMgKz0gZW1pdHRlci5p
bmRlbnRlZFNvdXJjZSgpOwotICAgICAgICBzcmMgKz0gIn0iOwotICAgICAgICByZXR1cm4gc3Jj
OwotICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xGdW5jdGlvbkZvcndhcmREZWNsYXJh
dGlvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEZ1bmN0aW9u
Rm9yd2FyZERlY2xhcmF0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTI1
NDRjMGRhZS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAt
MSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotY2xhc3MgTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24gZXh0ZW5kcyBNU0xGdW5jdGlv
bkRlY2xhcmF0aW9uCi17Ci0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuY29tbWVudExpbmUoKSArICJcbiIgKyBzdXBlci50b1N0cmluZygpICsgIjsiCi0gICAgfQot
fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEluc2VydFRyYXBQYXJhbWV0ZXIuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xJbnNlcnRUcmFwUGFyYW1ldGVyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTNjNGM4Yzg5My4uMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMSW5zZXJ0VHJhcFBhcmFt
ZXRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1mdW5jdGlvbiBpbnNlcnRUcmFwUGFyYW1ldGVy
KHByb2dyYW0pCi17Ci0gICAgY29uc3QgZnVuY3Rpb25WaXNpdGVkT3JkZXIgPSBbXTsKLSAgICBj
b25zdCBlbnRyeVBvaW50RnVuY3Rpb25zID0gbmV3IFNldCgpOwotICAgIGNsYXNzIEZpbmRFbnRy
eVBvaW50cyBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKG5vZGUuaXNFbnRyeVBvaW50ICYmICFlbnRyeVBvaW50
RnVuY3Rpb25zLmhhcyhub2RlKSkgewotICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRGdW5jdGlv
bnMuYWRkKG5vZGUpOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uVmlzaXRlZE9yZGVyLnB1c2go
bm9kZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcHJvZ3JhbS52aXNp
dChuZXcgRmluZEVudHJ5UG9pbnRzKCkpOwotCi0gICAgY29uc3QgZnVuY3Rpb25zQ2FsbGVkQnlF
bnRyeVBvaW50cyA9IG5ldyBTZXQoKTsKLSAgICBjbGFzcyBGaW5kRnVuY3Rpb25zQ2FsbGVkQnlF
bnRyeVBvaW50cyBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9u
KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24o
bm9kZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5mdW5jIGluc3RhbmNlb2YgRnVuY0RlZiAmJiAh
ZnVuY3Rpb25zQ2FsbGVkQnlFbnRyeVBvaW50cy5oYXMobm9kZS5mdW5jKSkgewotICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uc0NhbGxlZEJ5RW50cnlQb2ludHMuYWRkKG5vZGUuZnVuYyk7Ci0gICAg
ICAgICAgICAgICAgZnVuY3Rpb25WaXNpdGVkT3JkZXIucHVzaChub2RlLmZ1bmMpOwotICAgICAg
ICAgICAgICAgIG5vZGUuZnVuYy52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0KLSAgICBmb3IgKGxldCBlbnRyeVBvaW50IG9mIGVudHJ5UG9pbnRGdW5jdGlvbnMp
Ci0gICAgICAgIGVudHJ5UG9pbnQudmlzaXQobmV3IEZpbmRGdW5jdGlvbnNDYWxsZWRCeUVudHJ5
UG9pbnRzKCkpOwotCi0gICAgZm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRyeVBvaW50RnVuY3Rp
b25zKSB7Ci0gICAgICAgIGNvbnN0IHRyYXBWYXJpYWJsZSA9IG5ldyBWYXJpYWJsZURlY2woZW50
cnlQb2ludC5vcmlnaW4sIG51bGwsIHByb2dyYW0udHlwZXMuZ2V0KCJib29sIiksIG5ldyBCb29s
TGl0ZXJhbChlbnRyeVBvaW50Lm9yaWdpbiwgdHJ1ZSkpOwotICAgICAgICBlbnRyeVBvaW50LmJv
ZHkuc3RhdGVtZW50cy51bnNoaWZ0KHRyYXBWYXJpYWJsZSk7Ci0gICAgICAgIGVudHJ5UG9pbnQu
X3RyYXBQb2ludGVyRXhwcmVzc2lvbiA9IG5ldyBNYWtlUHRyRXhwcmVzc2lvbihlbnRyeVBvaW50
Lm9yaWdpbiwgVmFyaWFibGVSZWYud3JhcCh0cmFwVmFyaWFibGUpKTsKLSAgICB9Ci0KLSAgICBm
b3IgKGxldCBmdW5jIG9mIGZ1bmN0aW9uc0NhbGxlZEJ5RW50cnlQb2ludHMpIHsKLSAgICAgICAg
Y29uc3QgdHJhcFBhcmFtZXRlciA9IG5ldyBGdW5jUGFyYW1ldGVyKGZ1bmMub3JpZ2luLCBudWxs
LCBuZXcgUHRyVHlwZShmdW5jLm9yaWdpbiwgInRocmVhZCIsIFR5cGVSZWYud3JhcChwcm9ncmFt
LnR5cGVzLmdldCgiYm9vbCIpKSkpOwotICAgICAgICBmdW5jLnBhcmFtZXRlcnMucHVzaCh0cmFw
UGFyYW1ldGVyKTsKLSAgICAgICAgZnVuYy5fdHJhcFBvaW50ZXJFeHByZXNzaW9uID0gVmFyaWFi
bGVSZWYud3JhcCh0cmFwUGFyYW1ldGVyKTsKLSAgICB9Ci0KLSAgICBjb25zdCB2aXNpdGVkRnVu
Y3Rpb25zID0gbmV3IFNldCgpOwotICAgIGNsYXNzIFVwZGF0ZUNhbGxFeHByZXNzaW9ucyBleHRl
bmRzIFZpc2l0b3IgewotICAgICAgICBjb25zdHJ1Y3RvcihjYWxsZXIpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICB0aGlzLl9jYWxsZXIgPSBjYWxsZXI7Ci0g
ICAgICAgICAgICBpZiAoIXZpc2l0ZWRGdW5jdGlvbnMuaGFzKHRoaXMuX2NhbGxlcikpIHsKLSAg
ICAgICAgICAgICAgICB2aXNpdGVkRnVuY3Rpb25zLmFkZCh0aGlzLl9jYWxsZXIpOwotICAgICAg
ICAgICAgICAgIGNhbGxlci52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
Ci0gICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgewotICAgICAgICAg
ICAgc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKLSAgICAgICAgICAgIGlmIChub2Rl
LmZ1bmMgaW5zdGFuY2VvZiBGdW5jRGVmKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS5hcmd1bWVu
dExpc3QucHVzaCh0aGlzLl9jYWxsZXIuX3RyYXBQb2ludGVyRXhwcmVzc2lvbik7Ci0gICAgICAg
ICAgICAgICAgbmV3IFVwZGF0ZUNhbGxFeHByZXNzaW9ucyhub2RlLmZ1bmMpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRy
eVBvaW50RnVuY3Rpb25zKQotICAgICAgICBuZXcgVXBkYXRlQ2FsbEV4cHJlc3Npb25zKGVudHJ5
UG9pbnQpOwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvTVNMTmFtZU1hbmdsZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9NU0xOYW1lTWFuZ2xlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlhMzBk
ZjkxZjguLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL01TTE5hbWVNYW5nbGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLWNsYXNzIE1TTE5hbWVN
YW5nbGVyIHsKLQotICAgIGNvbnN0cnVjdG9yKHByZWZpeCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X3ByZWZpeCA9IHByZWZpeDsKLSAgICAgICAgdGhpcy5fY291bnRlciA9IDA7Ci0gICAgICAgIHRo
aXMuX21hbmdsZWROYW1lTWFwID0gbmV3IE1hcCgpOwotICAgIH0KLQotICAgIG1hbmdsZShrZXkp
Ci0gICAgewotICAgICAgICBpZiAoIXRoaXMuX21hbmdsZWROYW1lTWFwLmhhcyhrZXkpKQotICAg
ICAgICAgICAgdGhpcy5fbWFuZ2xlZE5hbWVNYXAuc2V0KGtleSwgYCR7dGhpcy5fcHJlZml4fSR7
dGhpcy5fY291bnRlcisrfWApOwotICAgICAgICByZXR1cm4gdGhpcy5fbWFuZ2xlZE5hbWVNYXAu
Z2V0KGtleSk7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTE5hdGl2ZUZ1bmN0aW9u
Q2FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTE5hdGl2ZUZ1
bmN0aW9uQ2FsbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFiODcxN2ZjZDEu
LjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01T
TE5hdGl2ZUZ1bmN0aW9uQ2FsbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0idXNlIHN0cmljdCI7
Ci0KLWZ1bmN0aW9uIG1zbE5hdGl2ZUZ1bmN0aW9uQ2FsbChub2RlLCByZXN1bHRWYXJpYWJsZSwg
YXJncykKLXsKLSAgICBjb25zdCBrZXkgPSBub2RlLnRvU3RyaW5nKCk7Ci0KLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRoZSBzYW1wbGluZyBmdW5jdGlvbnMuCi0gICAgLy8gRklYTUU6IEltcGxl
bWVudCBmdW5jdGlvbnMgbGlrZSBmMTZ0b2YzMiwgYXNmbG9hdCwgZXRjLgotICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGVzdHMgZm9yIGFsbCBuYXRpdmUgZnVuY3Rpb25zIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk1MzUuCi0gICAgY29uc3QgZnVuY3Rpb25zV2l0
aFRoZVNhbWVDYWxsaW5nQ29udmVudGlvbiA9IHsKLSAgICAgICAgIm5hdGl2ZSBib29sIGlzZmlu
aXRlKGZsb2F0KSIgOiAiaXNmaW5pdGUiLAotICAgICAgICAibmF0aXZlIGJvb2wgaXNpbmYoZmxv
YXQpIiA6ICJpc2luZiIsCi0gICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChmbG9hdCkiIDog
Imlzbm9ybWFsIiwKLSAgICAgICAgIm5hdGl2ZSBib29sIGlzbm9ybWFsKGhhbGYpIiA6ICJpc25v
cm1hbCIsCi0gICAgICAgICJuYXRpdmUgZmxvYXQgYWNvcyhmbG9hdCkiIDogImFjb3MiLAotICAg
ICAgICAibmF0aXZlIGZsb2F0IGFzZmxvYXQoaW50KSIgOiAic3RhdGljX2Nhc3Q8ZmxvYXQ+IiwK
LSAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2Zsb2F0KHVpbnQpIiA6ICJzdGF0aWNfY2FzdDxmbG9h
dD4iLAotICAgICAgICAibmF0aXZlIGludCBhc2ludChmbG9hdCkiIDogInN0YXRpY19jYXN0PGlu
dD4iLAotICAgICAgICAibmF0aXZlIHVpbnQgYXN1aW50KGZsb2F0KSIgOiAic3RhdGljX2Nhc3Q8
dWludD4iLAotICAgICAgICAibmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpIiA6ICJhc2luIiwKLSAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBhdGFuKGZsb2F0KSIgOiAiYXRhbiIsCi0gICAgICAgICJuYXRp
dmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiA6ICJhdGFuMiIsCi0gICAgICAgICJuYXRpdmUg
ZmxvYXQgY2VpbChmbG9hdCkiIDogImNlaWwiLAotICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhm
bG9hdCkiIDogImNvcyIsCi0gICAgICAgICJuYXRpdmUgZmxvYXQgY29zaChmbG9hdCkiIDogImNv
c2giLAotICAgICAgICAibmF0aXZlIGZsb2F0IGRkeChmbG9hdCkiIDogImRmZHgiLAotICAgICAg
ICAibmF0aXZlIGZsb2F0IGRkeShmbG9hdCkiIDogImRmZHkiLAotICAgICAgICAibmF0aXZlIGZs
b2F0IGV4cChmbG9hdCkiIDogImV4cCIsCi0gICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxv
YXQpIiA6ICJmbG9vciIsCi0gICAgICAgICJuYXRpdmUgZmxvYXQgbG9nKGZsb2F0KSIgOiAibG9n
IiwKLSAgICAgICAgIm5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQpIiA6ICJwb3ciLAotICAg
ICAgICAibmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KSIgOiAicm91bmQiLAotICAgICAgICAibmF0
aXZlIGZsb2F0IHNpbihmbG9hdCkiIDogInNpbiIsCi0gICAgICAgICJuYXRpdmUgZmxvYXQgc2lu
aChmbG9hdCkiIDogInNpbmgiLAotICAgICAgICAibmF0aXZlIGZsb2F0IHNxcnQoZmxvYXQpIiA6
ICJzcXJ0IiwKLSAgICAgICAgIm5hdGl2ZSBmbG9hdCB0YW4oZmxvYXQpIiA6ICJ0YW4iLAotICAg
ICAgICAibmF0aXZlIGZsb2F0IHRhbmgoZmxvYXQpIiA6ICJ0YW5oIiwKLSAgICAgICAgIm5hdGl2
ZSBmbG9hdCB0cnVuYyhmbG9hdCkiIDogInRydW5jIiwKLSAgICB9OwotCi0gICAgaWYgKGtleSBp
biBmdW5jdGlvbnNXaXRoVGhlU2FtZUNhbGxpbmdDb252ZW50aW9uKSB7Ci0gICAgICAgIGNvbnN0
IGNhbGxTdHJpbmcgPSBgJHtmdW5jdGlvbnNXaXRoVGhlU2FtZUNhbGxpbmdDb252ZW50aW9uW2tl
eV19KCR7YXJncy5qb2luKCIsICIpfSlgOwotICAgICAgICBpZiAocmVzdWx0VmFyaWFibGUpCi0g
ICAgICAgICAgICByZXR1cm4gYCR7cmVzdWx0VmFyaWFibGV9ID0gJHtjYWxsU3RyaW5nfTtgOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gYCR7Y2FsbFN0cmluZ307YDsKLSAgICB9
Ci0KLSAgICBjb25zdCBmdW5jdGlvbnNXaXRoRGlmZmVyZW50Q2FsbGluZ0NvbnZlbnRpb25zID0g
ewotICAgICAgICAibmF0aXZlIHVpbnQgZjMydG9mMTYoZmxvYXQpIiA6ICgpID0+IGAke3Jlc3Vs
dFZhcmlhYmxlfSA9IHVpbnQoc3RhdGljX2Nhc3Q8dXNob3J0PihoYWxmKCR7YXJnc1swXX0pKSk7
YCwKLSAgICAgICAgIm5hdGl2ZSBmbG9hdCBmMTZ0b2YzMih1aW50KSIgOiAoKSA9PiBgJHtyZXN1
bHRWYXJpYWJsZX0gPSBmbG9hdChzdGF0aWNfY2FzdDxoYWxmPih1c2hvcnQoJHthcmdzWzBdfSkp
KTtgCi0gICAgfTsKLSAgICBpZiAoa2V5IGluIGZ1bmN0aW9uc1dpdGhEaWZmZXJlbnRDYWxsaW5n
Q29udmVudGlvbnMpCi0gICAgICAgIHJldHVybiBmdW5jdGlvbnNXaXRoRGlmZmVyZW50Q2FsbGlu
Z0NvbnZlbnRpb25zW2tleV0oKTsKLQotICAgIHRocm93IG5ldyBFcnJvcihgJHtub2RlfSBkb2Vz
bid0IGhhdmUgbWFwcGluZyB0byBhIG5hdGl2ZSBNZXRhbCBmdW5jdGlvbi5gKTsKLX0KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9NU0xTdGF0ZW1lbnRFbWl0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvTVNMU3RhdGVtZW50RW1pdHRlci5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDFhMWE0MTk1ZDQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTFN0YXRlbWVudEVtaXR0ZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw4MTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLWNsYXNzIE1TTFN0YXRlbWVudEVtaXR0ZXIgZXh0ZW5kcyBWaXNpdG9yIHsK
LQotICAgIGNvbnN0cnVjdG9yKHByb2dyYW0sIGZ1bmNNYW5nbGVyLCB0eXBlVW5pZmllciwgZnVu
YywgcGFyYW1NYXAsIGRlYnVnTmFtZSwgdHlwZUF0dHJpYnV0ZXMpCi0gICAgewotICAgICAgICBz
dXBlcigpOwotICAgICAgICB0aGlzLl9wcm9ncmFtID0gcHJvZ3JhbTsKLSAgICAgICAgdGhpcy5f
ZnVuY01hbmdsZXIgPSBmdW5jTWFuZ2xlcjsKLSAgICAgICAgdGhpcy5fdHlwZVVuaWZpZXIgPSB0
eXBlVW5pZmllcjsKLSAgICAgICAgdGhpcy5fZnVuYyA9IGZ1bmM7Ci0gICAgICAgIHRoaXMuX25h
bWVNYXAgPSBwYXJhbU1hcDsKLSAgICAgICAgdGhpcy5fZGVidWdOYW1lID0gZGVidWdOYW1lOwot
ICAgICAgICB0aGlzLl90eXBlQXR0cmlidXRlcyA9IHR5cGVBdHRyaWJ1dGVzOwotICAgICAgICB0
aGlzLl9jb3VudGVyID0gMDsKLSAgICAgICAgdGhpcy5faW5kZW50TGV2ZWwgPSAwOwotICAgICAg
ICB0aGlzLl9saW5lcyA9IFtdOwotCi0gICAgICAgIHRoaXMuX2xvb3BDb25kaXRpb25WYXJpYWJs
ZVN0YWNrID0gW107Ci0gICAgICAgIHRoaXMuX2xvb3BDb25kaXRpb25Ob2RlU3RhY2sgPSBbXTsK
LSAgICAgICAgdGhpcy5fbG9vcEluY3JlbWVudE5vZGVTdGFjayA9IFtdOwotCi0gICAgICAgIHRo
aXMuX2FjdHVhbFJlc3VsdCA9IHRoaXMuX2Z1bmMudmlzaXQodGhpcyk7Ci0gICAgfQotCi0gICAg
X2VtaXRUcmFwKCkKLSAgICB7Ci0gICAgICAgIC8vIE5vIG5lZWQgdG8gdXBkYXRlIHRoaXMgaWYg
aW4gYW4gZW50cnkgcG9pbnQsIHdlIGNhbiBqdXN0IHJldHVybiB6ZXJvLgotICAgICAgICBpZiAo
IXRoaXMuX2Z1bmMuaXNFbnRyeVBvaW50KQotICAgICAgICAgICAgdGhpcy5fYWRkKGAqKCR7dGhp
cy5fZnVuYy5fdHJhcFBvaW50ZXJFeHByZXNzaW9uLnZpc2l0KHRoaXMpfSkgPSBmYWxzZTtgKTsK
LSAgICAgICAgdGhpcy5fZW1pdFRyYXBSZXR1cm4oKTsKLSAgICB9Ci0KLSAgICBfZW1pdFRyYXBS
ZXR1cm4oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2Z1bmMucmV0dXJuVHlwZS5lcXVhbHMo
dGhpcy5fcHJvZ3JhbS5pbnRyaW5zaWNzLnZvaWQpKQotICAgICAgICAgICAgdGhpcy5fYWRkKCdy
ZXR1cm47Jyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9m
cmVzaCgpOwotICAgICAgICAgICAgdGhpcy5fYWRkKGAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1
ZVR5cGVJZCh0aGlzLl9mdW5jLnJldHVyblR5cGUpfSAke2lkfTtgKTsKLSAgICAgICAgICAgIHRo
aXMuX3plcm9Jbml0aWFsaXplKHRoaXMuX2Z1bmMucmV0dXJuVHlwZSwgaWQpOwotICAgICAgICAg
ICAgdGhpcy5fYWRkKGByZXR1cm4gJHtpZH07YCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBf
emVyb0luaXRpYWxpemUodHlwZSwgdmFyaWFibGVOYW1lLCBhbGxvd0NvbW1lbnQgPSB0cnVlKQot
ICAgIHsKLSAgICAgICAgY29uc3QgZW1pdHRlciA9IHRoaXM7Ci0KLSAgICAgICAgY2xhc3MgWmVy
b0luaXRpYWxpemVyIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICB2aXNpdE5hdGl2ZVR5
cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5uYW1lID09
ICJib29sIikKLSAgICAgICAgICAgICAgICAgICAgZW1pdHRlci5fYWRkKGAke3ZhcmlhYmxlTmFt
ZX0gPSBmYWxzZTtgKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IGVtaXR0ZXIuX2FkZChgJHt2YXJpYWJsZU5hbWV9ID0gMDtgKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgdmlzaXRQdHJUeXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgZW1pdHRlci5fYWRkKGAke3ZhcmlhYmxlTmFtZX0gPSBudWxscHRyO2ApOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdEFycmF5VHlwZShub2RlKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5udW1FbGVtZW50cy52
YWx1ZTsgaSsrKQotICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLl96ZXJvSW5pdGlhbGl6ZShu
b2RlLmVsZW1lbnRUeXBlLCBgJHt2YXJpYWJsZU5hbWV9WyR7aX1dYCwgZmFsc2UpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdEFycmF5UmVmVHlwZShub2RlKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIGVtaXR0ZXIuX2FkZChgJHt2YXJpYWJsZU5hbWV9LnB0ciA9
IG51bGxwdHI7YCk7Ci0gICAgICAgICAgICAgICAgZW1pdHRlci5fYWRkKGAke3ZhcmlhYmxlTmFt
ZX0ubGVuZ3RoID0gMDtgKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRFbnVt
VHlwZShub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGVtaXR0ZXIuX3plcm9J
bml0aWFsaXplKG5vZGUuYmFzZVR5cGUsIHZhcmlhYmxlTmFtZSwgZmFsc2UpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBjb25zdCB0eXBlQXR0cmlidXRlcyA9IGVtaXR0ZXIuX3R5cGVBdHRy
aWJ1dGVzLmF0dHJpYnV0ZXNGb3JUeXBlKG5vZGUpOwotCi0gICAgICAgICAgICAgICAgZm9yIChs
ZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgZmll
bGROYW1lID0gdHlwZUF0dHJpYnV0ZXMubWFuZ2xlZEZpZWxkTmFtZShmaWVsZC5uYW1lKTsKLSAg
ICAgICAgICAgICAgICAgICAgZW1pdHRlci5femVyb0luaXRpYWxpemUoZmllbGQudHlwZSwgYCR7
dmFyaWFibGVOYW1lfS4ke2ZpZWxkTmFtZX1gLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50TmFtZXMgPSBbICJ4IiwgInki
LCAieiIsICJ3IiBdOwotICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5u
dW1FbGVtZW50c1ZhbHVlOyBpKyspCi0gICAgICAgICAgICAgICAgICAgIGVtaXR0ZXIuX2FkZChg
JHt2YXJpYWJsZU5hbWV9LiR7ZWxlbWVudE5hbWVzW2ldfSA9IDA7YCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5udW1Sb3dzVmFsdWU7IGkrKykg
ewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG5vZGUubnVtUm93c1Zh
bHVlOyBqKyspCi0gICAgICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLl96ZXJvSW5pdGlhbGl6
ZShub2RlLmVsZW1lbnRUeXBlLCBgJHt2YXJpYWJsZU5hbWV9WyR7aX1dWyR7an1dYCwgZmFsc2Up
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRU
eXBlUmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbm9kZS50eXBlLnZp
c2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChhbGxvd0Nv
bW1lbnQpCi0gICAgICAgICAgICB0aGlzLl9hZGQoYC8vIFplcm8gaW5pdGlhbGl6YXRpb24gb2Yg
JHt2YXJpYWJsZU5hbWV9YCk7Ci0gICAgICAgIE5vZGUudmlzaXQodHlwZSwgbmV3IFplcm9Jbml0
aWFsaXplcigpKTsKLSAgICB9Ci0KLSAgICBnZXQgYWN0dWFsUmVzdWx0KCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9hY3R1YWxSZXN1bHQ7Ci0gICAgfQotCi0gICAgZ2V0IGxpbmVzKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9saW5lczsKLSAgICB9Ci0KLSAgICBpbmRlbnRl
ZFNvdXJjZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGluZXMubWFwKGxpbmUgPT4g
IiAgICAiICsgbGluZSArICJcbiIpLmpvaW4oIiIpOwotICAgIH0KLQotICAgIGdldCBfbG9vcENv
bmRpdGlvblZhcmlhYmxlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9sb29wQ29uZGl0
aW9uVmFyaWFibGVTdGFja1t0aGlzLl9sb29wQ29uZGl0aW9uVmFyaWFibGVTdGFjay5sZW5ndGgg
LSAxXTsKLSAgICB9Ci0KLSAgICBnZXQgX2xvb3BDb25kaXRpb24oKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2xvb3BDb25kaXRpb25Ob2RlU3RhY2tbdGhpcy5fbG9vcENvbmRpdGlvbk5v
ZGVTdGFjay5sZW5ndGggLSAxXTsKLSAgICB9Ci0KLSAgICBnZXQgX2xvb3BJbmNyZW1lbnQoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2xvb3BJbmNyZW1lbnROb2RlU3RhY2tbdGhpcy5f
bG9vcEluY3JlbWVudE5vZGVTdGFjay5sZW5ndGggLSAxXTsKLSAgICB9Ci0KLSAgICBfYWRkKGxp
bmVzU3RyaW5nKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgbGluZSBvZiBsaW5lc1N0cmluZy5z
cGxpdCgnXG4nKSkgewotICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9pbmRl
bnRMZXZlbDsgaSsrKQotICAgICAgICAgICAgICAgIGxpbmUgPSAiICAgICIgKyBsaW5lOwotICAg
ICAgICAgICAgdGhpcy5fbGluZXMucHVzaChsaW5lKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IF9hZGRMaW5lcyhsaW5lcykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGxpbmUgb2YgbGluZXMp
Ci0gICAgICAgICAgICB0aGlzLl9hZGQobGluZSk7Ci0gICAgfQotCi0gICAgX2ZyZXNoKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBgViR7dGhpcy5fY291bnRlcisrfWA7Ci0gICAgfQotCi0gICAg
X2luZGVudChjbG9zdXJlKQotICAgIHsKLSAgICAgICAgdGhpcy5faW5kZW50TGV2ZWwrKzsKLSAg
ICAgICAgY29uc3QgcmVzdWx0ID0gY2xvc3VyZSgpOwotICAgICAgICB0aGlzLl9pbmRlbnRMZXZl
bC0tOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIC8vIEF0b21pYyBzdGF0
ZW1lbnRzLgotCi0gICAgdmlzaXRCcmVhayhub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYWRk
KCJicmVhazsiKQotICAgIH0KLQotICAgIHZpc2l0Q29udGludWUobm9kZSkKLSAgICB7Ci0gICAg
ICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgZm9yIGxvb3BzIGFyZSBjb21waWxlZCBh
cyB3aGlsZSBsb29wcywgc28gd2UgbmVlZCB0byBkbwotICAgICAgICAvLyB0aGUgbG9vcCBpbmNy
ZW1lbnQgYW5kIGNvbmRpdGlvbiBjaGVjayBiZWZvcmUgcmV0dXJuaW5nIHRvIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIGxvb3AuCi0gICAgICAgIHRoaXMuX2VtaXRMb29wQm9keUVuZCgpOwotICAgICAg
ICB0aGlzLl9hZGQoImNvbnRpbnVlOyIpOwotICAgIH0KLQotICAgIC8vIEJhc2ljIGNvbXBvdW5k
IHN0YXRlbWVudHMuCi0KLSAgICB2aXNpdEJsb2NrKGJsb2NrKQotICAgIHsKLSAgICAgICAgZm9y
IChsZXQgc3RhdGVtZW50IG9mIGJsb2NrLnN0YXRlbWVudHMpIHsKLSAgICAgICAgICAgIHRoaXMu
X2FkZChgLy8gJHt0aGlzLl9kZWJ1Z05hbWV9IEAgJHtzdGF0ZW1lbnQub3JpZ2luLm9yaWdpblN0
cmluZ31gKTsKLSAgICAgICAgICAgIHN0YXRlbWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIHZpc2l0UmV0dXJuKG5vZGUpCi0gICAgewotICAgICAgICBpZiAobm9kZS52
YWx1ZSkKLSAgICAgICAgICAgIHRoaXMuX2FkZChgcmV0dXJuICR7bm9kZS52YWx1ZS52aXNpdCh0
aGlzKX07YCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX2FkZChgcmV0dXJuO2Ap
OwotICAgIH0KLQotICAgIF92aXNpdEFuZEluZGVudChub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX2luZGVudCgoKSA9PiBub2RlLnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0KLSAgICB2
aXNpdElmU3RhdGVtZW50KG5vZGUpCi0gICAgewotICAgICAgICBsZXQgY29uZGl0aW9uID0gbm9k
ZS5jb25kaXRpb25hbC52aXNpdCh0aGlzKTsKLSAgICAgICAgdGhpcy5fYWRkKGBpZiAoJHtjb25k
aXRpb259KSB7YCk7Ci0gICAgICAgIHRoaXMuX3Zpc2l0QW5kSW5kZW50KG5vZGUuYm9keSk7Ci0g
ICAgICAgIGlmIChub2RlLmVsc2VCb2R5KSB7Ci0gICAgICAgICAgICB0aGlzLl9hZGQoYH0gZWxz
ZSB7YCk7Ci0gICAgICAgICAgICB0aGlzLl92aXNpdEFuZEluZGVudChub2RlLmVsc2VCb2R5KTsK
LSAgICAgICAgICAgIHRoaXMuX2FkZCgnfScpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IHRoaXMuX2FkZCgnfScpOwotICAgIH0KLQotICAgIHZpc2l0SWRlbnRpdHlFeHByZXNzaW9uKG5v
ZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZS50YXJnZXQudmlzaXQodGhpcyk7Ci0gICAg
fQotCi0gICAgdmlzaXRMb2dpY2FsTm90KG5vZGUpCi0gICAgewotICAgICAgICBjb25zdCB0eXBl
ID0gdHlwZU9mKG5vZGUpOwotICAgICAgICBsZXQgZXhwciA9IE5vZGUudmlzaXQobm9kZS5vcGVy
YW5kLCB0aGlzKTsKLSAgICAgICAgbGV0IGlkID0gdGhpcy5fZnJlc2goKTsKLSAgICAgICAgdGhp
cy5fYWRkKGAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZCh0eXBlKX0gJHtpZH07YCk7
Ci0gICAgICAgIHRoaXMuX2FkZChgJHtpZH0gPSAhKCR7ZXhwcn0pO2ApOwotICAgICAgICByZXR1
cm4gaWQ7Ci0gICAgfQotCi0gICAgdmlzaXREZXJlZmVyZW5jZUV4cHJlc3Npb24obm9kZSkKLSAg
ICB7Ci0gICAgICAgIGNvbnN0IHB0ciA9IG5vZGUucHRyLnZpc2l0KHRoaXMpOwotICAgICAgICB0
aGlzLl9hZGQoYGlmICghJHtwdHJ9KSB7YCk7Ci0gICAgICAgIHRoaXMuX2luZGVudCgoKSA9PiB0
aGlzLl9lbWl0VHJhcCgpKTsKLSAgICAgICAgdGhpcy5fYWRkKCd9Jyk7Ci0gICAgICAgIGNvbnN0
IGlkID0gdGhpcy5fZnJlc2goKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke3RoaXMuX3R5cGVVbmlm
aWVyLnVuaXF1ZVR5cGVJZChub2RlLnR5cGUpfSAke2lkfTtgKTsKLSAgICAgICAgdGhpcy5fZW1p
dE1lbUNvcHkobm9kZS50eXBlLCBpZCwgYCgqJHtwdHJ9KWApOwotICAgICAgICByZXR1cm4gaWQ7
Ci0gICAgfQotCi0gICAgX2lzT3BlcmF0b3JBbmRlcihub2RlKQotICAgIHsKLSAgICAgICAgY29u
c3QgYW5kZXJSZWdleCA9IC9eb3BlcmF0b3JcJlwuKC4qPykkLzsKLSAgICAgICAgcmV0dXJuIG5v
ZGUgaW5zdGFuY2VvZiBOYXRpdmVGdW5jICYmIGFuZGVyUmVnZXgudGVzdChub2RlLm5hbWUpOwot
ICAgIH0KLQotICAgIF9pc09wZXJhdG9yR2V0dGVyKG5vZGUpCi0gICAgewotICAgICAgICBjb25z
dCBnZXR0ZXJSZWdleCA9IC9eb3BlcmF0b3JcLiguKj8pJC87Ci0gICAgICAgIHJldHVybiBub2Rl
IGluc3RhbmNlb2YgTmF0aXZlRnVuYyAmJiBnZXR0ZXJSZWdleC50ZXN0KG5vZGUubmFtZSk7Ci0g
ICAgfQotCi0gICAgX2lzT3BlcmF0b3JJbmRleGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1
cm4gbm9kZSBpbnN0YW5jZW9mIE5hdGl2ZUZ1bmMgJiYgbm9kZS5uYW1lID09ICJvcGVyYXRvciZb
XSI7Ci0gICAgfQotCi0gICAgX2lzT3BlcmF0b3JTZXR0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAg
IGNvbnN0IHNldHRlclJlZ2V4ID0gL15vcGVyYXRvclwuKC4qPyk9JC87Ci0gICAgICAgIHJldHVy
biBub2RlIGluc3RhbmNlb2YgTmF0aXZlRnVuYyAmJiBzZXR0ZXJSZWdleC50ZXN0KG5vZGUubmFt
ZSkKLSAgICB9Ci0KLSAgICBfaXNPcGVyYXRvckNhc3Qobm9kZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBub2RlIGluc3RhbmNlb2YgTmF0aXZlRnVuYyAmJiBub2RlLm5hbWUgPT0gIm9wZXJhdG9y
IGNhc3QiOwotICAgIH0KLQotICAgIF9pc1VuYXJ5T3BlcmF0b3Iobm9kZSkKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IG9wZXJhdG9yUmVnZXggPSAvXm9wZXJhdG9yXH4kLzsKLSAgICAgICAgcmV0dXJu
IG5vZGUgaW5zdGFuY2VvZiBOYXRpdmVGdW5jICYmIG9wZXJhdG9yUmVnZXgudGVzdChub2RlLm5h
bWUpOwotICAgIH0KLQotICAgIF9pc0JpbmFyeU9wZXJhdG9yKG5vZGUpCi0gICAgewotICAgICAg
ICBjb25zdCBvcGVyYXRvclJlZ2V4ID0gL29wZXJhdG9yKFwrfFwtfFwqfFwvfFxefFwmfFx8fFwm
XCZ8XHxcfHxcPFw8fFw+XD58XDx8XDxcPXxcPnxcPlw9fFw9XD18XCFcPSkkLzsKLSAgICAgICAg
cmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBOYXRpdmVGdW5jICYmIG9wZXJhdG9yUmVnZXgudGVzdChu
b2RlLm5hbWUpOwotICAgIH0KLQotICAgIF9pc09wZXJhdG9yVmFsdWUobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBub2RlIGluc3RhbmNlb2YgTmF0aXZlRnVuYyAmJiBub2RlLm5hbWUgPT0g
Im9wZXJhdG9yLnZhbHVlIjsKLSAgICB9Ci0KLSAgICBfaXNPcGVyYXRvckxlbmd0aChub2RlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBOYXRpdmVGdW5jICYmIG5vZGUu
bmFtZSA9PSAib3BlcmF0b3IubGVuZ3RoIjsKLSAgICB9Ci0KLSAgICBfZXh0cmFjdE9wZXJhdG9y
TmFtZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUubmFtZS5zdWJzdHJpbmcoIm9w
ZXJhdG9yIi5sZW5ndGgpOwotICAgIH0KLQotICAgIHZpc2l0VmFyaWFibGVEZWNsKG5vZGUpCi0g
ICAgewotICAgICAgICBsZXQgaWQgPSB0aGlzLl9mcmVzaCgpOwotICAgICAgICB0aGlzLl9uYW1l
TWFwLnNldChub2RlLCBpZCk7Ci0KLSAgICAgICAgdGhpcy5fYWRkKGAke3RoaXMuX3R5cGVVbmlm
aWVyLnVuaXF1ZVR5cGVJZChub2RlLnR5cGUpfSAke2lkfTsgLy8gJHtub2RlfWApOwotCi0gICAg
ICAgIGlmIChub2RlLmluaXRpYWxpemVyKSB7Ci0gICAgICAgICAgICBsZXQgZXhwciA9IG5vZGUu
aW5pdGlhbGl6ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9lbWl0TWVtQ29weSh0
eXBlT2Yobm9kZSksIGlkLCBleHByKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB0aGlz
Ll96ZXJvSW5pdGlhbGl6ZShub2RlLnR5cGUsIGlkKTsKLSAgICB9Ci0KLSAgICB2aXNpdFZhcmlh
YmxlUmVmKG5vZGUpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX25hbWVNYXAuaGFzKG5vZGUu
dmFyaWFibGUpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25vZGUudmFyaWFibGV9
IG5vdCBmb3VuZCBpbiB0aGlzIGZ1bmN0aW9uJ3MgKCR7dGhpcy5fZnVuYy5uYW1lfSkgdmFyaWFi
bGUgbWFwYCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9uYW1lTWFwLmdldChub2RlLnZhcmlhYmxl
KTsKLSAgICB9Ci0KLSAgICB2aXNpdE1ha2VBcnJheVJlZkV4cHJlc3Npb24obm9kZSkKLSAgICB7
Ci0gICAgICAgIGNvbnN0IGVsZW1OYW1lID0gdGhpcy5fZW1pdEFzTFZhbHVlKG5vZGUubFZhbHVl
KTsKLSAgICAgICAgY29uc3QgYXJyYXlUeXBlID0gdHlwZU9mKG5vZGUubFZhbHVlKTsKLSAgICAg
ICAgY29uc3QgaWQgPSB0aGlzLl9mcmVzaCgpOwotICAgICAgICB0aGlzLl9hZGQoYCR7dGhpcy5f
dHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKG5vZGUudHlwZSl9ICR7aWR9O2ApOwotICAgICAgICB0
aGlzLl9hZGQoYCR7aWR9Lmxlbmd0aCA9ICR7bm9kZS5udW1FbGVtZW50cy52YWx1ZX07YCk7Ci0g
ICAgICAgIGlmIChhcnJheVR5cGUuaXNBcnJheSkKLSAgICAgICAgICAgIHRoaXMuX2FkZChgJHtp
ZH0ucHRyID0gJHtlbGVtTmFtZX07YCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMu
X2FkZChgJHtpZH0ucHRyID0gJigke2VsZW1OYW1lfSk7YCk7Ci0gICAgICAgIHJldHVybiBpZDsK
LSAgICB9Ci0KLSAgICB2aXNpdENvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbihub2RlKQot
ICAgIHsKLSAgICAgICAgY29uc3QgbFZhbHVlID0gdGhpcy5fZW1pdEFzTFZhbHVlKG5vZGUubFZh
bHVlKTsKLSAgICAgICAgY29uc3QgdHlwZSA9IHR5cGVPZihub2RlKTsKLSAgICAgICAgY29uc3Qg
aWQgPSB0aGlzLl9mcmVzaCgpOwotICAgICAgICB0aGlzLl9hZGQoYCR7dGhpcy5fdHlwZVVuaWZp
ZXIudW5pcXVlVHlwZUlkKHR5cGUpfSAke2lkfTtgKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke2lk
fS5sZW5ndGggPSAxO2ApOwotICAgICAgICB0aGlzLl9hZGQoYCR7aWR9LnB0ciA9ICR7bFZhbHVl
fTtgKTsKLSAgICAgICAgcmV0dXJuIGlkOwotICAgIH0KLQotICAgIHZpc2l0QW5vbnltb3VzVmFy
aWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBpZCA9IHRoaXMuX2ZyZXNoKCk7Ci0gICAg
ICAgIHRoaXMuX25hbWVNYXAuc2V0KG5vZGUsIGlkKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke3Ro
aXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZChub2RlLnR5cGUpfSAke2lkfTsgLy8gJHtub2Rl
Lm5hbWV9YCk7Ci0gICAgICAgIHRoaXMuX3plcm9Jbml0aWFsaXplKG5vZGUudHlwZSwgaWQpOwot
ICAgICAgICByZXR1cm4gaWQ7Ci0gICAgfQotCi0gICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCi0g
ICAgewotICAgICAgICBjb25zdCBsaHMgPSB0aGlzLl9lbWl0QXNMVmFsdWUobm9kZS5saHMpOwot
ICAgICAgICBjb25zdCByaHMgPSBub2RlLnJocy52aXNpdCh0aGlzKTsKLSAgICAgICAgdGhpcy5f
ZW1pdE1lbUNvcHkodHlwZU9mKG5vZGUpLCBsaHMsIHJocyk7Ci0gICAgICAgIHJldHVybiBsaHM7
Ci0gICAgfQotCi0gICAgX2VtaXRNZW1Db3B5KHR5cGUsIGRlc3QsIHNyYykKLSAgICB7Ci0gICAg
ICAgIHR5cGUgPSB0eXBlT2YodHlwZSk7Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgQXJy
YXlUeXBlKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGUubnVtRWxlbWVu
dHNWYWx1ZTsgaSsrKQotICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRNZW1Db3B5KHR5cGVPZih0
eXBlLmVsZW1lbnRUeXBlKSwgYCR7ZGVzdH1bJHtpfV1gLCBgJHtzcmN9WyR7aX1dYCk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9hZGQoYC8vICR7dHlwZX1gKTsKLSAgICAg
ICAgICAgIHRoaXMuX2FkZChgJHtkZXN0fSA9ICR7c3JjfTtgKTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIHZpc2l0Q29tbWFFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVz
dWx0OwotICAgICAgICBmb3IgKGxldCBleHByIG9mIG5vZGUubGlzdCkKLSAgICAgICAgICAgIHJl
c3VsdCA9IE5vZGUudmlzaXQoZXhwciwgdGhpcyk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgfQotCi0gICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgY29u
c3QgYXJncyA9IFtdOwotICAgICAgICBmb3IgKGxldCBpID0gbm9kZS5hcmd1bWVudExpc3QubGVu
Z3RoOyBpLS07KQotICAgICAgICAgICAgYXJncy51bnNoaWZ0KG5vZGUuYXJndW1lbnRMaXN0W2ld
LnZpc2l0KHRoaXMpKTsKLQotICAgICAgICBsZXQgcmVzdWx0VmFyaWFibGU7Ci0gICAgICAgIGlm
IChub2RlLmZ1bmMucmV0dXJuVHlwZS5uYW1lICE9PSAidm9pZCIpIHsKLSAgICAgICAgICAgIHJl
c3VsdFZhcmlhYmxlID0gdGhpcy5fZnJlc2goKTsKLSAgICAgICAgICAgIHRoaXMuX2FkZChgLy8g
UmVzdWx0IHZhcmlhYmxlIGZvciBjYWxsICR7bm9kZS5mdW5jLm5hbWV9KCR7YXJncy5qb2luKCIs
ICIpfSlgKTsKLSAgICAgICAgICAgIHRoaXMuX2FkZChgJHt0aGlzLl90eXBlVW5pZmllci51bmlx
dWVUeXBlSWQobm9kZS5yZXN1bHRUeXBlKX0gJHtyZXN1bHRWYXJpYWJsZX07YCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAobm9kZS5mdW5jIGluc3RhbmNlb2YgRnVuY0RlZikgewotICAgICAg
ICAgICAgY29uc3QgbWFuZ2xlZENhbGxOYW1lID0gdGhpcy5fZnVuY01hbmdsZXIubWFuZ2xlKG5v
ZGUuZnVuYyk7Ci0gICAgICAgICAgICBjb25zdCBjYWxsU3RyaW5nID0gYCR7bWFuZ2xlZENhbGxO
YW1lfSgke2FyZ3Muam9pbigiLCAiKX0pYDsKLSAgICAgICAgICAgIGlmIChyZXN1bHRWYXJpYWJs
ZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGQoYCR7cmVzdWx0VmFyaWFibGV9ID0gJHtjYWxs
U3RyaW5nfTtgKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGQo
YCR7Y2FsbFN0cmluZ307YCk7Ci0KLSAgICAgICAgICAgIHRoaXMuX2FkZChgaWYgKCEoKigke3Ro
aXMuX2Z1bmMuX3RyYXBQb2ludGVyRXhwcmVzc2lvbi52aXNpdCh0aGlzKX0pKSkge2ApOwotICAg
ICAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHRoaXMuX2VtaXRUcmFwUmV0dXJuKCkpOwotICAg
ICAgICAgICAgdGhpcy5fYWRkKCJ9Iik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdGhp
cy5fbWFrZU5hdGl2ZUZ1bmN0aW9uQ2FsbChub2RlLmZ1bmMsIHJlc3VsdFZhcmlhYmxlLCBhcmdz
KTsKLQotICAgICAgICByZXR1cm4gcmVzdWx0VmFyaWFibGU7Ci0gICAgfQotCi0gICAgX21ha2VO
YXRpdmVGdW5jdGlvbkNhbGwobm9kZSwgcmVzdWx0VmFyaWFibGUsIGFyZ3MpCi0gICAgewotICAg
ICAgICBpZiAoIShub2RlIGluc3RhbmNlb2YgTmF0aXZlRnVuYykpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYCR7bm9kZX0gc2hvdWxkIGJlIGEgbmF0aXZlIGZ1bmN0aW9uLmApOwotCi0g
ICAgICAgIGlmICh0aGlzLl9pc09wZXJhdG9yQW5kZXIobm9kZSkpCi0gICAgICAgICAgICB0aGlz
Ll9lbWl0T3BlcmF0b3JBbmRlcihub2RlLCByZXN1bHRWYXJpYWJsZSwgYXJncyk7Ci0gICAgICAg
IGVsc2UgaWYgKG5vZGUuaW1wbGVtZW50YXRpb25EYXRhIGluc3RhbmNlb2YgQnVpbHRpblZlY3Rv
ckdldHRlcikKLSAgICAgICAgICAgIHRoaXMuX2VtaXRCdWlsdGluVmVjdG9yR2V0dGVyKG5vZGUs
IHJlc3VsdFZhcmlhYmxlLCBhcmdzKTsKLSAgICAgICAgZWxzZSBpZiAobm9kZS5pbXBsZW1lbnRh
dGlvbkRhdGEgaW5zdGFuY2VvZiBCdWlsdGluVmVjdG9yU2V0dGVyKQotICAgICAgICAgICAgdGhp
cy5fZW1pdEJ1aWx0aW5WZWN0b3JTZXR0ZXIobm9kZSwgcmVzdWx0VmFyaWFibGUsIGFyZ3MpOwot
ICAgICAgICBlbHNlIGlmIChub2RlLmltcGxlbWVudGF0aW9uRGF0YSBpbnN0YW5jZW9mIEJ1aWx0
aW5NYXRyaXhHZXR0ZXIpCi0gICAgICAgICAgICB0aGlzLl9lbWl0QnVpbHRpbk1hdHJpeEdldHRl
cihub2RlLCByZXN1bHRWYXJpYWJsZSwgYXJncyk7Ci0gICAgICAgIGVsc2UgaWYgKG5vZGUuaW1w
bGVtZW50YXRpb25EYXRhIGluc3RhbmNlb2YgQnVpbHRpbk1hdHJpeFNldHRlcikKLSAgICAgICAg
ICAgIHRoaXMuX2VtaXRCdWlsdGluTWF0cml4U2V0dGVyKG5vZGUsIHJlc3VsdFZhcmlhYmxlLCBh
cmdzKTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy5faXNPcGVyYXRvclZhbHVlKG5vZGUpKQotICAg
ICAgICAgICAgdGhpcy5fYWRkKGAke3Jlc3VsdFZhcmlhYmxlfSA9ICR7YXJnc1swXX07YCk7Ci0g
ICAgICAgIGVsc2UgaWYgKHRoaXMuX2lzT3BlcmF0b3JMZW5ndGgobm9kZSkpCi0gICAgICAgICAg
ICB0aGlzLl9lbWl0T3BlcmF0b3JMZW5ndGgobm9kZSwgcmVzdWx0VmFyaWFibGUsIGFyZ3MpOwot
ICAgICAgICBlbHNlIGlmICh0aGlzLl9pc09wZXJhdG9yU2V0dGVyKG5vZGUpKQotICAgICAgICAg
ICAgdGhpcy5fZW1pdE9wZXJhdG9yU2V0dGVyKG5vZGUsIHJlc3VsdFZhcmlhYmxlLCBhcmdzKTsK
LSAgICAgICAgZWxzZSBpZiAodGhpcy5faXNPcGVyYXRvckdldHRlcihub2RlKSkKLSAgICAgICAg
ICAgIHRoaXMuX2VtaXRPcGVyYXRvckdldHRlcihub2RlLCByZXN1bHRWYXJpYWJsZSwgYXJncyk7
Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX2lzT3BlcmF0b3JJbmRleGVyKG5vZGUpKQotICAgICAg
ICAgICAgdGhpcy5fZW1pdE9wZXJhdG9ySW5kZXhlcihub2RlLCByZXN1bHRWYXJpYWJsZSwgYXJn
cyk7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX2lzT3BlcmF0b3JDYXN0KG5vZGUpKQotICAgICAg
ICAgICAgdGhpcy5fZW1pdE9wZXJhdG9yQ2FzdChub2RlLCByZXN1bHRWYXJpYWJsZSwgYXJncyk7
Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX2lzVW5hcnlPcGVyYXRvcihub2RlKSkKLSAgICAgICAg
ICAgIHRoaXMuX2FkZChgJHtyZXN1bHRWYXJpYWJsZX0gPSAke3RoaXMuX2V4dHJhY3RPcGVyYXRv
ck5hbWUobm9kZSl9KCR7YXJnc1swXX0pO2ApOwotICAgICAgICBlbHNlIGlmICh0aGlzLl9pc0Jp
bmFyeU9wZXJhdG9yKG5vZGUpKQotICAgICAgICAgICAgdGhpcy5fYWRkKGAke3Jlc3VsdFZhcmlh
YmxlfSA9ICR7YXJnc1swXX0gJHt0aGlzLl9leHRyYWN0T3BlcmF0b3JOYW1lKG5vZGUpfSAke2Fy
Z3NbMV19O2ApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9hZGQobXNsTmF0aXZl
RnVuY3Rpb25DYWxsKG5vZGUsIHJlc3VsdFZhcmlhYmxlLCBhcmdzKSk7Ci0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdFZhcmlhYmxlOwotICAgIH0KLQotICAgIF9lbWl0Q2FsbFRvTWV0YWxGdW5jdGlv
bihuYW1lLCByZXN1bHQsIGFyZ3MpCi0gICAgewotICAgICAgICB0aGlzLl9hZGQoYCR7cmVzdWx0
fSA9ICR7bmFtZX0oJHthcmdzLmpvaW4oIiwgIil9KTtgKTsKLSAgICB9Ci0KLSAgICBfZW1pdEJ1
aWx0aW5WZWN0b3JHZXR0ZXIobm9kZSwgcmVzdWx0LCBhcmdzKQotICAgIHsKLSAgICAgICAgdGhp
cy5fYWRkKGAke3Jlc3VsdH0gPSAke2FyZ3NbMF19LiR7bm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEu
ZWxlbWVudE5hbWV9O2ApOwotICAgIH0KLQotICAgIF9lbWl0QnVpbHRpblZlY3RvclNldHRlcihu
b2RlLCByZXN1bHQsIGFyZ3MpCi0gICAgewotICAgICAgICB0aGlzLl9hZGQoYCR7cmVzdWx0fSA9
ICR7YXJnc1swXX07YCk7Ci0gICAgICAgIHRoaXMuX2FkZChgJHtyZXN1bHR9LiR7bm9kZS5pbXBs
ZW1lbnRhdGlvbkRhdGEuZWxlbWVudE5hbWV9ID0gJHthcmdzWzFdfTtgKTsKLSAgICB9Ci0KLSAg
ICBfZW1pdEJ1aWx0aW5NYXRyaXhHZXR0ZXIobm9kZSwgcmVzdWx0LCBhcmdzKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fYWRkKGBpZiAoJHthcmdzWzFdfSA+PSAke25vZGUuaW1wbGVtZW50YXRpb25E
YXRhLmhlaWdodH0pIHtgKTsKLSAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHRoaXMuX2VtaXRU
cmFwKCkpOwotICAgICAgICB0aGlzLl9hZGQoJ30nKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke3Jl
c3VsdH0gPSAke2FyZ3NbMF19WyR7YXJnc1sxXX1dO2ApOwotICAgIH0KLQotICAgIF9lbWl0QnVp
bHRpbk1hdHJpeFNldHRlcihub2RlLCByZXN1bHQsIGFyZ3MpCi0gICAgewotICAgICAgICB0aGlz
Ll9hZGQoYGlmICgke2FyZ3NbMV19ID49ICR7bm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEuaGVpZ2h0
fSkge2ApOwotICAgICAgICB0aGlzLl9pbmRlbnQoKCkgPT4gdGhpcy5fZW1pdFRyYXAoKSk7Ci0g
ICAgICAgIHRoaXMuX2FkZCgnfScpOwotICAgICAgICB0aGlzLl9hZGQoYCR7cmVzdWx0fSA9ICR7
YXJnc1swXX07YCk7Ci0gICAgICAgIHRoaXMuX2FkZChgJHtyZXN1bHR9WyR7YXJnc1sxXX1dID0g
JHthcmdzWzJdfTtgKTsKLSAgICB9Ci0KLSAgICBfZW1pdE9wZXJhdG9yTGVuZ3RoKG5vZGUsIHJl
c3VsdCwgYXJncykKLSAgICB7Ci0gICAgICAgIGNvbnN0IHBhcmFtVHlwZSA9IHR5cGVPZihub2Rl
LnBhcmFtZXRlcnNbMF0pOwotICAgICAgICBpZiAocGFyYW1UeXBlIGluc3RhbmNlb2YgQXJyYXlS
ZWZUeXBlKQotICAgICAgICAgICAgdGhpcy5fYWRkKGAke3Jlc3VsdH0gPSAke2FyZ3NbMF19Lmxl
bmd0aDtgKTsKLSAgICAgICAgZWxzZSBpZiAocGFyYW1UeXBlIGluc3RhbmNlb2YgQXJyYXlUeXBl
KQotICAgICAgICAgICAgdGhpcy5fYWRkKGAke3Jlc3VsdH0gPSAke3BhcmFtVHlwZS5udW1FbGVt
ZW50cy52aXNpdCh0aGlzKX07YCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcihgVW5oYW5kbGVkIHBhcmFtdGVyIHR5cGUgJHtwYXJhbVR5cGV9IGZvciBvcGVyYXRv
ci5sZW5ndGhgKTsKLSAgICB9Ci0KLSAgICBfZW1pdE9wZXJhdG9yQ2FzdChub2RlLCByZXN1bHQs
IGFyZ3MpCi0gICAgewotICAgICAgICBjb25zdCByZXRUeXBlID0gdGhpcy5fdHlwZVVuaWZpZXIu
dW5pcXVlVHlwZUlkKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAgICAgIHRoaXMuX2FkZChgJHtyZXN1
bHR9ID0gJHtyZXRUeXBlfSgke2FyZ3Muam9pbigiLCAiKX0pO2ApOwotICAgIH0KLQotICAgIF9l
bWl0T3BlcmF0b3JJbmRleGVyKG5vZGUsIHJlc3VsdCwgYXJncykKLSAgICB7Ci0gICAgICAgIGlm
ICghKHR5cGVPZihub2RlLnBhcmFtZXRlcnNbMF0pIGluc3RhbmNlb2YgQXJyYXlSZWZUeXBlKSkK
LSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU3VwcG9ydCBmb3Igb3BlcmF0b3ImW10gJHtu
b2RlLnBhcmFtZXRlcnNbMF19IG5vdCBpbXBsZW1lbnRlZC5gKTsKLQotICAgICAgICB0aGlzLl9h
ZGQoYGlmICgke2FyZ3NbMV19ID49ICR7YXJnc1swXX0ubGVuZ3RoKSB7YCk7Ci0gICAgICAgIHRo
aXMuX2luZGVudCgoKSA9PiB0aGlzLl9lbWl0VHJhcCgpKTsKLSAgICAgICAgdGhpcy5fYWRkKGB9
YCk7Ci0gICAgICAgIHRoaXMuX2FkZChgLy8gT3BlcmF0b3IgaW5kZXhlcmApOwotICAgICAgICB0
aGlzLl9hZGQoYCR7cmVzdWx0fSA9ICYoJHthcmdzWzBdfS5wdHJbJHthcmdzWzFdfV0pO2ApOwot
ICAgIH0KLQotICAgIF9lbWl0T3BlcmF0b3JBbmRlcihub2RlLCByZXN1bHQsIGFyZ3MpCi0gICAg
ewotICAgICAgICBjb25zdCB0eXBlID0gbm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEuc3RydWN0VHlw
ZTsKLSAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl90eXBlQXR0cmlidXRlcy5hdHRyaWJ1dGVz
Rm9yVHlwZSh0eXBlKS5tYW5nbGVkRmllbGROYW1lKG5vZGUuaW1wbGVtZW50YXRpb25EYXRhLm5h
bWUpOwotICAgICAgICB0aGlzLl9hZGQoYCR7cmVzdWx0fSA9ICYoKCR7YXJnc1swXX0pLT4ke2Zp
ZWxkfSk7YCk7Ci0gICAgfQotCi0gICAgX2VtaXRPcGVyYXRvckdldHRlcihub2RlLCByZXN1bHQs
IGFyZ3MpCi0gICAgewotICAgICAgICBjb25zdCB0eXBlID0gbm9kZS5pbXBsZW1lbnRhdGlvbkRh
dGEudHlwZTsKLSAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl90eXBlQXR0cmlidXRlcy5hdHRy
aWJ1dGVzRm9yVHlwZSh0eXBlKS5tYW5nbGVkRmllbGROYW1lKG5vZGUuaW1wbGVtZW50YXRpb25E
YXRhLm5hbWUpOwotICAgICAgICB0aGlzLl9hZGQoYCR7cmVzdWx0fSA9ICR7YXJnc1swXX0uJHtm
aWVsZH07YCk7Ci0gICAgfQotCi0gICAgX2VtaXRPcGVyYXRvclNldHRlcihub2RlLCByZXN1bHQs
IGFyZ3MpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogQ3VycmVudGx5IG5vIFdITFNMIHNvdXJj
ZSBwcm9kdWNlcyBzdHJ1Y3RzIHRoYXQgb25seSBoYXZlIGdldHRlcnMvc2V0dGVycyByYXRoZXIg
dGhhbiB0aGUgYW5kZXIsCi0gICAgICAgIC8vIGFuZCB0aGUgYW5kZXIgaXMgYWx3YXlzIHByZWZl
cnJlZCBvdmVyIHRoZSBnZXR0ZXIgYW5kIHNldHRlci4gVGhlcmVmb3JlIHRoaXMgY29kZSBpcyB1
bnRlc3RlZC4KLSAgICAgICAgY29uc3QgdHlwZSA9IG5vZGUuaW1wbGVtZW50YXRpb25EYXRhLnR5
cGU7Ci0gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fdHlwZUF0dHJpYnV0ZXMuYXR0cmlidXRl
c0ZvclR5cGUodHlwZSkubWFuZ2xlZEZpZWxkTmFtZShub2RlLmltcGxlbWVudGF0aW9uRGF0YS5u
YW1lKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke2FyZ3NbMF19LiR7ZmllbGR9ID0gJHthcmdzWzFd
fTtgKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke3Jlc3VsdH0gPSAke2FyZ3NbMF19YCk7Ci0gICAg
fQotCi0gICAgdmlzaXRNYWtlUHRyRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgaWYg
KG5vZGUudGFyZ2V0IGluc3RhbmNlb2YgRGVyZWZlcmVuY2VFeHByZXNzaW9uKQotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2VtaXRBc0xWYWx1ZShub2RlLnRhcmdldC5wdHIpOwotICAgICAgICBy
ZXR1cm4gYCYoJHt0aGlzLl9lbWl0QXNMVmFsdWUobm9kZS5sVmFsdWUpfSlgOwotICAgIH0KLQot
ICAgIC8vIExvb3AgY29kZSBnZW5lcmF0aW9uLiBMb29wcyBhbGwgZm9sbG93IHRoZSBzYW1lIHN0
eWxlIHdoZXJlIHRoZXkgZGVjbGFyZSBhIGNvbmRpdGlvbmFsIHZhcmlhYmxlIChib29sZWFuKQot
ICAgIC8vIHdoaWNoIGlzIGNoZWNrZWQgb24gZWFjaCBpdGVyYXRpb24gKGFsbCBsb29wcyBhcmUg
Y29tcGlsZWQgdG8gYSB3aGlsZSBsb29wIG9yIGRvL3doaWxlIGxvb3ApLiBUaGUgY2hlY2sgaXMK
LSAgICAvLyBlbWl0dGVkIGluIF9lbWl0TG9vcENvbmRpdGlvbi4gRm9yIGxvb3BzIGFkZGl0aW9u
YWxseSBoYXZlIF9lbWl0TG9vcEJvZHlFbmQgZm9yIHRoZSBpbmNyZW1lbnQgb24gZWFjaCBpdGVy
YXRpb24uCi0KLSAgICB2aXNpdEZvckxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Vt
aXRBc0xvb3Aobm9kZS5jb25kaXRpb24sIG5vZGUuaW5jcmVtZW50LCAoY29uZGl0aW9uVmFyKSA9
PiB7Ci0gICAgICAgICAgICBOb2RlLnZpc2l0KG5vZGUuaW5pdGlhbGl6YXRpb24sIHRoaXMpOwot
ICAgICAgICAgICAgdGhpcy5fZW1pdExvb3BDb25kaXRpb24oKTsKLSAgICAgICAgICAgIHRoaXMu
X2FkZChgd2hpbGUgKCR7Y29uZGl0aW9uVmFyfSkge2ApOwotICAgICAgICAgICAgdGhpcy5faW5k
ZW50KCgpID0+IHsKLSAgICAgICAgICAgICAgICBub2RlLmJvZHkudmlzaXQodGhpcyk7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fZW1pdExvb3BCb2R5RW5kKCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIHRoaXMuX2FkZCgnfScpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB2aXNp
dFdoaWxlTG9vcChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZW1pdEFzTG9vcChub2RlLmNv
bmRpdGlvbmFsLCBudWxsLCAoY29uZGl0aW9uVmFyKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9h
ZGQoYHdoaWxlICgke2NvbmRpdGlvblZhcn0pIHtgKTsKLSAgICAgICAgICAgIHRoaXMuX2luZGVu
dCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpOwotICAgICAg
ICAgICAgICAgIHRoaXMuX2VtaXRMb29wQ29uZGl0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIHRoaXMuX2FkZCgnfScpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB2aXNp
dERvV2hpbGVMb29wKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl9lbWl0QXNMb29wKG5vZGUu
Y29uZGl0aW9uYWwsIG51bGwsIGNvbmRpdGlvblZhciA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9h
ZGQoImRvIHsiKTsKLSAgICAgICAgICAgIHRoaXMuX2luZGVudCgoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRM
b29wQm9keUVuZCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0aGlzLl9hZGQoYH0g
d2hpbGUgKCR7Y29uZGl0aW9uVmFyfSk7YCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIF9l
bWl0QXNMb29wKGNvbmRpdGlvbmFsLCBpbmNyZW1lbnQsIGVtaXRMb29wQm9keSkKLSAgICB7Ci0g
ICAgICAgIGNvbnN0IGNvbmRpdGlvblZhciA9IHRoaXMuX2ZyZXNoKCk7Ci0gICAgICAgIHRoaXMu
X2xvb3BDb25kaXRpb25WYXJpYWJsZVN0YWNrLnB1c2goY29uZGl0aW9uVmFyKTsKLSAgICAgICAg
dGhpcy5fbG9vcENvbmRpdGlvbk5vZGVTdGFjay5wdXNoKGNvbmRpdGlvbmFsKTsKLSAgICAgICAg
dGhpcy5fbG9vcEluY3JlbWVudE5vZGVTdGFjay5wdXNoKGluY3JlbWVudCk7Ci0gICAgICAgIHRo
aXMuX2FkZChgYm9vbCAke2NvbmRpdGlvblZhcn0gPSB0cnVlO2ApOwotCi0gICAgICAgIGVtaXRM
b29wQm9keShjb25kaXRpb25WYXIpOwotCi0gICAgICAgIHRoaXMuX2xvb3BJbmNyZW1lbnROb2Rl
U3RhY2sucG9wKCk7Ci0gICAgICAgIHRoaXMuX2xvb3BDb25kaXRpb25WYXJpYWJsZVN0YWNrLnBv
cCgpOwotICAgICAgICB0aGlzLl9sb29wQ29uZGl0aW9uTm9kZVN0YWNrLnBvcCgpOwotICAgIH0K
LQotICAgIF9lbWl0TG9vcEJvZHlFbmQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fZW1pdExvb3BJ
bmNyZW1lbnQoKTsKLSAgICAgICAgdGhpcy5fZW1pdExvb3BDb25kaXRpb24oKTsKLSAgICB9Ci0K
LSAgICBfZW1pdExvb3BJbmNyZW1lbnQoKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdCh0aGlz
Ll9sb29wSW5jcmVtZW50LCB0aGlzKTsKLSAgICB9Ci0KLSAgICBfZW1pdExvb3BDb25kaXRpb24o
KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2xvb3BDb25kaXRpb24pIHsKLSAgICAgICAgICAg
IGNvbnN0IGNvbmRpdGlvblJlc3VsdCA9IHRoaXMuX2xvb3BDb25kaXRpb24udmlzaXQodGhpcyk7
Ci0gICAgICAgICAgICB0aGlzLl9hZGQoYCR7dGhpcy5fbG9vcENvbmRpdGlvblZhcmlhYmxlfSA9
ICR7Y29uZGl0aW9uUmVzdWx0fTtgKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZpc2l0U3dp
dGNoU3RhdGVtZW50KG5vZGUpCi0gICAgewotICAgICAgICBjb25zdCBjYXNlVmFsdWVFbWl0dGVy
ID0gbmV3IE1TTENvbnN0ZXhwckVtaXR0ZXIoKTsKLQotICAgICAgICBsZXQgc3dpdGNoVmFsdWUg
PSBOb2RlLnZpc2l0KG5vZGUudmFsdWUsIHRoaXMpOwotICAgICAgICB0aGlzLl9hZGQoYHN3aXRj
aCAoJHtzd2l0Y2hWYWx1ZX0pIHtgKTsKLSAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHsKLSAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5zd2l0Y2hDYXNlcy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgICAgIGxldCBzd2l0Y2hDYXNlID0gbm9kZS5zd2l0Y2hDYXNlc1tp
XTsKLSAgICAgICAgICAgICAgICBpZiAoIXN3aXRjaENhc2UuaXNEZWZhdWx0KQotICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9hZGQoYGNhc2UgJHtzd2l0Y2hDYXNlLnZhbHVlLnZpc2l0KGNhc2VW
YWx1ZUVtaXR0ZXIpfToge2ApOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fYWRkKCJkZWZhdWx0OiB7Iik7Ci0gICAgICAgICAgICAgICAgdGhpcy5fdmlz
aXRBbmRJbmRlbnQoc3dpdGNoQ2FzZS5ib2R5KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGQo
In0iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuX2FkZCgifSIp
OwotICAgIH0KLQotICAgIHZpc2l0U3dpdGNoQ2FzZShub2RlKQotICAgIHsKLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBNU0xTdGF0ZW1lbnRFbWl0dGVyLnZpc2l0U3dpdGNoQ2FzZSBjYWxsZWQ7
IHN3aXRjaCBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmdWxseSBoYW5kbGVkIGJ5IE1TTFN0YXRlbWVu
dEVtaXR0ZXIudmlzaXRTd2l0Y2hTdGF0ZW1lbnQuYCk7Ci0gICAgfQotCi0gICAgdmlzaXRCb29s
TGl0ZXJhbChub2RlKQotICAgIHsKLSAgICAgICAgY29uc3QgZnJlc2ggPSB0aGlzLl9mcmVzaCgp
OwotICAgICAgICB0aGlzLl9hZGQoYGJvb2wgJHtmcmVzaH0gPSAke25vZGUudmFsdWV9O2ApOwot
ICAgICAgICByZXR1cm4gZnJlc2g7Ci0gICAgfQotCi0gICAgdmlzaXRFbnVtTGl0ZXJhbChub2Rl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUubWVtYmVyLnZhbHVlLnZpc2l0KHRoaXMpOwot
ICAgIH0KLQotICAgIHZpc2l0R2VuZXJpY0xpdGVyYWwobm9kZSkKLSAgICB7Ci0gICAgICAgIGNv
bnN0IGZyZXNoID0gdGhpcy5fZnJlc2goKTsKLSAgICAgICAgdGhpcy5fYWRkKGAke3RoaXMuX3R5
cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZChub2RlLnR5cGUpfSAke2ZyZXNofTtgKTsKLSAgICAgICAg
dGhpcy5fYWRkKGAke2ZyZXNofSA9ICR7bm9kZS52YWx1ZX07YCk7Ci0gICAgICAgIHJldHVybiBm
cmVzaDsKLSAgICB9Ci0KLSAgICB2aXNpdE51bGxMaXRlcmFsKG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gYG51bGxwdHJgOwotICAgIH0KLQotICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2Rl
KQotICAgIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNU0xTdGF0ZW1lbnRFbWl0dGVyLnZp
c2l0RG90RXhwcmVzc2lvbiBjYWxsZWQ7ICR7bm9kZX0gc2hvdWxkIGhhdmUgYmVlbiBjb252ZXJ0
ZWQgdG8gYW4gb3BlcmF0b3IgZnVuY3Rpb24gY2FsbC5gKTsKLSAgICB9Ci0KLSAgICB2aXNpdFRy
YXBTdGF0ZW1lbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2VtaXRUcmFwKCk7Ci0gICAg
fQotCi0gICAgdmlzaXRMb2dpY2FsRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgY29u
c3QgcmVzdWx0ID0gdGhpcy5fZnJlc2goKTsKLSAgICAgICAgdGhpcy5fYWRkKGAvLyBSZXN1bHQg
dmFyaWFibGUgZm9yICR7bm9kZS50ZXh0fWApOwotICAgICAgICB0aGlzLl9hZGQoYGJvb2wgJHty
ZXN1bHR9O2ApOwotICAgICAgICBpZiAobm9kZS50ZXh0ID09ICImJiIpIHsKLSAgICAgICAgICAg
IGNvbnN0IGxlZnQgPSBub2RlLmxlZnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9h
ZGQoYGlmICghJHtsZWZ0fSkge2ApCi0gICAgICAgICAgICB0aGlzLl9pbmRlbnQoKCkgPT4gdGhp
cy5fYWRkKGAke3Jlc3VsdH0gPSBmYWxzZTtgKSk7Ci0gICAgICAgICAgICB0aGlzLl9hZGQoJ30g
ZWxzZSB7Jyk7Ci0gICAgICAgICAgICB0aGlzLl9pbmRlbnQoKCkgPT4gdGhpcy5fYWRkKGAke3Jl
c3VsdH0gPSAke25vZGUucmlnaHQudmlzaXQodGhpcyl9O2ApKTsKLSAgICAgICAgICAgIHRoaXMu
X2FkZCgnfScpOwotICAgICAgICB9IGVsc2UgaWYgKG5vZGUudGV4dCA9PSAifHwiKSB7Ci0gICAg
ICAgICAgICBjb25zdCBsZWZ0ID0gbm9kZS5sZWZ0LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAg
dGhpcy5fYWRkKGAke3Jlc3VsdH0gPSAke2xlZnR9O2ApOwotICAgICAgICAgICAgdGhpcy5fYWRk
KGBpZiAoISR7cmVzdWx0fSkge2ApOwotICAgICAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHRo
aXMuX2FkZChgJHtyZXN1bHR9ID0gJHtub2RlLnJpZ2h0LnZpc2l0KHRoaXMpfTtgKSk7Ci0gICAg
ICAgICAgICB0aGlzLl9hZGQoIn0iKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBsb2dpY2FsIGV4cHJlc3Npb24gJHtub2RlLnRleHR9
YCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRUZXJuYXJ5RXhw
cmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IElmIGVhY2ggb2YgdGhlIHRo
cmVlIGV4cHJlc3Npb25zIGlzbid0IGEgY29tcG91bmQgZXhwcmVzc2lvbiBvciBzdGF0ZW1lbnQg
dGhlbiBqdXN0IHVzZSB0ZXJuYXJ5IHN5bnRheC4KLSAgICAgICAgbGV0IHJlc3VsdFR5cGUgPSB0
eXBlT2Yobm9kZS5ib2R5RXhwcmVzc2lvbik7Ci0gICAgICAgIGxldCByZXN1bHRWYXIgPSB0aGlz
Ll9mcmVzaCgpOwotICAgICAgICB0aGlzLl9hZGQoYCR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVl
VHlwZUlkKHJlc3VsdFR5cGUpfSAke3Jlc3VsdFZhcn07YCk7Ci0gICAgICAgIGNvbnN0IHByZWRp
Y2F0ZSA9IG5vZGUucHJlZGljYXRlLnZpc2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9hZGQoYGlm
ICgke3ByZWRpY2F0ZX0pIHtgKTsKLSAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHsKLSAgICAg
ICAgICAgIGNvbnN0IGJvZHlFeHByZXNzaW9uID0gbm9kZS5ib2R5RXhwcmVzc2lvbi52aXNpdCh0
aGlzKTsKLSAgICAgICAgICAgIHRoaXMuX2VtaXRNZW1Db3B5KHJlc3VsdFR5cGUsIHJlc3VsdFZh
ciwgYm9keUV4cHJlc3Npb24pOwotICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5fYWRkKCJ9IGVs
c2UgeyIpOwotICAgICAgICB0aGlzLl9pbmRlbnQoKCkgPT4gewotICAgICAgICAgICAgY29uc3Qg
ZWxzZUV4cHJlc3Npb24gPSBub2RlLmVsc2VFeHByZXNzaW9uLnZpc2l0KHRoaXMpOwotICAgICAg
ICAgICAgdGhpcy5fZW1pdE1lbUNvcHkocmVzdWx0VHlwZSwgcmVzdWx0VmFyLCBlbHNlRXhwcmVz
c2lvbik7Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLl9hZGQoIn0iKTsKLQotICAgICAgICBy
ZXR1cm4gcmVzdWx0VmFyOwotICAgIH0KLQotICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUp
Ci0gICAgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1TTFN0YXRlbWVudEVtaXR0ZXIudmlz
aXRJbmRleEV4cHJlc3Npb24gaXMgbm90IGltcGxlbWVudGVkOyBJbmRleEV4cHJlc3Npb24gc2hv
dWxkIG5vdCBhcHBlYXIgaW4gdGhlIEFTVCBmb3IgTWV0YWwgY29kZWdlbi4iKTsKLSAgICB9Ci0K
LSAgICB2aXNpdE5hdGl2ZUZ1bmMobm9kZSkKLSAgICB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiTVNMU3RhdGVtZW50RW1pdHRlci52aXNpdE5hdGl2ZUZ1bmMgaXMgbm90IGltcGxlbWVudGVk
OyBOYXRpdmVGdW5jdGlvbiBpcyBub3QgY29tcGlsZWQgYnkgdGhlIE1ldGFsIGNvZGVnZW4uIik7
Ci0gICAgfQotCi0gICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAg
ICAgIHRocm93IG5ldyBFcnJvcigiTVNMU3RhdGVtZW50RW1pdHRlci52aXNpdE5hdGl2ZVR5cGVJ
bnN0YW5jZSBpcyBub3QgaW1wbGVtZW50ZWQuIik7Ci0gICAgfQotCi0gICAgdmlzaXRSZWFkTW9k
aWZ5V3JpdGVFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
Ik1TTFN0YXRlbWVudEVtaXR0ZXIudmlzaXRSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uIGlzIG5v
dCBpbXBsZW1lbnRlZDsgaXQgc2hvdWxkIGhhdmUgYmVlbiB0cmFuc2Zvcm1lZCBvdXQgdGhlIHRy
ZWUgaW4gZWFybGllciBzdGFnZS4iKTsKLSAgICB9Ci0KLSAgICBfZW1pdEFzTFZhbHVlKG5vZGUp
Ci0gICAgewotICAgICAgICBjb25zdCBsT3JSVmFsdWVFbWl0dGVyID0gdGhpczsKLSAgICAgICAg
Y2xhc3MgTFZhbHVlVmlzaXRvciBleHRlbmRzIFZpc2l0b3IKLSAgICAgICAgewotICAgICAgICAg
ICAgdmlzaXREZXJlZmVyZW5jZUV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBub2RlLnB0ci52aXNpdChsT3JSVmFsdWVFbWl0dGVy
KTsKLSAgICAgICAgICAgICAgICBsT3JSVmFsdWVFbWl0dGVyLl9hZGQoYGlmICghKCR7dGFyZ2V0
fSkpIHtgKTsKLSAgICAgICAgICAgICAgICBsT3JSVmFsdWVFbWl0dGVyLl9pbmRlbnQoKCkgPT4g
bE9yUlZhbHVlRW1pdHRlci5fZW1pdFRyYXAoKSk7Ci0gICAgICAgICAgICAgICAgbE9yUlZhbHVl
RW1pdHRlci5fYWRkKCJ9Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGAoKigke3RhcmdldH0p
KWA7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS52aXNpdChsT3JSVmFs
dWVFbWl0dGVyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRJZGVudGl0eUV4
cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbm9k
ZS50YXJnZXQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0
Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSXMgdGhpcyBjb21tZW50IGFjdHVhbGx5IHRydWU/Pz8KLSAgICAgICAgICAgICAgICAv
LyBPbmx5IG9jY3VycyBmb3IgQCguLi4pIGV4cHJlc3Npb25zLgotICAgICAgICAgICAgICAgIHJl
dHVybiBub2RlLnZpc2l0KGxPclJWYWx1ZUVtaXR0ZXIpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICB2aXNpdE1ha2VQdHJFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5vZGUubFZhbHVlIGluc3RhbmNlb2YgRGVyZWZlcmVuY2VFeHByZXNz
aW9uKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5sVmFsdWUucHRyLnZpc2l0KGxP
clJWYWx1ZUVtaXR0ZXIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNvbnN0
IHJlc3VsdCA9IG5vZGUudmlzaXQobmV3IExWYWx1ZVZpc2l0b3IoKSk7Ci0gICAgICAgIGlmICgh
cmVzdWx0KQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25vZGV9IG5vdCBhIHZhbGlk
IGwtdmFsdWUuYCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotfQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ldGFsL01TTFR5cGVBdHRyaWJ1dGVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTWV0YWwvTVNMVHlwZUF0dHJpYnV0ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ2ZjE2NzYxMzBhLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlQXR0cmlidXRlcy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci1jbGFzcyBNU0xUeXBlQXR0cmlidXRlcyB7Ci0KLSAgICBjb25zdHJ1Y3Rvcih0eXBlKQotICAg
IHsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX2lzVmVydGV4QXR0
cmlidXRlID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2lzVmVydGV4T3V0cHV0T3JGcmFnbWVudElu
cHV0ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2lzRnJhZ21lbnRPdXRwdXQgPSBmYWxzZTsKLSAg
ICAgICAgdGhpcy5fZmllbGRNYW5nbGVyID0gbmV3IE1TTE5hbWVNYW5nbGVyKCdmaWVsZCcpOwot
Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgU3RydWN0VHlwZSkgewotICAgICAgICAgICAg
Zm9yIChsZXQgZmllbGQgb2YgdHlwZS5maWVsZHMpCi0gICAgICAgICAgICAgICAgdGhpcy5fZmll
bGRNYW5nbGVyLm1hbmdsZShmaWVsZC5uYW1lKQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZ2V0
IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7Ci0gICAgfQotCi0gICAg
Z2V0IGlzVmVydGV4QXR0cmlidXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9pc1Zl
cnRleEF0dHJpYnV0ZTsKLSAgICB9Ci0KLSAgICBzZXQgaXNWZXJ0ZXhBdHRyaWJ1dGUodmEpCi0g
ICAgewotICAgICAgICB0aGlzLl9pc1ZlcnRleEF0dHJpYnV0ZSA9IHZhOwotICAgIH0KLQotICAg
IGdldCBpc1ZlcnRleE91dHB1dE9yRnJhZ21lbnRJbnB1dCgpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5faXNWZXJ0ZXhPdXRwdXRPckZyYWdtZW50SW5wdXQ7Ci0gICAgfQotCi0gICAgc2V0
IGlzVmVydGV4T3V0cHV0T3JGcmFnbWVudElucHV0KHZvKQotICAgIHsKLSAgICAgICAgdGhpcy5f
aXNWZXJ0ZXhPdXRwdXRPckZyYWdtZW50SW5wdXQgPSB2bzsKLSAgICB9Ci0KLSAgICBnZXQgaXNG
cmFnbWVudE91dHB1dCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5faXNGcmFnbWVudE91
dHB1dDsKLSAgICB9Ci0KLSAgICBzZXQgaXNGcmFnbWVudE91dHB1dChmbykKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX2lzRnJhZ21lbnRPdXRwdXQgPSBmbzsKLSAgICB9Ci0KLSAgICBnZXQgZmllbGRN
YW5nbGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9maWVsZE1hbmdsZXI7Ci0gICAg
fQotCi0gICAgbWFuZ2xlZEZpZWxkTmFtZShmaWVsZE5hbWUpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5maWVsZE1hbmdsZXIubWFuZ2xlKGZpZWxkTmFtZSk7Ci0gICAgfQotfQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL01TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvTVNMVHlwZUF0dHJpYnV0ZXNNYXAuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM3M2IwZThjMGZlLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlQXR0cmlidXRlc01hcC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0vLyBQcm92aWRlcyBsb29rdXAgZm9yIGFsbCB0aGUgdG9wIGxldmVsIHR5
cGVzIGluIHRoZSBwcm9ncmFtLgotY2xhc3MgTVNMVHlwZUF0dHJpYnV0ZXNNYXAgewotCi0gICAg
Y29uc3RydWN0b3IoZnVuY3Rpb25EZWZzLCB0eXBlVW5pZmllcikKLSAgICB7Ci0gICAgICAgIHRo
aXMuX3R5cGVVbmlmaWVyID0gdHlwZVVuaWZpZXI7Ci0gICAgICAgIHRoaXMuX3R5cGVBdHRyaWJ1
dGVNYXAgPSBuZXcgTWFwKCk7Ci0KLSAgICAgICAgZm9yIChsZXQgZnVuY0RlZiBvZiBmdW5jdGlv
bkRlZnMpIHsKLSAgICAgICAgICAgIGlmIChmdW5jRGVmLnNoYWRlclR5cGUgPT0gInZlcnRleCIp
Ci0gICAgICAgICAgICAgICAgdGhpcy5fdmlzaXRWZXJ0ZXhTaGFkZXIoZnVuY0RlZik7Ci0gICAg
ICAgICAgICBlbHNlIGlmIChmdW5jRGVmLnNoYWRlclR5cGUgPT0gImZyYWdtZW50IikKLSAgICAg
ICAgICAgICAgICB0aGlzLl92aXNpdEZyYWdtZW50U2hhZGVyKGZ1bmNEZWYpOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgYXR0cmlidXRlc0ZvclR5cGUodHlwZSkKLSAgICB7Ci0gICAgICAgIGNv
bnN0IGtleSA9IHRoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZCh0eXBlKTsKLSAgICAgICAg
bGV0IGF0dHJzID0gdGhpcy5fdHlwZUF0dHJpYnV0ZU1hcC5nZXQoa2V5KTsKLSAgICAgICAgaWYg
KCFhdHRycykKLSAgICAgICAgICAgIHRoaXMuX3R5cGVBdHRyaWJ1dGVNYXAuc2V0KGtleSwgYXR0
cnMgPSBuZXcgTVNMVHlwZUF0dHJpYnV0ZXModHlwZSkpOwotICAgICAgICByZXR1cm4gYXR0cnM7
Ci0gICAgfQotCi0gICAgX3Zpc2l0VmVydGV4U2hhZGVyKGZ1bmMpCi0gICAgewotICAgICAgICB0
aGlzLmF0dHJpYnV0ZXNGb3JUeXBlKGZ1bmMucmV0dXJuVHlwZSkuaXNWZXJ0ZXhPdXRwdXRPckZy
YWdtZW50SW5wdXQgPSB0cnVlOwotICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiBmdW5jLnBhcmFt
ZXRlcnMpCi0gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNGb3JUeXBlKHBhcmFtLnR5cGUpLmlz
VmVydGV4QXR0cmlidXRlID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBfdmlzaXRGcmFnbWVudFNoYWRl
cihmdW5jKQotICAgIHsKLSAgICAgICAgdGhpcy5hdHRyaWJ1dGVzRm9yVHlwZShmdW5jLnJldHVy
blR5cGUpLmlzRnJhZ21lbnRPdXRwdXQgPSB0cnVlOwotICAgICAgICBmb3IgKGxldCBwYXJhbSBv
ZiBmdW5jLnBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNGb3JUeXBlKHBh
cmFtLnR5cGUpLmlzVmVydGV4T3V0cHV0T3JGcmFnbWVudElucHV0ID0gdHJ1ZTsKLSAgICB9Ci0K
LSAgICAvLyBGSVhNRTogU3VwcG9ydCBjb21wdXRlIHNoYWRlcnMuCi19ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvTVNMVHlwZVVuaWZpZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9N
ZXRhbC9NU0xUeXBlVW5pZmllci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI5
MjU3NTU5YTguLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL01TTFR5cGVVbmlmaWVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTU5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLWNsYXNzIE1T
TFR5cGVVbmlmaWVyIGV4dGVuZHMgVmlzaXRvciB7Ci0KLSAgICBjb25zdHJ1Y3RvcigpCi0gICAg
ewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMuX3R5cGVOYW1lTWFuZ2xlciA9IG5l
dyBNU0xOYW1lTWFuZ2xlcignVCcpOwotICAgICAgICB0aGlzLl9hbGxUeXBlcyA9IG5ldyBTZXQo
KTsKLSAgICB9Ci0KLSAgICBnZXQgYWxsVHlwZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuX2FsbFR5cGVzOwotICAgIH0KLQotICAgIHVuaXF1ZVR5cGVJZCh0eXBlKQotICAgIHsKLSAg
ICAgICAgY29uc3QgcmVzdWx0ID0gdHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYgKCFyZXN1
bHQpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dHlwZX0gaGFzIG5vIHVuaXF1ZSB0
eXBlIElELmApOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0VHlw
ZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYgKChub2RlLnR5cGVBcmd1bWVudHMgJiYgbm9k
ZS50eXBlQXJndW1lbnRzLmxlbmd0aCkgfHwgIW5vZGUubmFtZSkgewotICAgICAgICAgICAgcmV0
dXJuIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghdGhp
cy5fYWxsVHlwZXMuaGFzKG5vZGUudHlwZSkpCi0gICAgICAgICAgICBub2RlLnR5cGUudmlzaXQo
dGhpcyk7Ci0KLSAgICAgICAgY29uc3QgYmFzZVR5cGUgPSB0eXBlT2Yobm9kZSk7Ci0KLSAgICAg
ICAgaWYgKGJhc2VUeXBlIGluc3RhbmNlb2YgTmF0aXZlVHlwZSB8fCBiYXNlVHlwZSBpbnN0YW5j
ZW9mIFZlY3RvclR5cGUgfHwgYmFzZVR5cGUgaW5zdGFuY2VvZiBNYXRyaXhUeXBlIHx8IGJhc2VU
eXBlIGluc3RhbmNlb2YgRW51bVR5cGUgfHwgYmFzZVR5cGUgaW5zdGFuY2VvZiBBcnJheVR5cGUp
Ci0gICAgICAgICAgICByZXR1cm4gYmFzZVR5cGUudmlzaXQodGhpcyk7Ci0KLSAgICAgICAgcmV0
dXJuIHRoaXMuX3R5cGVOYW1lTWFuZ2xlci5tYW5nbGUobm9kZS5uYW1lKTsKLSAgICB9Ci0KLSAg
ICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FsbFR5cGVzLmFk
ZChub2RlKTsKLSAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCi0gICAgICAg
ICAgICBmaWVsZC52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5fdHlwZUlEID0gdGhpcy5fdHlw
ZU5hbWVNYW5nbGVyLm1hbmdsZShub2RlLm5hbWUpOwotICAgICAgICByZXR1cm4gbm9kZS5fdHlw
ZUlEOwotICAgIH0KLQotICAgIHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2FsbFR5cGVzLmFkZChub2RlKTsKLSAgICAgICAgbm9kZS5fdHlwZUlEID0gbm9kZS5iYXNl
VHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIG5vZGUuX3R5cGVJRDsKLSAgICB9Ci0K
LSAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FsbFR5cGVz
LmFkZChub2RlKTsKLSAgICAgICAgbm9kZS5fdHlwZUlEID0gdGhpcy5fdHlwZU5hbWVNYW5nbGVy
Lm1hbmdsZShub2RlLm5hbWUpOwotICAgICAgICByZXR1cm4gbm9kZS5fdHlwZUlEOwotICAgIH0K
LQotICAgIHZpc2l0UHRyVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYWxsVHlwZXMu
YWRkKG5vZGUpOwotICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwotICAgICAg
ICBub2RlLl90eXBlSUQgPSB0aGlzLl90eXBlTmFtZU1hbmdsZXIubWFuZ2xlKGAke25vZGUuZWxl
bWVudFR5cGUudmlzaXQodGhpcyl9KiAke25vZGUuYWRkcmVzc1NwYWNlfWApOwotICAgICAgICBy
ZXR1cm4gbm9kZS5fdHlwZUlEOwotICAgIH0KLQotICAgIHZpc2l0QXJyYXlUeXBlKG5vZGUpCi0g
ICAgewotICAgICAgICB0aGlzLl9hbGxUeXBlcy5hZGQobm9kZSk7Ci0gICAgICAgIG5vZGUuZWxl
bWVudFR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIG5vZGUuX3R5cGVJRCA9IHRoaXMuX3R5cGVO
YW1lTWFuZ2xlci5tYW5nbGUoYCR7bm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKX1bJHtub2Rl
Lm51bUVsZW1lbnRzfV1gKTsKLSAgICAgICAgcmV0dXJuIG5vZGUuX3R5cGVJRDsKLSAgICB9Ci0K
LSAgICB2aXNpdEFycmF5UmVmVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYWxsVHlw
ZXMuYWRkKG5vZGUpOwotICAgICAgICAvLyBUaGUgbmFtZSBtYW5nbGVyIGlzIHVzZWQgaGVyZSBi
ZWNhdXNlIGFycmF5IHJlZnMgYXJlICJ1c2VyLWRlZmluZWQiIHR5cGVzIGluIHRoZSBzZW5zZQot
ICAgICAgICAvLyB0aGF0IHRoZXkgd2lsbCBuZWVkIHRvIGJlIGRlZmluZWQgYXMgc3RydWN0cyBp
biB0aGUgTWV0YWwgb3V0cHV0LgotICAgICAgICBub2RlLl90eXBlSUQgPSB0aGlzLl90eXBlTmFt
ZU1hbmdsZXIubWFuZ2xlKGAke25vZGUuZWxlbWVudFR5cGUudmlzaXQodGhpcyl9W10gJHtub2Rl
LmFkZHJlc3NTcGFjZX1gKTsKLSAgICAgICAgcmV0dXJuIG5vZGUuX3R5cGVJRDsKLSAgICB9Ci0K
LSAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FsbFR5cGVz
LmFkZChub2RlKTsKLSAgICAgICAgbm9kZS5fdHlwZUlEID0gdGhpcy5fdHlwZU5hbWVNYW5nbGVy
Lm1hbmdsZShub2RlLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gbm9kZS5fdHlwZUlEOwot
ICAgIH0KLQotICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
YWxsVHlwZXMuYWRkKG5vZGUpOwotICAgICAgICBub2RlLl90eXBlSUQgPSB0aGlzLl90eXBlTmFt
ZU1hbmdsZXIubWFuZ2xlKG5vZGUudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBub2RlLl90
eXBlSUQ7Ci0gICAgfQotCi0gICAgdmlzaXRNYWtlQXJyYXlSZWZFeHByZXNzaW9uKG5vZGUpCi0g
ICAgewotICAgICAgICBzdXBlci52aXNpdE1ha2VBcnJheVJlZkV4cHJlc3Npb24obm9kZSk7Ci0g
ICAgICAgIG5vZGUuX3R5cGVJRCA9IG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgLy8g
V2hlbiB0aGUgYXJyYXkgcmVmIGlzIGRlY2xhcmVkIGluIE1TTCBpdCB3aWxsIGNvbnRhaW5lZCBh
IHBvaW50ZXIgdG8gdGhlIGVsZW1lbnQgdHlwZS4gSG93ZXZlciwgdGhlIG9yaWdpbmFsCi0gICAg
ICAgIC8vIFdITFNMIGRvZXNuJ3QgbmVlZCB0byBjb250YWluIHRoZSB0eXBlICJwb2ludGVyIHRv
IHRoZSBlbGVtZW50IHR5cGUiLCBzbyB3ZSBlbnN1cmUgdGhhdCB0aGUgdHlwZSBpcyBwcmVzZW50
Ci0gICAgICAgIC8vIGhlcmUuIFRoZSBsb2dpYyBpc24ndCBuZWVkZWQgZm9yIENvbnZlcnRQdHJU
b0FycmF5UmVmRXhwcmVzc2lvbiBiZWNhdXNlIHRoZSB0eXBlIGlzIG5lY2Vzc3NhcmlseSBwcmVz
ZW50IHRoZXJlLgotICAgICAgICBuZXcgUHRyVHlwZShub2RlLm9yaWdpbiwgbm9kZS5hZGRyZXNz
U3BhY2UgPyBub2RlLmFkZHJlc3NTcGFjZSA6ICJ0aHJlYWQiLCB0eXBlT2Yobm9kZSkuZWxlbWVu
dFR5cGUpLnZpc2l0KHRoaXMpOwotICAgICAgICByZXR1cm4gbm9kZS5fdHlwZUlEOwotICAgIH0K
LQotICAgIHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBub2Rl
Ll90eXBlSUQgPSBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIHJldHVybiBub2RlLl90
eXBlSUQ7Ci0gICAgfQotCi0gICAgdHlwZXNUaGF0TmVlZERlY2xhcmF0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIGNvbnN0IGRlY2xTZXQgPSBuZXcgU2V0KCk7Ci0gICAgICAgIGNvbnN0IG5hbWVTZXQg
PSBuZXcgU2V0KCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgdGhpcy5fYWxsVHlwZXMpIHsK
LSAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAg
aWYgKCFuYW1lU2V0LmhhcyhuYW1lKSkgewotICAgICAgICAgICAgICAgIGRlY2xTZXQuYWRkKHR5
cGUpOwotICAgICAgICAgICAgICAgIG5hbWVTZXQuYWRkKG5hbWUpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBkZWNsU2V0OwotICAgIH0KLX0KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9UeXBlT2YuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9U
eXBlT2YuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNThmZjNhNjI0Li4wMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9UeXBlT2Yu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEZJWE1FOiBSYXRoZXIgdGhhbiBiZWluZyBhIHNl
cGFyYXRlIGZ1bmN0aW9uIHRoaXMgc2hvdWxkIGluc3RlYWQgaGFwcGVuIGluIHRoZSBDaGVja2Vy
IHBoYXNlIHRoYXQgYW5ub3RhdGVzCi0vLyBlYWNoIE5vZGUgaW5zdGFuY2Ugd2l0aCBhICJ0eXBl
IiBwcm9wZXJ0eS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTYx
MQotZnVuY3Rpb24gdHlwZU9mKG5vZGUpIHsKLSAgICBjbGFzcyBUeXBlVmlzaXRvciBleHRlbmRz
IFZpc2l0b3IgewotICAgICAgICB2aXNpdEFub255bW91c1ZhcmlhYmxlKG5vZGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIH0K
LQotICAgICAgICB2aXNpdEFycmF5UmVmVHlwZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gbm9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0QXJyYXlUeXBlKG5vZGUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBu
b2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdENhbGxFeHBy
ZXNzaW9uKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLmZ1bmMudmlz
aXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdENvbW1hRXhwcmVzc2lvbihub2Rl
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZS5saXN0W25vZGUubGlzdC5sZW5n
dGggLSAxXS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0Q29udmVydFB0
clRvQXJyYXlSZWZFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0
IHB0clR5cGUgPSB0eXBlT2Yobm9kZS5sVmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBB
cnJheVJlZlR5cGUobm9kZS5vcmlnaW4sIHB0clR5cGUuYWRkcmVzc1NwYWNlLCBwdHJUeXBlLmVs
ZW1lbnRUeXBlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2Rl
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZS5zdHJ1Y3QuZmllbGRNYXAuZ2V0
KG5vZGUuZmllbGROYW1lKS50eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICB9Ci0KLSAgICAgICAg
dmlzaXRFbGVtZW50YWxUeXBlKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBu
b2RlOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRFbnVtVHlwZShub2RlKQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0Rmll
bGQobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5vZGUudHlwZS52aXNpdCh0
aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0RnVuYyhub2RlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2
aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5v
ZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0RnVuY3Rpb25M
aWtlQmxvY2sobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5vZGUucmV0dXJu
VHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0R2VuZXJpY0xpdGVy
YWxUeXBlKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0eXBlT2Yobm9kZS50
eXBlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0SWRlbnRpdHlFeHByZXNzaW9uKG5vZGUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnRhcmdldC52aXNpdCh0aGlzKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLmFycmF5LmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMp
OwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRMb2dpY2FsRXhwcmVzc2lvbihub2RlKQotICAg
ICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZJWE1FOiBJbXBsZW1lbnQgVHlw
ZVZpc2l0b3IudmlzaXRMb2dpY2FsRXhwcmVzc2lvbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAg
dmlzaXRMb2dpY2FsTm90KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2Rl
Lm9wZXJhbmQudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdE1ha2VBcnJh
eVJlZkV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5vZGUu
dHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0TWFrZVB0ckV4cHJl
c3Npb24obm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBQdHJUeXBlKG5v
ZGUub3JpZ2luLCAidGhyZWFkIiwgdHlwZU9mKG5vZGUubFZhbHVlKSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIG5vZGU7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdE5hdGl2ZUZ1bmMobm9kZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0TmF0aXZlRnVuY0luc3RhbmNlKG5vZGUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyk7Ci0g
ICAgICAgIH0KLQotICAgICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdE5hdGl2ZVR5
cGVJbnN0YW5jZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHZpc2l0TnVsbExpdGVyYWwobm9kZSkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHZpc2l0TnVsbFR5cGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5v
ZGU7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFB0clR5cGUobm9kZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFJlYWRN
b2RpZnlXcml0ZUV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJGSVhNRTogSW1wbGVtZW50IFR5cGVWaXNpdG9yLnZpc2l0UmVhZE1vZGlmeVdy
aXRlRXhwcmVzc2lvbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRSZWZlcmVuY2VUeXBl
KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9Ci0K
LSAgICAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBub2RlOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAg
IH0KLQotICAgICAgICB2aXNpdFR5cGVSZWYobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0
VmFyaWFibGVEZWNsKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnR5
cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFZhcmlhYmxlUmVmKG5v
ZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnZhcmlhYmxlLnR5cGUudmlz
aXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0KLQotICAgICAgICB2
aXNpdEJsb2NrKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmxvY2sgaGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0Qm9vbExpdGVy
YWwobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCb29sTGl0
ZXJhbCBoYXMgbm8gdHlwZSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRCcmVhayhub2Rl
KQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJyZWFrIGhhcyBubyB0
eXBlIik7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIo
bm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb25zdGV4cHJU
eXBlUGFyYW1ldGVyIGhhcyBubyB0eXBlIik7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdENv
bnRpbnVlKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ29u
dGludWUgaGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0RGVyZWZlcmVu
Y2VFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlLnR5
cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdERvV2hpbGVMb29wKG5v
ZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9XaGlsZUxvb3Ag
aGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpc2l0RW51bUxpdGVyYWwobm9k
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFbnVtTGl0ZXJhbCBo
YXMgbm8gdHlwZSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRFbnVtTWVtYmVyKG5vZGUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRW51bU1lbWJlciBoYXMg
bm8gdHlwZSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRGb3JMb29wKG5vZGUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRm9yTG9vcCBoYXMgbm8gdHlwZSIp
OwotICAgICAgICB9Ci0gICAgICAgIHZpc2l0R2VuZXJpY0xpdGVyYWwobm9kZSkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgfQot
ICAgICAgICB2aXNpdElmU3RhdGVtZW50KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiSWZTdGF0ZW1lbnQgaGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZpc2l0UHJvZ3JhbShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlByb2dyYW0gaGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZp
c2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiUHJvdG9jb2xEZWNsIGhhcyBubyB0eXBlIik7Ci0gICAgICAgIH0KLQotICAgICAgICB2
aXNpdFByb3RvY29sRnVuY0RlY2wobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJQcm90b2NvbEZ1bmNEZWNsIGhhcyBubyB0eXBlIik7Ci0gICAgICAgIH0KLQot
ICAgICAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiUHJvdG9jb2xSZWYgaGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZpc2l0UmV0dXJuKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiUmV0dXJuIGhhcyBubyB0eXBlIik7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNp
dFN3aXRjaENhc2Uobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJTd2l0Y2hDYXNlIGhhcyBubyB0eXBlIik7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFN3
aXRjaFN0YXRlbWVudChub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlN3aXRjaFN0YXRlbWVudCBoYXMgbm8gdHlwZSIpOwotICAgICAgICB9Ci0KLSAgICAgICAg
dmlzaXRUcmFwU3RhdGVtZW50KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiVHJhcFN0YXRlbWVudCBoYXMgbm8gdHlwZSIpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdmlzaXRXaGlsZUxvb3Aobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJXaGlsZUxvb3AgaGFzIG5vIHR5cGUiKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gbm9kZS52aXNpdChuZXcgVHlwZVZpc2l0b3IoKSk7Ci19ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvLmdpdGlnbm9yZSBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMzYjlhMjJjYjFhLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy8uZ2l0aWdub3JlCQorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotV0hMU0wgVGVzdHMueGNvZGVwcm9qL3hjdXNlcmRhdGEKLVdITFNMIFRlc3Rz
Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YQotV0hMU0wgVGVzdHMu
eGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3BhY2UveGN1c2VyZGF0YQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9BcHBEZWxl
Z2F0ZS5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9BcHBEZWxlZ2F0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGNkOTIw
NThhOC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9BcHBEZWxlZ2F0ZS5oCQorKysgL2Rldi9udWxsCkBAIC0xLDMy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW1wb3J0IDxDb2NvYS9Db2NvYS5oPgotCi1AaW50ZXJmYWNlIEFwcERlbGVnYXRlIDogTlNPYmpl
Y3QgPE5TQXBwbGljYXRpb25EZWxlZ2F0ZT4KLQotCi1AZW5kCi0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQXBwRGVsZWdh
dGUubSBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0Nv
cmUvQXBwRGVsZWdhdGUubQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFiYzI0OTBi
NTIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvQXBwRGVsZWdhdGUubQkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lt
cG9ydCAiQXBwRGVsZWdhdGUuaCIKLQotQGludGVyZmFjZSBBcHBEZWxlZ2F0ZSAoKQotCi1AZW5k
Ci0KLUBpbXBsZW1lbnRhdGlvbiBBcHBEZWxlZ2F0ZQotCi0tICh2b2lkKWFwcGxpY2F0aW9uRGlk
RmluaXNoTGF1bmNoaW5nOihOU05vdGlmaWNhdGlvbiAqKWFOb3RpZmljYXRpb24gewotICAgIC8v
IEluc2VydCBjb2RlIGhlcmUgdG8gaW5pdGlhbGl6ZSB5b3VyIGFwcGxpY2F0aW9uCi19Ci0KLQot
LSAodm9pZClhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGU6KE5TTm90aWZpY2F0aW9uICopYU5vdGlm
aWNhdGlvbiB7Ci0gICAgLy8gSW5zZXJ0IGNvZGUgaGVyZSB0byB0ZWFyIGRvd24geW91ciBhcHBs
aWNhdGlvbgotfQotCi0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBw
aWNvbnNldC9Db250ZW50cy5qc29uIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9Bc3NldHMueGNhc3NldHMvQXBwSWNvbi5hcHBpY29uc2V0L0Nv
bnRlbnRzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkYjJiMWM3YzZjLi4w
MDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExT
TCBUZXN0cy9Db3JlL0Fzc2V0cy54Y2Fzc2V0cy9BcHBJY29uLmFwcGljb25zZXQvQ29udGVudHMu
anNvbgkKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi17Ci0gICJpbWFnZXMiIDogWwot
ICAgIHsKLSAgICAgICJpZGlvbSIgOiAibWFjIiwKLSAgICAgICJzaXplIiA6ICIxNngxNiIsCi0g
ICAgICAic2NhbGUiIDogIjF4IgotICAgIH0sCi0gICAgewotICAgICAgImlkaW9tIiA6ICJtYWMi
LAotICAgICAgInNpemUiIDogIjE2eDE2IiwKLSAgICAgICJzY2FsZSIgOiAiMngiCi0gICAgfSwK
LSAgICB7Ci0gICAgICAiaWRpb20iIDogIm1hYyIsCi0gICAgICAic2l6ZSIgOiAiMzJ4MzIiLAot
ICAgICAgInNjYWxlIiA6ICIxeCIKLSAgICB9LAotICAgIHsKLSAgICAgICJpZGlvbSIgOiAibWFj
IiwKLSAgICAgICJzaXplIiA6ICIzMngzMiIsCi0gICAgICAic2NhbGUiIDogIjJ4IgotICAgIH0s
Ci0gICAgewotICAgICAgImlkaW9tIiA6ICJtYWMiLAotICAgICAgInNpemUiIDogIjEyOHgxMjgi
LAotICAgICAgInNjYWxlIiA6ICIxeCIKLSAgICB9LAotICAgIHsKLSAgICAgICJpZGlvbSIgOiAi
bWFjIiwKLSAgICAgICJzaXplIiA6ICIxMjh4MTI4IiwKLSAgICAgICJzY2FsZSIgOiAiMngiCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAiaWRpb20iIDogIm1hYyIsCi0gICAgICAic2l6ZSIgOiAiMjU2
eDI1NiIsCi0gICAgICAic2NhbGUiIDogIjF4IgotICAgIH0sCi0gICAgewotICAgICAgImlkaW9t
IiA6ICJtYWMiLAotICAgICAgInNpemUiIDogIjI1NngyNTYiLAotICAgICAgInNjYWxlIiA6ICIy
eCIKLSAgICB9LAotICAgIHsKLSAgICAgICJpZGlvbSIgOiAibWFjIiwKLSAgICAgICJzaXplIiA6
ICI1MTJ4NTEyIiwKLSAgICAgICJzY2FsZSIgOiAiMXgiCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
aWRpb20iIDogIm1hYyIsCi0gICAgICAic2l6ZSIgOiAiNTEyeDUxMiIsCi0gICAgICAic2NhbGUi
IDogIjJ4IgotICAgIH0KLSAgXSwKLSAgImluZm8iIDogewotICAgICJ2ZXJzaW9uIiA6IDEsCi0g
ICAgImF1dGhvciIgOiAieGNvZGUiCi0gIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL0Fzc2V0cy54Y2Fzc2V0cy9Db250ZW50cy5qc29uIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Bc3NldHMueGNhc3NldHMvQ29u
dGVudHMuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE0YTE2NGM5MTguLjAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0NvbnRlbnRzLmpzb24JCisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi17Ci0gICJpbmZvIiA6IHsKLSAgICAidmVyc2lvbiIgOiAxLAotICAg
ICJhdXRob3IiIDogInhjb2RlIgotICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9CYXNlLmxwcm9qL01haW4uc3Rvcnlib2FyZCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQmFzZS5scHJvai9NYWluLnN0b3J5Ym9h
cmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2NzZkOWY3NGNjLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9D
b3JlL0Jhc2UubHByb2ovTWFpbi5zdG9yeWJvYXJkCQorKysgL2Rldi9udWxsCkBAIC0xLDg0NyAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGRvY3VtZW50
IHR5cGU9ImNvbS5hcHBsZS5JbnRlcmZhY2VCdWlsZGVyMy5Db2NvYS5TdG9yeWJvYXJkLlhJQiIg
dmVyc2lvbj0iMy4wIiB0b29sc1ZlcnNpb249IjE0MjY5LjE0IiB0YXJnZXRSdW50aW1lPSJNYWNP
U1guQ29jb2EiIHByb3BlcnR5QWNjZXNzQ29udHJvbD0ibm9uZSIgdXNlQXV0b2xheW91dD0iWUVT
IiBpbml0aWFsVmlld0NvbnRyb2xsZXI9IkI4RC0wTi01d1MiPgotICAgIDxkZXBlbmRlbmNpZXM+
Ci0gICAgICAgIDxwbHVnSW4gaWRlbnRpZmllcj0iY29tLmFwcGxlLkludGVyZmFjZUJ1aWxkZXIu
Q29jb2FQbHVnaW4iIHZlcnNpb249IjE0MjY5LjE0Ii8+Ci0gICAgICAgIDxjYXBhYmlsaXR5IG5h
bWU9ImRvY3VtZW50cyBzYXZlZCBpbiB0aGUgWGNvZGUgOCBmb3JtYXQiIG1pblRvb2xzVmVyc2lv
bj0iOC4wIi8+Ci0gICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPHNjZW5lcz4KLSAgICAgICAgPCEt
LUFwcGxpY2F0aW9uLS0+Ci0gICAgICAgIDxzY2VuZSBzY2VuZUlEPSJKUG8tNHktRlgzIj4KLSAg
ICAgICAgICAgIDxvYmplY3RzPgotICAgICAgICAgICAgICAgIDxhcHBsaWNhdGlvbiBpZD0iaG53
LXhWLTB6biIgc2NlbmVNZW1iZXJJRD0idmlld0NvbnRyb2xsZXIiPgotICAgICAgICAgICAgICAg
ICAgICA8bWVudSBrZXk9Im1haW5NZW51IiB0aXRsZT0iTWFpbiBNZW51IiBzeXN0ZW1NZW51PSJt
YWluIiBpZD0iQVl1LXNLLXFTNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJXSExTTCBUZXN0cyIg
aWQ9IjFYdC1IWS11QnciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZp
ZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJXSExTTCBUZXN0cyIg
c3lzdGVtTWVudT0iYXBwbGUiIGlkPSJ1UXktREQtSkRyIj4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxpdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkFib3V0IFdITFNMIFRlc3RzIiBpZD0iNWtWLVZiLVF4
UyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmll
ck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im9yZGVy
RnJvbnRTdGFuZGFyZEFib3V0UGFuZWw6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJFeHAtQ1ot
VmVtIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
aXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJWT3EteTAtU0VIIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJQcmVmZXJlbmNlc+KApiIg
a2V5RXF1aXZhbGVudD0iLCIgaWQ9IkJPRi1OTS0xY1ciLz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJ3
RkMtVE8tU0NKIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1l
bnVJdGVtIHRpdGxlPSJTZXJ2aWNlcyIgaWQ9Ik5Nby1vbS1ua3oiPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZh
bGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJTZXJ2aWNlcyIgc3lzdGVtTWVudT0i
c2VydmljZXMiIGlkPSJoejktQjQtWHk1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSI0amUtSlItdTZSIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJIaWRlIFdITFNMIFRlc3RzIiBrZXlFcXVpdmFsZW50PSJoIiBpZD0iT2x3LW5QLWJRTiI+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24g
c2VsZWN0b3I9ImhpZGU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJQbk4tVWMtbTY4Ii8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ikhp
ZGUgT3RoZXJzIiBrZXlFcXVpdmFsZW50PSJoIiBpZD0iVmRyLWZwLVh6TyI+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlF
cXVpdmFsZW50TW9kaWZpZXJNYXNrIiBvcHRpb249IllFUyIgY29tbWFuZD0iWUVTIi8+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2Vs
ZWN0b3I9ImhpZGVPdGhlckFwcGxpY2F0aW9uczoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IlZU
NC1hWS1YQ1QiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
SXRlbSB0aXRsZT0iU2hvdyBBbGwiIGlkPSJLZDItbXAtcFVTIj4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxl
bnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idW5oaWRlQWxsQXBwbGljYXRpb25zOiIgdGFy
Z2V0PSJBZHktaEktNWdkIiBpZD0iRGhnLUxlLXhveCIvPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0iWUVTIiBpZD0ia0N4
LU9FLXZnVCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
SXRlbSB0aXRsZT0iUXVpdCBXSExTTCBUZXN0cyIga2V5RXF1aXZhbGVudD0icSIgaWQ9IjRzYi00
cy1WTGkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YWN0aW9uIHNlbGVjdG9yPSJ0ZXJtaW5hdGU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJU
ZTctcG4tWXpGIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRlbXM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudT4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51SXRlbSB0aXRsZT0iRmlsZSIgaWQ9ImRNcy1jSS1telEiPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFz
ayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUi
IHRpdGxlPSJGaWxlIiBpZD0iYmliLVVqLXZ6dSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnVJdGVtIHRpdGxlPSJOZXciIGtleUVxdWl2YWxlbnQ9Im4iIGlkPSJXYXMtSkEtdEds
Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFj
dGlvbiBzZWxlY3Rvcj0ibmV3RG9jdW1lbnQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSI0U2kt
WE4tYzU0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0
ZW0gdGl0bGU9Ik9wZW7igKYiIGtleUVxdWl2YWxlbnQ9Im8iIGlkPSJJQW8tU1ktZmQ5Ij4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBz
ZWxlY3Rvcj0ib3BlbkRvY3VtZW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iYlZuLU5NLUtO
WiIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5l
Y3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0
ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJPcGVuIERlZmF1bHQiIGtleUVxdWl2YWxlbnQ9IkQiIGlkPSJhZWktMnotRmRTIj4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBz
ZWxlY3Rvcj0ibG9hZERlZmF1bHQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJRa2MtbW8tTThx
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9Ik9wZW4gTWFuZGVsYnJvdCIga2V5RXF1aXZhbGVudD0iZCIgaWQ9Ik9vNy1Mdi1peFoiPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJsb2FkTWFuZGVsYnJvdDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9InJCdS1U
WS1xOXUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9j
b25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRl
bSB0aXRsZT0iT3BlbiBKdWxpYSIga2V5RXF1aXZhbGVudD0iaiIgaWQ9Imdobi1UTy1QZjgiPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJsb2FkSnVsaWE6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJMZDMtTlktaGpa
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9Ik9wZW4gUmVjZW50IiBpZD0idFhJLW1yLXd3cyI+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9Ik9wZW4gUmVjZW50IiBzeXN0ZW1NZW51PSJyZWNl
bnREb2N1bWVudHMiIGlkPSJvYXMtT2MtZmlaIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxpdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkNsZWFyIE1lbnUiIGlk
PSJ2TlktcnotajQyIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1h
c2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iY2xlYXJSZWNlbnREb2N1
bWVudHM6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJEYWEtOWQtQjNVIi8+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvaXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbWVudT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJ
dGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0
aXRsZT0iT3BlbiBOYXRpdmUgRmxhdCBDb2xvciIgaWQ9IjRmRi1sZS1iejIiPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5
RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJsb2FkTmF0aXZlRmxhdENvbG9y
OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRDhWLXRULVV1ZSIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJPcGVuIE5hdGl2ZSBNYW5k
ZWxicm90IiBpZD0idmtBLWc1LUs1ZiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNr
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0
aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxh
Y3Rpb24gc2VsZWN0b3I9ImxvYWROYXRpdmVNYW5kZWxicm90OiIgdGFyZ2V0PSJBZHktaEktNWdk
IiBpZD0iZjBmLXpQLUVYWiIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnVJdGVtIHRpdGxlPSJPcGVuIE5hdGl2ZSBKdWxpYSIgaWQ9InJhZy1oSS0xN0giPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNr
IGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJsb2FkTmF0aXZl
SnVsaWE6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJsVmgtbGwtc2c4Ii8+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZ
RVMiIGlkPSJtNTQtSXMtaUxFIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1lbnVJdGVtIHRpdGxlPSJDbG9zZSIga2V5RXF1aXZhbGVudD0idyIgaWQ9IkRWby1h
Ry1waUciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YWN0aW9uIHNlbGVjdG9yPSJwZXJmb3JtQ2xvc2U6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlk
PSJIbU8tTHMtaTdRIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gdGl0bGU9IlNhdmXigKYiIGtleUVxdWl2YWxlbnQ9InMiIGlkPSJweHgtNTktUFhW
Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFj
dGlvbiBzZWxlY3Rvcj0ic2F2ZURvY3VtZW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0idGVa
LVhCLXFKWSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJTYXZlIEFz4oCmIiBrZXlFcXVpdmFsZW50PSJTIiBpZD0iQnc3LUZULWkzQSI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9u
cz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rp
b24gc2VsZWN0b3I9InNhdmVEb2N1bWVudEFzOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0ibURm
LXpyLUkwQyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJSZXZlcnQgdG8gU2F2ZWQiIGtleUVxdWl2YWxlbnQ9InIiIGlkPSJLYVctZnQt
ODVIIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5l
Y3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGFjdGlvbiBzZWxlY3Rvcj0icmV2ZXJ0RG9jdW1lbnRUb1NhdmVkOiIgdGFyZ2V0PSJBZHktaEkt
NWdkIiBpZD0iaUozLVB2LWt3cSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0iWUVTIiBpZD0iYUpoLWk0LWJlZiIvPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0i
UGFnZSBTZXR1cOKApiIga2V5RXF1aXZhbGVudD0iUCIgaWQ9InFJUy1XOC1TaUsiPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0i
a2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIgc2hpZnQ9IllFUyIgY29tbWFuZD0iWUVTIi8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24g
c2VsZWN0b3I9InJ1blBhZ2VMYXlvdXQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJEaW4tcnot
Z0M1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
dGl0bGU9IlByaW504oCmIiBrZXlFcXVpdmFsZW50PSJwIiBpZD0iYVRsLTF1LUpGUyI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2Vs
ZWN0b3I9InByaW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0icWFaLTR3LWFvTyIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkVk
aXQiIGlkPSI1UUYtT2EtcDBUIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1v
ZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iRWRpdCIgaWQ9
Ilc0OC02Zi00RGwiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1z
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRs
ZT0iVW5kbyIga2V5RXF1aXZhbGVudD0ieiIgaWQ9ImRSSi00bi1ZemciPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ1
bmRvOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iTTZlLWN1LWc3ViIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJSZWRvIiBrZXlFcXVp
dmFsZW50PSJaIiBpZD0iNmRoLXpTLVZhbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InJlZG86IiB0YXJnZXQ9IkFk
eS1oSS01Z2QiIGlkPSJvSUEtUnMtNk9EIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJXUlYtTkktRXh6
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJDdXQiIGtleUVxdWl2YWxlbnQ9IngiIGlkPSJ1UmwtaVktdW5HIj4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0i
Y3V0OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iWUplLTY4LUk5cyIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJDb3B5IiBrZXlFcXVp
dmFsZW50PSJjIiBpZD0ieDN2LUdHLWlXVSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImNvcHk6IiB0YXJnZXQ9IkFk
eS1oSS01Z2QiIGlkPSJHMWYtR0wtSm95Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlBhc3RlIiBrZXlFcXVpdmFsZW50PSJ2IiBpZD0i
Z1ZBLVU0LXNkTCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBhc3RlOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0i
VXZTLThlLVFkZyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1l
bnVJdGVtIHRpdGxlPSJQYXN0ZSBhbmQgTWF0Y2ggU3R5bGUiIGtleUVxdWl2YWxlbnQ9IlYiIGlk
PSJXZVQtM1YtendrIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siIG9wdGlvbj0i
WUVTIiBjb21tYW5kPSJZRVMiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGFzdGVBc1BsYWluVGV4dDoiIHRhcmdl
dD0iQWR5LWhJLTVnZCIgaWQ9ImNFaC1LWC13SlEiLz4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iRGVsZXRlIiBpZD0icGEzLVFJLXUyayI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1h
c2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImRlbGV0ZToi
IHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjBNay1NbC1QYU0iLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU2VsZWN0IEFsbCIga2V5RXF1
aXZhbGVudD0iYSIgaWQ9IlJ1dy02bS1CMm0iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzZWxlY3RBbGw6IiB0YXJn
ZXQ9IkFkeS1oSS01Z2QiIGlkPSJWTm0tTWktZGlOIi8+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJ1eWwt
aDgtWE8yIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJGaW5kIiBpZD0iNEVOLXlBLXAwdSI+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IkZpbmQiIGlkPSIxYjctbDAtbnh4Ij4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpdGVtcz4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
dGl0bGU9IkZpbmTigKYiIHRhZz0iMSIga2V5RXF1aXZhbGVudD0iZiIgaWQ9Ilh6NS1uNC1PMFci
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJwZXJmb3JtRmluZFBhbmVsQWN0
aW9uOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iY0Q3LVFzLUJONCIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25z
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1lbnVJdGVtIHRpdGxlPSJGaW5kIGFuZCBSZXBsYWNl4oCmIiB0YWc9IjEyIiBrZXlF
cXVpdmFsZW50PSJmIiBpZD0iWUV5LUpILVRmeiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVp
dmFsZW50TW9kaWZpZXJNYXNrIiBvcHRpb249IllFUyIgY29tbWFuZD0iWUVTIi8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0
aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBlcmZvcm1GaW5kUGFuZWxBY3Rpb246IiB0YXJn
ZXQ9IkFkeS1oSS01Z2QiIGlkPSJXRDMtR2ctNUFKIi8+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IkZpbmQgTmV4dCIgdGFnPSIyIiBrZXlFcXVpdmFsZW50PSJnIiBpZD0icTA5
LWZULVN5ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBlcmZvcm1GaW5k
UGFuZWxBY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJORG8tUlotdjlSIi8+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkZpbmQgUHJldmlvdXMiIHRhZz0iMyIga2V5
RXF1aXZhbGVudD0iRyIgaWQ9Ik93TS1taC1RTVYiPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJwZXJmb3JtRmluZFBhbmVsQWN0aW9uOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBp
ZD0iSE9oLXNZLTNheSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJVc2Ug
U2VsZWN0aW9uIGZvciBGaW5kIiB0YWc9IjciIGtleUVxdWl2YWxlbnQ9ImUiIGlkPSJidUotdWct
cEt0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGVyZm9ybUZpbmRQYW5l
bEFjdGlvbjoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IlU3Ni1udi1wNUQiLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0
aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iSnVtcCB0byBTZWxlY3Rpb24iIGtleUVxdWl2YWxl
bnQ9ImoiIGlkPSJTMHAtb0MtbUxkIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rv
cj0iY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYToiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9
IklPRy02RC1nNUIiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51PgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTcGVsbGluZyBhbmQgR3JhbW1hciIgaWQ9
IkR2MS1pby1ZdjciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUi
IHRpdGxlPSJTcGVsbGluZyIgaWQ9IjNJTi1zVS0zQmciPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU2hvdyBTcGVs
bGluZyBhbmQgR3JhbW1hciIga2V5RXF1aXZhbGVudD0iOiIgaWQ9IkhGby1jeS16eEkiPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzaG93R3Vlc3NQYW5lbDoiIHRhcmdldD0i
QWR5LWhJLTVnZCIgaWQ9InZGai1Lcy1oeTMiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRl
bSB0aXRsZT0iQ2hlY2sgRG9jdW1lbnQgTm93IiBrZXlFcXVpdmFsZW50PSI7IiBpZD0iaHoyLUNV
LUNSNyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImNoZWNrU3BlbGxpbmc6
IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJmejctVkMtcmVNIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJiTnctb2QtbXA1Ii8+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciIGlkPSJyYkQtUmgtd0lOIj4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1v
ZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25z
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc6IiB0
YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSI3dzYtUXotMGtCIi8+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gdGl0bGU9IkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIgaWQ9Im1LNi0ycC00
SkciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVHcmFtbWFyQ2hlY2tpbmc6IiB0
YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJtdUQtUW4tajR3Ii8+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gdGl0bGU9IkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIgaWQ9Ijc4WS1o
QS02MnYiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSIybE0tUWktV0FQIi8+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvaXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
SXRlbSB0aXRsZT0iU3Vic3RpdHV0aW9ucyIgaWQ9IjlpYy1GTC1vYngiPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1
aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJTdWJzdGl0dXRpb25zIiBpZD0i
RmVNLUQ4LVdWciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTaG93IFN1YnN0aXR1dGlvbnMiIGlkPSJ6NkYtRlct
M256Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNv
bm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ib3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQ
YW5lbDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9Im9rdS1tci1pU3EiLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9u
cz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9ImdQeC1DOS11VU8iLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IlNtYXJ0IENvcHkvUGFzdGUiIGlkPSI5eXQtNEItblNNIj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVy
TWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlU21hcnRJbnNlcnREZWxldGU6IiB0YXJnZXQ9IkFkeS1o
SS01Z2QiIGlkPSIzSUotU2UtRFpEIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9IlNtYXJ0IFF1b3RlcyIgaWQ9ImhRYi0ydi1mWXYiPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5
RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVj
dG9yPSJ0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbjoiIHRhcmdldD0iQWR5LWhJLTVn
ZCIgaWQ9InB0cS14ZC1RT0EiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0i
U21hcnQgRGFzaGVzIiBpZD0icmdNLWY0LXljbiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVp
dmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9
InRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlk
PSJvQ3QtcE8tOWdTIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlNtYXJ0
IExpbmtzIiBpZD0iY3dMLVAxLWppZCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50
TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2ds
ZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJHaXAtRTMt
Rm92Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkRhdGEgRGV0ZWN0b3Jz
IiBpZD0idFJyLXBkLTFQUyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZUF1dG9t
YXRpY0RhdGFEZXRlY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJSMUktTnEtS2JsIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlRleHQgUmVwbGFjZW1lbnQiIGlk
PSJIRlEtZ0stTkZBIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1h
c2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlQXV0b21hdGlj
VGV4dFJlcGxhY2VtZW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRHZQLUZlLVB5NiIvPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2l0ZW1zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gdGl0bGU9IlRyYW5zZm9ybWF0aW9ucyIgaWQ9IjJvSS1Sbi1aSkMiPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0i
a2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJUcmFuc2Zvcm1hdGlv
bnMiIGlkPSJjOGEteTYtVlFkIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxpdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ik1ha2UgVXBwZXIgQ2FzZSIgaWQ9InZt
Vi02ZC03akkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIv
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ1cHBlcmNhc2VXb3JkOiIgdGFy
Z2V0PSJBZHktaEktNWdkIiBpZD0ic1BoLVRrLWVkdSIvPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1l
bnVJdGVtIHRpdGxlPSJNYWtlIExvd2VyIENhc2UiIGlkPSJkOU0tQ0QtYU1kIj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVy
TWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGFjdGlvbiBzZWxlY3Rvcj0ibG93ZXJjYXNlV29yZDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9
ImlVWi1iNS1oaWwiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQ2FwaXRh
bGl6ZSIgaWQ9IlVFWi1Ccy1scUciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1v
ZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJjYXBpdGFs
aXplV29yZDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjI2SC1UTC1uc2giLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0
aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9pdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVu
dUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJTcGVlY2giIGlkPSJ4ckUtTVotalgwIj4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2Rp
Zmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iU3BlZWNoIiBpZD0iM3JTLVpBLU5vSCI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJTdGFydCBTcGVha2luZyIgaWQ9Illuay1mOC1jTFoiPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtl
eT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJzdGFydFNwZWFraW5nOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iNjU0LU5n
LWt5bCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTdG9wIFNwZWFraW5n
IiBpZD0iT3l6LWR5LURHbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InN0b3BTcGVha2lu
ZzoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9ImRYOC02cC1qeTkiLz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9pdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9IkZvcm1hdCIgaWQ9Imp4VC1DVS1uSVMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJG
b3JtYXQiIGlkPSJHRU8tSXctY0tyIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxpdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IkZvbnQiIGlkPSJHaTUtMVMtUlFCIj4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRN
b2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iRm9udCIgc3lzdGVtTWVudT0iZm9udCIgaWQ9
ImFYYS1hTS1KYXEiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGl0ZW1zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU2hvdyBGb250cyIga2V5RXF1aXZhbGVudD0idCIg
aWQ9IlE1ZS04Sy1ORHEiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJvcmRl
ckZyb250Rm9udFBhbmVsOiIgdGFyZ2V0PSJZTHktNjUtMWJ6IiBpZD0iV0hyLW5xLTJ4QSIvPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJCb2xkIiB0YWc9IjIiIGtleUVxdWl2
YWxlbnQ9ImIiIGlkPSJHQjktT00tZTI3Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxl
Y3Rvcj0iYWRkRm9udFRyYWl0OiIgdGFyZ2V0PSJZTHktNjUtMWJ6IiBpZD0iaHFrLWhyLXNZViIv
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJJdGFsaWMiIHRhZz0iMSIga2V5
RXF1aXZhbGVudD0iaSIgaWQ9IlZqeC14aS1uanEiPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJhZGRGb250VHJhaXQ6IiB0YXJnZXQ9IllMeS02NS0xYnoiIGlkPSJJSFYtT0It
YzAzIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlVuZGVybGluZSIga2V5
RXF1aXZhbGVudD0idSIgaWQ9IldSRy1DRC1LMVMiPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJ1bmRlcmxpbmU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJGWVMtMmItSkFZ
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlk
PSI1Z1QtS0MtV1NPIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJCaWdnZXIiIHRhZz0iMyIga2V5RXF1aXZhbGVu
dD0iKyIgaWQ9IlB0cC1TUC1WRUwiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJtb2RpZnlGb250OiIgdGFyZ2V0PSJZTHktNjUtMWJ6IiBpZD0iVWM3LWRpLVVuTCIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTbWFsbGVyIiB0YWc9IjQiIGtleUVxdWl2
YWxlbnQ9Ii0iIGlkPSJpMWQtRXItcVNUIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxl
Y3Rvcj0ibW9kaWZ5Rm9udDoiIHRhcmdldD0iWUx5LTY1LTFieiIgaWQ9IkhjWC1MZi1lTmQiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9Imt4
My1Eay14M0IiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Iktlcm4iIGlkPSJqQlEtcjYtVksyIj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVy
TWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51
IiB0aXRsZT0iS2VybiIgaWQ9InRsRC1PYS1vQU0iPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
SXRlbSB0aXRsZT0iVXNlIERlZmF1bHQiIGlkPSJHVWEtZU8tY3dZIj4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1v
ZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idXNlU3RhbmRh
cmRLZXJuaW5nOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iNmRrLTlsLUNrZyIvPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJVc2UgTm9uZSIgaWQ9ImNEQi1JSy1oYlIiPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJN
YXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0dXJuT2ZmS2VybmluZzoi
IHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IlU4YS1nei1NYWEiLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25u
ZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVGln
aHRlbiIgaWQ9IjQ2UC1jQi1BWWoiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5
RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0aWdodGVuS2VybmluZzoiIHRhcmdldD0iQWR5
LWhJLTVnZCIgaWQ9ImhyNy1Oei04cm8iLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTG9vc2VuIiBpZD0ib2dj
LXJYLXRDMSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxh
Y3Rpb24gc2VsZWN0b3I9Imxvb3Nlbktlcm5pbmc6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSI4
aTQtZjktRktFIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvaXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbWVudT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTGlnYXR1cmVzIiBp
ZD0ibzZlLXIwLU1XcSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJN
YXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IkxpZ2F0dXJlcyIgaWQ9IncwbS12eS1T
QzkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGl0ZW1zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVXNlIERlZmF1bHQiIGlk
PSJhZ3QtVUwtMGUzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxl
bnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGFjdGlvbiBzZWxlY3Rvcj0idXNlU3RhbmRhcmRMaWdhdHVyZXM6IiB0YXJnZXQ9IkFkeS1o
SS01Z2QiIGlkPSI3dVItd2QtRHg2Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlVzZSBOb25lIiBpZD0iSjd5
LWxNLXFQViI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxh
Y3Rpb24gc2VsZWN0b3I9InR1cm5PZmZMaWdhdHVyZXM6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlk
PSJpWDItZ0EtSWx6Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlVzZSBBbGwiIGlkPSJ4UUQtMWYtVzR0Ij4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2si
Lz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxl
Y3Rvcj0idXNlQWxsTGlnYXR1cmVzOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iS2NCLWtBLVR1
SyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2l0ZW1zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkJhc2VsaW5lIiBpZD0iT2FRLVgz
LVZzbyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51IGtleT0ic3VibWVudSIgdGl0bGU9IkJhc2VsaW5lIiBpZD0iaWprLUVCLWRnYSI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJVc2UgRGVmYXVsdCIgaWQ9IjNPbS1FeS0y
VksiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVy
TWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJ1bnNjcmlwdDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjB2Wi05NS1Zd24i
Lz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51SXRlbSB0aXRsZT0iU3VwZXJzY3JpcHQiIGlkPSJScWMtMzQtY0lGIj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ic3Vw
ZXJzY3JpcHQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSIzcVYtZm8td3BVIi8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
dGl0bGU9IlN1YnNjcmlwdCIgaWQ9IkkwUy1naC00NmwiPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJN
YXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzdWJzY3JpcHQ6IiB0YXJn
ZXQ9IkFkeS1oSS01Z2QiIGlkPSJRNlctNFctSUd6Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlJhaXNlIiBp
ZD0iMmg3LUVSLUFvRyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFs
ZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxhY3Rpb24gc2VsZWN0b3I9InJhaXNlQmFzZWxpbmU6IiB0YXJnZXQ9IkFkeS1oSS01Z2Qi
IGlkPSI0c2stMzEtN1E5Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ikxvd2VyIiBpZD0iMXR4LVcwLXhEdyI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNr
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2Vs
ZWN0b3I9Imxvd2VyQmFzZWxpbmU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJPRjEtYmMtS1c0
Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9Ik5k
dy1xMy1mYXEiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlNob3cgQ29sb3JzIiBrZXlFcXVpdmFsZW50PSJDIiBp
ZD0iYmduLUNULWNFayI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im9yZGVy
RnJvbnRDb2xvclBhbmVsOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0ibVNYLVh6LURWMyIvPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0iWUVTIiBpZD0iaU1z
LXpBLVVGSiIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQ29weSBTdHlsZSIga2V5RXF1aXZhbGVudD0iYyIgaWQ9
IjVWdi1sei1Cc0QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFz
ayIgb3B0aW9uPSJZRVMiIGNvbW1hbmQ9IllFUyIvPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJjb3B5Rm9udDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IkdKTy14QS1MNHEi
Lz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iUGFzdGUgU3R5bGUiIGtleUVx
dWl2YWxlbnQ9InYiIGlkPSJ2S0Mtak0tTWtIIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2
YWxlbnRNb2RpZmllck1hc2siIG9wdGlvbj0iWUVTIiBjb21tYW5kPSJZRVMiLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGFzdGVGb250OiIgdGFyZ2V0PSJBZHktaEktNWdk
IiBpZD0iSmZELUNMLWxlTyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlRleHQiIGlkPSJGYWwtSTQtUFpr
Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVy
TWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iVGV4
dCIgaWQ9ImQ5Yy1tZS1MMkgiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGl0ZW1zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQWxpZ24gTGVmdCIga2V5RXF1aXZhbGVu
dD0ieyIgaWQ9IlpNMS02US15eTEiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJhbGlnbkxlZnQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJ6VXYtUjEtdUFhIi8+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkNlbnRlciIga2V5RXF1aXZhbGVudD0ifCIg
aWQ9IlZJWS1BZy16Y2IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJhbGln
bkNlbnRlcjoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9InNwWC1tay1rY1MiLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0
aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iSnVzdGlmeSIgaWQ9Iko1VS01dy1nMjMiPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9k
aWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YWN0aW9uIHNlbGVjdG9yPSJhbGlnbkp1c3RpZmllZDoiIHRhcmdldD0iQWR5LWhJLTVn
ZCIgaWQ9ImxqTC03VS1qTkQiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0i
QWxpZ24gUmlnaHQiIGtleUVxdWl2YWxlbnQ9In0iIGlkPSJ3YjItdkQtbHE0Ij4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iYWxpZ25SaWdodDoiIHRhcmdldD0iQWR5LWhJLTVn
ZCIgaWQ9InI0OC1iRy1ZZVkiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFy
YXRvckl0ZW09IllFUyIgaWQ9IjRzMi1HWS1WZksiLz4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IldyaXRpbmcgRGly
ZWN0aW9uIiBpZD0iSDFiLVNpLW85SiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50
TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IldyaXRpbmcgRGlyZWN0
aW9uIiBpZD0iOG1yLXNtLVlqZCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJQYXJhZ3JhcGgiIGVuYWJsZWQ9Ik5PIiBpZD0iWnZPLUdrLVFVSCI+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
b2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaWQ9IllHcy1qNS1TQVIiPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
c3RyaW5nIGtleT0idGl0bGUiPglEZWZhdWx0PC9zdHJpbmc+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmll
ck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25u
ZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im1ha2VCYXNlV3JpdGlu
Z0RpcmVjdGlvbk5hdHVyYWw6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJxdFYtNWUtVUJQIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gaWQ9IkxiaC1KMi1xVlUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5nIGtleT0idGl0bGUi
PglMZWZ0IHRvIFJpZ2h0PC9zdHJpbmc+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJr
ZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvbkxl
ZnRUb1JpZ2h0OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iUzBYLTlTLVFTZiIvPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IGlkPSJqRnEtdEItNEt4Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZyBrZXk9InRpdGxlIj4JUmlnaHQg
dG8gTGVmdDwvc3RyaW5nPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZh
bGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YWN0aW9uIHNlbGVjdG9yPSJtYWtlQmFzZVdyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjVmay1xQi1BcUoiLz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9j
b25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFy
YXRvckl0ZW09IllFUyIgaWQ9InN3cC1nci1hMjEiLz4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9
IlNlbGVjdGlvbiIgZW5hYmxlZD0iTk8iIGlkPSJjcXYtZmotSWhBIj4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1v
ZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpZD0iTm9wLWNqLTkzUSI+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz
dHJpbmcga2V5PSJ0aXRsZSI+CURlZmF1bHQ8L3N0cmluZz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVy
TWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5l
Y3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ibWFrZVRleHRXcml0aW5n
RGlyZWN0aW9uTmF0dXJhbDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9ImxQSS1TZS1aSHAiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51SXRlbSBpZD0iQmdNLXZlLWM5MyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmcga2V5PSJ0aXRsZSI+
CUxlZnQgdG8gUmlnaHQ8L3N0cmluZz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9Imtl
eUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ibWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVm
dFRvUmlnaHQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJjYVctQnYtdzk0Ii8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
aWQ9IlJCNC1TbS1IdUMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5nIGtleT0idGl0bGUiPglSaWdodCB0
byBMZWZ0PC9zdHJpbmc+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFs
ZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxhY3Rpb24gc2VsZWN0b3I9Im1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0
OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRVhELTZyLVpVdSIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJmS3ktZzktMWdtIi8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJTaG93IFJ1bGVyIiBpZD0idkxtLTNJLUlVTCI+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlF
cXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0
b3I9InRvZ2dsZVJ1bGVyOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRk94LUhKLUt3WSIvPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJDb3B5IFJ1bGVyIiBrZXlFcXVpdmFs
ZW50PSJjIiBpZD0iTWtWLVByLVBLNSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50
TW9kaWZpZXJNYXNrIiBjb250cm9sPSJZRVMiIGNvbW1hbmQ9IllFUyIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YWN0aW9uIHNlbGVjdG9yPSJjb3B5UnVsZXI6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlk
PSI3MWktZlctM1cyIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlBhc3Rl
IFJ1bGVyIiBrZXlFcXVpdmFsZW50PSJ2IiBpZD0iTFZNLWtPLWZWSSI+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sg
a2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIiBjb250cm9sPSJZRVMiIGNvbW1hbmQ9IllF
UyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJwYXN0ZVJ1bGVyOiIgdGFy
Z2V0PSJBZHktaEktNWdkIiBpZD0iY1NoLXdkLXFNMiIvPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1z
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRlbXM+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbWVudT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVmll
dyIgaWQ9Ikg4aC03Yi1NNHYiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9k
aWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJWaWV3IiBpZD0i
SHlWLWZoLVJnTyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJTaG93IFRvb2xiYXIiIGtleUVxdWl2YWxlbnQ9InQiIGlkPSJzblctUzgtQ3c1Ij4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9
ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siIG9wdGlvbj0iWUVTIiBjb21tYW5kPSJZRVMiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25z
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlv
biBzZWxlY3Rvcj0idG9nZ2xlVG9vbGJhclNob3duOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0i
QlhZLXdjLXowQyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1l
bnVJdGVtIHRpdGxlPSJDdXN0b21pemUgVG9vbGJhcuKApiIgaWQ9IjFVSy04bi1RUFAiPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtl
eT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJydW5Ub29sYmFyQ3Vz
dG9taXphdGlvblBhbGV0dGU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJwUUktZzMtTVRXIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBh
cmF0b3JJdGVtPSJZRVMiIGlkPSJoQjMtTEYtaDBZIi8+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJSZXNldCB2aWV3cG9ydCIga2V5RXF1
aXZhbGVudD0iUiIgaWQ9IjBSRS1BbS14U2MiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJyZXNldFZpZXdwb3J0OiIg
dGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iUGRGLXViLTM1RiIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTaG93IFNpZGViYXIiIGtleUVx
dWl2YWxlbnQ9InMiIGlkPSJrSVAtdmYtaGFFIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmll
ck1hc2siIGNvbnRyb2w9IllFUyIgY29tbWFuZD0iWUVTIi8+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZVNv
dXJjZUxpc3Q6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJpd2EtZ2MtNUtNIi8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkVudGVyIEZ1
bGwgU2NyZWVuIiBrZXlFcXVpdmFsZW50PSJmIiBpZD0iNEo3LWRQLXR4YSI+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlF
cXVpdmFsZW50TW9kaWZpZXJNYXNrIiBjb250cm9sPSJZRVMiIGNvbW1hbmQ9IllFUyIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJ0b2dnbGVGdWxsU2NyZWVuOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iZFUzLU1B
LTFScSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVu
dUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0
ZW0gdGl0bGU9IldpbmRvdyIgaWQ9ImFVRi1kMS01YlIiPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIv
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRp
dGxlPSJXaW5kb3ciIHN5c3RlbU1lbnU9IndpbmRvdyIgaWQ9IlRkNy1hRC01bG8iPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTWluaW1pemUiIGtleUVxdWl2
YWxlbnQ9Im0iIGlkPSJPWTctV0YtcG9WIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGVyZm9ybU1pbmlhdHVyaXpl
OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iVndULVdELVlQZSIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJab29tIiBpZD0iUjRvLW4y
LUVxNCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2Rp
Zmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBl
cmZvcm1ab29tOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRElsLWNDLWNDcyIvPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRl
bT0iWUVTIiBpZD0iZXUzLTdpLXlJTSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQnJpbmcgQWxsIHRvIEZyb250IiBpZD0iTEUyLWFS
LTBYSiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2Rp
Zmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImFy
cmFuZ2VJbkZyb250OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRFJOLWZ1LWdRaCIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ikhl
bHAiIGlkPSJ3cHItM3EtTWNkIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1v
ZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iSGVscCIgc3lz
dGVtTWVudT0iaGVscCIgaWQ9IkYyUy1mei1OVlEiPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGl0ZW1zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtZW51SXRlbSB0aXRsZT0iV0hMU0wgVGVzdHMgSGVscCIga2V5RXF1aXZhbGVudD0iPyIg
aWQ9IkZLRS1TbS1LdW0iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzaG93SGVscDoiIHRhcmdldD0iQWR5LWhJLTVn
ZCIgaWQ9Ink3WC0yUS05bm8iLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9pdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51PgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICA8L2l0ZW1zPgotICAgICAgICAgICAgICAgICAgICA8L21lbnU+Ci0gICAgICAgICAgICAgICAg
ICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRsZXQgcHJvcGVy
dHk9ImRlbGVnYXRlIiBkZXN0aW5hdGlvbj0iVm9lLVR4LXJMQyIgaWQ9IlByRC1mdS1QNm0iLz4K
LSAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICA8L2Fw
cGxpY2F0aW9uPgotICAgICAgICAgICAgICAgIDxjdXN0b21PYmplY3QgaWQ9IlZvZS1UeC1yTEMi
IGN1c3RvbUNsYXNzPSJBcHBEZWxlZ2F0ZSIvPgotICAgICAgICAgICAgICAgIDxjdXN0b21PYmpl
Y3QgaWQ9IllMeS02NS0xYnoiIGN1c3RvbUNsYXNzPSJOU0ZvbnRNYW5hZ2VyIi8+Ci0gICAgICAg
ICAgICAgICAgPGN1c3RvbU9iamVjdCBpZD0iQWR5LWhJLTVnZCIgdXNlckxhYmVsPSJGaXJzdCBS
ZXNwb25kZXIiIGN1c3RvbUNsYXNzPSJOU1Jlc3BvbmRlciIgc2NlbmVNZW1iZXJJRD0iZmlyc3RS
ZXNwb25kZXIiLz4KLSAgICAgICAgICAgIDwvb2JqZWN0cz4KLSAgICAgICAgICAgIDxwb2ludCBr
ZXk9ImNhbnZhc0xvY2F0aW9uIiB4PSI3NSIgeT0iMC4wIi8+Ci0gICAgICAgIDwvc2NlbmU+Ci0g
ICAgICAgIDwhLS1XaW5kb3cgQ29udHJvbGxlci0tPgotICAgICAgICA8c2NlbmUgc2NlbmVJRD0i
UjJWLUIwLW5JNCI+Ci0gICAgICAgICAgICA8b2JqZWN0cz4KLSAgICAgICAgICAgICAgICA8d2lu
ZG93Q29udHJvbGxlciBpZD0iQjhELTBOLTV3UyIgc2NlbmVNZW1iZXJJRD0idmlld0NvbnRyb2xs
ZXIiPgotICAgICAgICAgICAgICAgICAgICA8d2luZG93IGtleT0id2luZG93IiB0aXRsZT0iV2lu
ZG93IiBhbGxvd3NUb29sVGlwc1doZW5BcHBsaWNhdGlvbklzSW5hY3RpdmU9Ik5PIiBhdXRvcmVj
YWxjdWxhdGVzS2V5Vmlld0xvb3A9Ik5PIiByZWxlYXNlZFdoZW5DbG9zZWQ9Ik5PIiB2aXNpYmxl
QXRMYXVuY2g9Ik5PIiBhbmltYXRpb25CZWhhdmlvcj0iZGVmYXVsdCIgaWQ9IklRdi1JQi1pTEEi
PgotICAgICAgICAgICAgICAgICAgICAgICAgPHdpbmRvd1N0eWxlTWFzayBrZXk9InN0eWxlTWFz
ayIgdGl0bGVkPSJZRVMiIGNsb3NhYmxlPSJZRVMiIG1pbmlhdHVyaXphYmxlPSJZRVMiIHJlc2l6
YWJsZT0iWUVTIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8d2luZG93UG9zaXRpb25NYXNr
IGtleT0iaW5pdGlhbFBvc2l0aW9uTWFzayIgbGVmdFN0cnV0PSJZRVMiIHJpZ2h0U3RydXQ9IllF
UyIgdG9wU3RydXQ9IllFUyIgYm90dG9tU3RydXQ9IllFUyIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPHJlY3Qga2V5PSJjb250ZW50UmVjdCIgeD0iMTk2IiB5PSIyNDAiIHdpZHRoPSI0ODAi
IGhlaWdodD0iMjcwIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9InNjcmVl
blJlY3QiIHg9IjAuMCIgeT0iMC4wIiB3aWR0aD0iMTY4MCIgaGVpZ2h0PSIxMDI3Ii8+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG91dGxldCBwcm9wZXJ0eT0iZGVsZWdhdGUiIGRlc3RpbmF0aW9uPSJCOEQtME4tNXdT
IiBpZD0iOThyLWlOLXpaYyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9u
cz4KLSAgICAgICAgICAgICAgICAgICAgPC93aW5kb3c+Ci0gICAgICAgICAgICAgICAgICAgIDxj
b25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzZWd1ZSBkZXN0aW5hdGlvbj0i
WGZHLWxRLTl3RCIga2luZD0icmVsYXRpb25zaGlwIiByZWxhdGlvbnNoaXA9IndpbmRvdy5zaGFk
b3dlZENvbnRlbnRWaWV3Q29udHJvbGxlciIgaWQ9ImNxMi1GRS1KUU0iLz4KLSAgICAgICAgICAg
ICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICA8L3dpbmRvd0NvbnRyb2xs
ZXI+Ci0gICAgICAgICAgICAgICAgPGN1c3RvbU9iamVjdCBpZD0iT2t5LXpZLW9QNCIgdXNlckxh
YmVsPSJGaXJzdCBSZXNwb25kZXIiIGN1c3RvbUNsYXNzPSJOU1Jlc3BvbmRlciIgc2NlbmVNZW1i
ZXJJRD0iZmlyc3RSZXNwb25kZXIiLz4KLSAgICAgICAgICAgIDwvb2JqZWN0cz4KLSAgICAgICAg
ICAgIDxwb2ludCBrZXk9ImNhbnZhc0xvY2F0aW9uIiB4PSI3NSIgeT0iMjUwIi8+Ci0gICAgICAg
IDwvc2NlbmU+Ci0gICAgICAgIDwhLS1WaWV3IENvbnRyb2xsZXItLT4KLSAgICAgICAgPHNjZW5l
IHNjZW5lSUQ9ImhJei1BUC1WT0QiPgotICAgICAgICAgICAgPG9iamVjdHM+Ci0gICAgICAgICAg
ICAgICAgPHZpZXdDb250cm9sbGVyIGlkPSJYZkctbFEtOXdEIiBjdXN0b21DbGFzcz0iVmlld0Nv
bnRyb2xsZXIiIHNjZW5lTWVtYmVySUQ9InZpZXdDb250cm9sbGVyIj4KLSAgICAgICAgICAgICAg
ICAgICAgPHZpZXcga2V5PSJ2aWV3IiB3YW50c0xheWVyPSJZRVMiIGlkPSJtMlMtSnAtUWRsIj4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGtleT0iZnJhbWUiIHg9IjAuMCIgeT0iMC4w
IiB3aWR0aD0iMTI1NiIgaGVpZ2h0PSI0MzkiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxh
dXRvcmVzaXppbmdNYXNrIGtleT0iYXV0b3Jlc2l6aW5nTWFzayIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHN1YnZpZXdzPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24g
dmVydGljYWxIdWdnaW5nUHJpb3JpdHk9Ijc1MCIgZml4ZWRGcmFtZT0iWUVTIiB0cmFuc2xhdGVz
QXV0b3Jlc2l6aW5nTWFza0ludG9Db25zdHJhaW50cz0iTk8iIGlkPSJ6V0EtdXMtRmtmIj4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qga2V5PSJmcmFtZSIgeD0iMTQiIHk9
IjEzIiB3aWR0aD0iOTAiIGhlaWdodD0iMzIiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJhdXRvcmVzaXppbmdNYXNrIiBmbGV4aWJsZU1h
eFg9IllFUyIgZmxleGlibGVNYXhZPSJZRVMiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGJ1dHRvbkNlbGwga2V5PSJjZWxsIiB0eXBlPSJwdXNoIiB0aXRsZT0iQ29tcGlsZSIg
YmV6ZWxTdHlsZT0icm91bmRlZCIgYWxpZ25tZW50PSJjZW50ZXIiIGJvcmRlclN0eWxlPSJib3Jk
ZXIiIGltYWdlU2NhbGluZz0icHJvcG9ydGlvbmFsbHlEb3duIiBpbnNldD0iMiIgaWQ9IjFLNS1Q
Ti1uTEUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJlaGF2aW9yIGtl
eT0iYmVoYXZpb3IiIHB1c2hJbj0iWUVTIiBsaWdodEJ5QmFja2dyb3VuZD0iWUVTIiBsaWdodEJ5
R3JheT0iWUVTIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBr
ZXk9ImZvbnQiIG1ldGFGb250PSJzeXN0ZW0iLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzdHJpbmcga2V5PSJrZXlFcXVpdmFsZW50Ij5yPC9zdHJpbmc+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZh
bGVudE1vZGlmaWVyTWFzayIgY29tbWFuZD0iWUVTIi8+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvYnV0dG9uQ2VsbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlv
biBzZWxlY3Rvcj0iY29tcGlsZUNsaWNrZWQ6IiB0YXJnZXQ9IlhmRy1sUS05d0QiIGlkPSIxRlIt
S0UtbnR5Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHNjcm9sbFZpZXcgZml4ZWRGcmFtZT0iWUVTIiBib3JkZXJUeXBlPSJub25l
IiBob3Jpem9udGFsTGluZVNjcm9sbD0iMTAiIGhvcml6b250YWxQYWdlU2Nyb2xsPSIxMCIgdmVy
dGljYWxMaW5lU2Nyb2xsPSIxMCIgdmVydGljYWxQYWdlU2Nyb2xsPSIxMCIgaGFzSG9yaXpvbnRh
bFNjcm9sbGVyPSJOTyIgdHJhbnNsYXRlc0F1dG9yZXNpemluZ01hc2tJbnRvQ29uc3RyYWludHM9
Ik5PIiBpZD0iZWdGLThMLWNJNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxy
ZWN0IGtleT0iZnJhbWUiIHg9IjIwIiB5PSI2MSIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzNTgiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJh
dXRvcmVzaXppbmdNYXNrIiBmbGV4aWJsZU1pblg9IllFUyIgZmxleGlibGVNYXhYPSJZRVMiIGZs
ZXhpYmxlTWluWT0iWUVTIiBmbGV4aWJsZU1heFk9IllFUyIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y2xpcFZpZXcga2V5PSJjb250ZW50VmlldyIgYW1iaWd1b3VzPSJZRVMi
IGRyYXdzQmFja2dyb3VuZD0iTk8iIGNvcGllc09uU2Nyb2xsPSJOTyIgaWQ9IkhXOC1MNy0zUFgi
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qga2V5PSJmcmFtZSIg
eD0iMC4wIiB5PSIwLjAiIHdpZHRoPSI0MDAiIGhlaWdodD0iMzU4Ii8+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9ImF1dG9yZXNpemlu
Z01hc2siIHdpZHRoU2l6YWJsZT0iWUVTIiBoZWlnaHRTaXphYmxlPSJZRVMiLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWJ2aWV3cz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8dGV4dFZpZXcgYW1iaWd1b3VzPSJZRVMiIGltcG9ydHNH
cmFwaGljcz0iTk8iIHJpY2hUZXh0PSJOTyIgdmVydGljYWxseVJlc2l6YWJsZT0iWUVTIiBmaW5k
U3R5bGU9ImJhciIgc21hcnRJbnNlcnREZWxldGU9IllFUyIgaWQ9InBSUC05ZC04bkIiPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1l
IiB4PSIwLjAiIHk9IjAuMCIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzNTgiLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJh
dXRvcmVzaXppbmdNYXNrIiB3aWR0aFNpemFibGU9IllFUyIgaGVpZ2h0U2l6YWJsZT0iWUVTIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2xvciBrZXk9
InRleHRDb2xvciIgbmFtZT0idGV4dENvbG9yIiBjYXRhbG9nPSJTeXN0ZW0iIGNvbG9yU3BhY2U9
ImNhdGFsb2ciLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGNvbG9yIGtleT0iYmFja2dyb3VuZENvbG9yIiBuYW1lPSJ0ZXh0QmFja2dyb3VuZENvbG9yIiBj
YXRhbG9nPSJTeXN0ZW0iIGNvbG9yU3BhY2U9ImNhdGFsb2ciLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNpemUga2V5PSJtaW5TaXplIiB3aWR0aD0iNDAw
IiBoZWlnaHQ9IjM1OCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8c2l6ZSBrZXk9Im1heFNpemUiIHdpZHRoPSIxMzE3IiBoZWlnaHQ9IjEwMDAwMDAwIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGVk
U3RyaW5nIGtleT0idGV4dFN0b3JhZ2UiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGZyYWdtZW50IGNvbnRlbnQ9IldITFNM4oCoVGV4dFZpZXciPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHRy
aWJ1dGVzPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8Y29sb3Iga2V5PSJOU0NvbG9yIiBuYW1lPSJ0ZXh0Q29sb3IiIGNhdGFsb2c9IlN5
c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBrZXk9Ik5TRm9udCIgc2l6ZT0iMTIi
IG5hbWU9Ik1lbmxvLVJlZ3VsYXIiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHBhcmFncmFwaFN0eWxlIGtleT0iTlNQYXJhZ3JhcGhT
dHlsZSIgYWxpZ25tZW50PSJuYXR1cmFsIiBsaW5lQnJlYWtNb2RlPSJ3b3JkV3JhcHBpbmciIGJh
c2VXcml0aW5nRGlyZWN0aW9uPSJuYXR1cmFsIiB0aWdodGVuaW5nRmFjdG9yRm9yVHJ1bmNhdGlv
bj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9hdHRyaWJ1dGVzPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9mcmFnbWVudD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9hdHRyaWJ1dGVkU3RyaW5nPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8Y29sb3Iga2V5PSJpbnNlcnRpb25Qb2ludENvbG9yIiBuYW1l
PSJ0ZXh0Q29sb3IiIGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFZpZXc+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1YnZpZXdzPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2NsaXBWaWV3PgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8c2Nyb2xsZXIga2V5PSJ2ZXJ0aWNhbFNjcm9sbGVyIiB3YW50c0xheWVyPSJZRVMiIHZl
cnRpY2FsSHVnZ2luZ1ByaW9yaXR5PSI3NTAiIGhvcml6b250YWw9Ik5PIiBpZD0iMVQ0LVBMLWRJ
NCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1l
IiB4PSIzODQiIHk9IjAuMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjM1OCIvPgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJhdXRvcmVzaXpp
bmdNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2Nyb2xsZXI+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zY3JvbGxWaWV3PgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzY3JvbGxWaWV3IGZpeGVkRnJhbWU9IllFUyIgYm9yZGVyVHlwZT0ibm9u
ZSIgaG9yaXpvbnRhbExpbmVTY3JvbGw9IjEwIiBob3Jpem9udGFsUGFnZVNjcm9sbD0iMTAiIHZl
cnRpY2FsTGluZVNjcm9sbD0iMTAiIHZlcnRpY2FsUGFnZVNjcm9sbD0iMTAiIGhhc0hvcml6b250
YWxTY3JvbGxlcj0iTk8iIHRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRz
PSJOTyIgaWQ9InR1dS11Yy1EeGciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cmVjdCBrZXk9ImZyYW1lIiB4PSI0MjgiIHk9IjYxIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjM1OCIv
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9
ImF1dG9yZXNpemluZ01hc2siIGZsZXhpYmxlTWluWD0iWUVTIiBmbGV4aWJsZU1heFg9IllFUyIg
ZmxleGlibGVNaW5ZPSJZRVMiIGZsZXhpYmxlTWF4WT0iWUVTIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxjbGlwVmlldyBrZXk9ImNvbnRlbnRWaWV3IiBhbWJpZ3VvdXM9IllF
UyIgZHJhd3NCYWNrZ3JvdW5kPSJOTyIgY29waWVzT25TY3JvbGw9Ik5PIiBpZD0iMVVzLXBILXpB
cyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1l
IiB4PSIwLjAiIHk9IjAuMCIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzNTgiLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhdXRvcmVzaXppbmdNYXNrIGtleT0iYXV0b3Jlc2l6
aW5nTWFzayIgd2lkdGhTaXphYmxlPSJZRVMiIGhlaWdodFNpemFibGU9IllFUyIvPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1YnZpZXdzPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0VmlldyBhbWJpZ3VvdXM9IllFUyIgaW1wb3J0
c0dyYXBoaWNzPSJOTyIgcmljaFRleHQ9Ik5PIiB2ZXJ0aWNhbGx5UmVzaXphYmxlPSJZRVMiIGZp
bmRTdHlsZT0iYmFyIiBzbWFydEluc2VydERlbGV0ZT0iWUVTIiBpZD0iODJuLXl2LU9WbyI+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGtleT0iZnJh
bWUiIHg9IjAuMCIgeT0iMC4wIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjM1OCIvPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9
ImF1dG9yZXNpemluZ01hc2siIHdpZHRoU2l6YWJsZT0iWUVTIiBoZWlnaHRTaXphYmxlPSJZRVMi
Lz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbG9yIGtl
eT0idGV4dENvbG9yIiBuYW1lPSJ0ZXh0Q29sb3IiIGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFj
ZT0iY2F0YWxvZyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8Y29sb3Iga2V5PSJiYWNrZ3JvdW5kQ29sb3IiIG5hbWU9InRleHRCYWNrZ3JvdW5kQ29sb3Ii
IGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2l6ZSBrZXk9Im1pblNpemUiIHdpZHRoPSI0
MDAiIGhlaWdodD0iMzU4Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxzaXplIGtleT0ibWF4U2l6ZSIgd2lkdGg9IjEzOTEiIGhlaWdodD0iMTAwMDAwMDAi
Lz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbG9yIGtl
eT0iaW5zZXJ0aW9uUG9pbnRDb2xvciIgbmFtZT0idGV4dENvbG9yIiBjYXRhbG9nPSJTeXN0ZW0i
IGNvbG9yU3BhY2U9ImNhdGFsb2ciLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L3RleHRWaWV3PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9zdWJ2aWV3cz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwVmlldz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcm9sbGVyIGtleT0idmVydGljYWxT
Y3JvbGxlciIgd2FudHNMYXllcj0iWUVTIiB2ZXJ0aWNhbEh1Z2dpbmdQcmlvcml0eT0iNzUwIiBo
b3Jpem9udGFsPSJOTyIgaWQ9ImV2OS14ci1NU1AiPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHJlY3Qga2V5PSJmcmFtZSIgeD0iMzg0IiB5PSIwLjAiIHdpZHRoPSIxNiIg
aGVpZ2h0PSIzNTgiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdXRv
cmVzaXppbmdNYXNrIGtleT0iYXV0b3Jlc2l6aW5nTWFzayIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L3Njcm9sbGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
c2Nyb2xsVmlldz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VzdG9tVmlldyBmaXhl
ZEZyYW1lPSJZRVMiIHRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRzPSJO
TyIgaWQ9IjlGRy1pdi02cHIiIGN1c3RvbUNsYXNzPSJDdXN0b21NZXRhbFZpZXciPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1lIiB4PSI4MzYiIHk9IjYx
IiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjM1OCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9ImF1dG9yZXNpemluZ01hc2siIGZsZXhpYmxlTWF4
WD0iWUVTIiBmbGV4aWJsZU1pblk9IllFUyIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY3VzdG9tVmlldz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dEZpZWxkIGhv
cml6b250YWxIdWdnaW5nUHJpb3JpdHk9IjI1MSIgdmVydGljYWxIdWdnaW5nUHJpb3JpdHk9Ijc1
MCIgZml4ZWRGcmFtZT0iWUVTIiB0cmFuc2xhdGVzQXV0b3Jlc2l6aW5nTWFza0ludG9Db25zdHJh
aW50cz0iTk8iIGlkPSJhU1ktMnItdk11Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHJlY3Qga2V5PSJmcmFtZSIgeD0iMTA2IiB5PSIyMCIgd2lkdGg9IjExMzIiIGhlaWdodD0i
MTgiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sg
a2V5PSJhdXRvcmVzaXppbmdNYXNrIiBmbGV4aWJsZU1heFg9IllFUyIgZmxleGlibGVNYXhZPSJZ
RVMiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRGaWVsZENlbGwga2V5
PSJjZWxsIiBsaW5lQnJlYWtNb2RlPSJjbGlwcGluZyIgdGl0bGU9IkxhYmVsIiBpZD0iSkswLTNx
LWVwVyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBrZXk9ImZv
bnQiIG1ldGFGb250PSJzeXN0ZW0iLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxjb2xvciBrZXk9InRleHRDb2xvciIgbmFtZT0ibGFiZWxDb2xvciIgY2F0YWxvZz0iU3lz
dGVtIiBjb2xvclNwYWNlPSJjYXRhbG9nIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8Y29sb3Iga2V5PSJiYWNrZ3JvdW5kQ29sb3IiIG5hbWU9InRleHRCYWNrZ3JvdW5k
Q29sb3IiIGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRGaWVsZENlbGw+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC90ZXh0RmllbGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3N1YnZp
ZXdzPgotICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+Ci0gICAgICAgICAgICAgICAgICAgIDxj
b25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRsZXQgcHJvcGVydHk9ImRl
YnVnTGFiZWwiIGRlc3RpbmF0aW9uPSJhU1ktMnItdk11IiBpZD0iaFNDLTlOLW5qOSIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgPG91dGxldCBwcm9wZXJ0eT0ibWV0YWxWaWV3IiBkZXN0aW5h
dGlvbj0iOUZHLWl2LTZwciIgaWQ9ImQxSy1FNy04ekwiLz4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDxvdXRsZXQgcHJvcGVydHk9Im1zbFRleHRWaWV3IiBkZXN0aW5hdGlvbj0iODJuLXl2LU9W
byIgaWQ9ImVvRS0zaC12aFYiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRsZXQgcHJv
cGVydHk9Im1zbFZpZXdDb250YWluZXIiIGRlc3RpbmF0aW9uPSJ0dXUtdWMtRHhnIiBpZD0iWjNE
LWNQLXFZMiIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPG91dGxldCBwcm9wZXJ0eT0id2hs
c2xUZXh0VmlldyIgZGVzdGluYXRpb249InBSUC05ZC04bkIiIGlkPSJNdWYtYm8tTktrIi8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8b3V0bGV0IHByb3BlcnR5PSJ3aGxzbFZpZXdDb250YWlu
ZXIiIGRlc3RpbmF0aW9uPSJlZ0YtOEwtY0k2IiBpZD0iRElHLWoyLTJ0YiIvPgotICAgICAgICAg
ICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgIDwvdmlld0NvbnRyb2xs
ZXI+Ci0gICAgICAgICAgICAgICAgPGN1c3RvbU9iamVjdCBpZD0iclB0LU5ULW5rVSIgdXNlckxh
YmVsPSJGaXJzdCBSZXNwb25kZXIiIGN1c3RvbUNsYXNzPSJOU1Jlc3BvbmRlciIgc2NlbmVNZW1i
ZXJJRD0iZmlyc3RSZXNwb25kZXIiLz4KLSAgICAgICAgICAgIDwvb2JqZWN0cz4KLSAgICAgICAg
ICAgIDxwb2ludCBrZXk9ImNhbnZhc0xvY2F0aW9uIiB4PSItMzMyIiB5PSI5MTEuNSIvPgotICAg
ICAgICA8L3NjZW5lPgotICAgIDwvc2NlbmVzPgotPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGls
ZVJlc3VsdC5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9Db21waWxlUmVzdWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3
NWUxZGJiNTQ2Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVSZXN1bHQuaAkKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLU5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCi0KLUBpbnRlcmZhY2UgQ29tcGlsZVJlc3VsdCA6IE5TT2JqZWN0Ci0KLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aE1ldGFsU291cmNlOihOU1N0cmluZyopc291cmNlIGZ1bmN0aW9u
TmFtZU1hcDooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nKiwgTlNBcnJheTxOU1N0cmluZyo+Kj4qKW1h
cDsKLQotQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKnNvdXJjZTsKLS8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcqLCBOU0FycmF5PE5TU3RyaW5nKj4q
PioKLUBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TRGljdGlvbmFyeTxOU1N0cmluZyosIE5TU3RyaW5n
Kj4qIGZ1bmN0aW9uTmFtZU1hcDsKLQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3Rz
L0NvcmUvQ29tcGlsZVJlc3VsdC5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9Db21waWxlUmVzdWx0Lm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM1OTg4MGQ0MTQ3Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVSZXN1bHQubQkKKysr
IC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiQ29tcGlsZVJlc3VsdC5oIgotCi1AaW50ZXJmYWNl
IENvbXBpbGVSZXN1bHQgKCkKLQotQHByb3BlcnR5IE5TU3RyaW5nICpzb3VyY2U7Ci1AcHJvcGVy
dHkgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nKiwgTlNTdHJpbmcqPiogZnVuY3Rpb25OYW1lTWFwOwot
Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBDb21waWxlUmVzdWx0Ci0KLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aE1ldGFsU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmdW5jdGlvbk5hbWVNYXA6
KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKW1hcAotewotICAgIGlmIChz
ZWxmID0gW3N1cGVyIGluaXRdKSB7Ci0gICAgICAgIHNlbGYuc291cmNlID0gc291cmNlOwotICAg
ICAgICBzZWxmLmZ1bmN0aW9uTmFtZU1hcCA9IG1hcDsKLSAgICB9Ci0gICAgcmV0dXJuIHNlbGY7
Ci19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIuaCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjU0ZTkzYjc2ZTkuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIuaAkKKysr
IC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotQGltcG9ydCBGb3VuZGF0aW9uOwotQGltcG9ydCBKYXZhU2NyaXB0
Q29yZTsKLQotI2ltcG9ydCAiQ29tcGlsZVJlc3VsdC5oIgotCi1OU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgotCi1AaW50ZXJmYWNlIENvbXBpbGVyIDogTlNPYmplY3QKLQotLSAoQ29tcGlsZVJlc3Vs
dCopY29tcGlsZVdobHNsVG9NZXRhbDooTlNTdHJpbmcqKXdobHNsU291cmNlIGVycm9yOihOU0Vy
cm9yKiopZXJyb3I7Ci0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0Nv
bXBpbGVyLm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9Db3JlL0NvbXBpbGVyLm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlMjg0MjBl
OTYwLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVyLm0JCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1w
b3J0ICJDb21waWxlci5oIgotCi1AaW1wb3J0IENvY29hOwotQGltcG9ydCBKYXZhU2NyaXB0Q29y
ZTsKLQotQGludGVyZmFjZSBDb21waWxlciAoKQotCi1AcHJvcGVydHkgSlNDb250ZXh0KiBjb250
ZXh0OwotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBDb21waWxlcgotCi0tIChpbnN0YW5jZXR5
cGUpaW5pdAotewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKHNlbGYpIHsKLSAg
ICAgICAgc2VsZi5jb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwotICAgICAgICBb
c2VsZiBsb2FkU2NyaXB0c107Ci0gICAgfQotICAgIHJldHVybiBzZWxmOwotfQotCi0tICh2b2lk
KWxvYWRTY3JpcHRzCi17Ci0gICAgX193ZWFrIEpTQ29udGV4dCogd2Vha0NvbnRleHQgPSBzZWxm
LmNvbnRleHQ7Ci0gICAgX19ibG9jayBOU011dGFibGVTZXQ8TlNTdHJpbmcqPiogYWxyZWFkeUxv
YWRlZCA9IFtOU011dGFibGVTZXQgbmV3XTsKLSAgICB2b2lkIChebG9hZEZ1bmN0aW9uKShOU1N0
cmluZyAqKSA9IF52b2lkKE5TU3RyaW5nKiBuYW1lKQotICAgIHsKLSAgICAgICAgaWYgKCFbYWxy
ZWFkeUxvYWRlZCBjb250YWluc09iamVjdDpuYW1lXSkgewotICAgICAgICAgICAgTlNTdHJpbmcq
IHBhdGggPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIHBhdGhGb3JSZXNvdXJjZTpbbmFtZSBzdHJp
bmdCeURlbGV0aW5nUGF0aEV4dGVuc2lvbl0gb2ZUeXBlOkAianMiXTsKLSAgICAgICAgICAgIE5T
RXJyb3IqIGxvYWRFcnJvciA9IG5pbDsKLSAgICAgICAgICAgIE5TU3RyaW5nKiBzcmMgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOnBhdGggZW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmcgZXJyb3I6JmxvYWRFcnJvcl07Ci0gICAgICAgICAgICBpZiAobG9hZEVycm9yKQot
ICAgICAgICAgICAgICAgIE5TTG9nKEAiTG9hZGluZyAlQCBmYWlsZWQ6ICVAIiwgbmFtZSwgbG9h
ZEVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgIFt3ZWFrQ29udGV4dCBldmFsdWF0ZVNjcmlwdDpzcmNdOwotICAgICAgICAgICAg
ICAgIFthbHJlYWR5TG9hZGVkIGFkZE9iamVjdDpuYW1lXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBOU0xvZyhAIkF0dGVtcHRpbmcgdG8gbG9hZCBkdXBsaWNh
dGUgZmlsZSAlQCIsIG5hbWUpOwotICAgIH07Ci0gICAgc2VsZi5jb250ZXh0W0AibG9hZCJdID0g
bG9hZEZ1bmN0aW9uOwotCi0gICAgbG9hZEZ1bmN0aW9uKEAiQWxsLmpzIik7Ci0gICAgbG9hZEZ1
bmN0aW9uKEAiTVNMQ29kZWdlbkFsbC5qcyIpOwotfQotCi0tIChDb21waWxlUmVzdWx0Kiljb21w
aWxlV2hsc2xUb01ldGFsOihOU1N0cmluZyAqKXdobHNsU291cmNlIGVycm9yOihOU0Vycm9yICog
X051bGxhYmxlIF9fYXV0b3JlbGVhc2luZyAqKWVycm9yCi17Ci0gICAgSlNWYWx1ZSAqY29tcGls
ZUZ1bmN0aW9uID0gW3NlbGYuY29udGV4dCBvYmplY3RGb3JLZXllZFN1YnNjcmlwdDpAIndobHNs
VG9Nc2wiXTsKLSAgICBpZiAoY29tcGlsZUZ1bmN0aW9uKSB7Ci0gICAgICAgIEpTVmFsdWUgKnJl
c3VsdCA9IFtjb21waWxlRnVuY3Rpb24gY2FsbFdpdGhBcmd1bWVudHM6QFt3aGxzbFNvdXJjZV1d
OwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpZiAoW3Jlc3VsdCBoYXNQcm9w
ZXJ0eTpAIl9lcnJvciJdICYmIFtyZXN1bHQgaGFzUHJvcGVydHk6QCJfbWV0YWxTaGFkZXJMYW5n
dWFnZVNvdXJjZSJdICYmIFtyZXN1bHQgaGFzUHJvcGVydHk6QCJfb3JpZ2luYWxGdW5jdGlvbk5h
bWVUb01hbmdsZWROYW1lcyJdKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFtbcmVzdWx0IHZhbHVl
Rm9yUHJvcGVydHk6QCJfZXJyb3IiXSBpc051bGxdKSB7Ci0gICAgICAgICAgICAgICAgICAgIE5T
U3RyaW5nICpzcmMgPSBbW3Jlc3VsdCB2YWx1ZUZvclByb3BlcnR5OkAiX21ldGFsU2hhZGVyTGFu
Z3VhZ2VTb3VyY2UiXSB0b1N0cmluZ107Ci0gICAgICAgICAgICAgICAgICAgIE5TRGljdGlvbmFy
eSAqbWFwID0gW1tyZXN1bHQgdmFsdWVGb3JQcm9wZXJ0eTpAIl9vcmlnaW5hbEZ1bmN0aW9uTmFt
ZVRvTWFuZ2xlZE5hbWVzIl0gdG9EaWN0aW9uYXJ5XTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFtbQ29tcGlsZVJlc3VsdCBhbGxvY10gaW5pdFdpdGhNZXRhbFNvdXJjZTpzcmMgZnVuY3Rp
b25OYW1lTWFwOm1hcF07Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgKmVy
cm9yID0gW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOkAiV2hsc2xDb21waWxlciIgY29kZToxIHVz
ZXJJbmZvOkB7IE5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXk6IFtbcmVzdWx0IHZhbHVlRm9yUHJv
cGVydHk6QCJfZXJyb3IiXSB0b1N0cmluZ119XTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmls
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAqZXJyb3IgPSBbTlNFcnJvciBlcnJvcldp
dGhEb21haW46QCJXaGxzbENvbXBpbGVyIiBjb2RlOjIgdXNlckluZm86QHsgTlNMb2NhbGl6ZWRE
ZXNjcmlwdGlvbktleTogQCJLZXlzIG5vdCBwcmVzZW50IGluIHJlc3VsdCIgfV07Ci0gICAgICAg
ICAgICByZXR1cm4gbmlsOwotICAgICAgICB9Ci0KLSAgICAgICAgKmVycm9yID0gW05TRXJyb3Ig
ZXJyb3JXaXRoRG9tYWluOkAiV2hsc2xDb21waWxlciIgY29kZTozIHVzZXJJbmZvOkB7IE5TTG9j
YWxpemVkRGVzY3JpcHRpb25LZXk6IEAiQ29tcGlsYXRpb24gZmFpbGVkIiB9XTsKLSAgICAgICAg
cmV0dXJuIG5pbDsKLQotICAgIH0KLQotICAgICplcnJvciA9IFtOU0Vycm9yIGVycm9yV2l0aERv
bWFpbjpAIldobHNsQ29tcGlsZXIiIGNvZGU6NCB1c2VySW5mbzpAeyBOU0xvY2FsaXplZERlc2Ny
aXB0aW9uS2V5OiBAIkRpZG4ndCBmaW5kIGNvbXBpbGF0aW9uIGZ1bmN0aW9uIiB9XTsKLSAgICBy
ZXR1cm4gbmlsOwotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0N1c3RvbU1ldGFsVmlldy5oIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9DdXN0b21NZXRh
bFZpZXcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU1OWE2ODUzZGIuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRl
c3RzL0NvcmUvQ3VzdG9tTWV0YWxWaWV3LmgJCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8TWV0YWxLaXQvTWV0YWxLaXQuaD4K
LQotTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KLQotQGNsYXNzIEN1c3RvbU1ldGFsVmlldzsKLQot
QHByb3RvY29sIEN1c3RvbU1ldGFsVmlld0RlbGVnYXRlIDxOU09iamVjdD4KLQotLSAodm9pZClj
dXN0b21NZXRhbFZpZXc6KEN1c3RvbU1ldGFsVmlldyopbWV0YWxWaWV3IHNjcm9sbGVkRGVsdGFY
OihDR0Zsb2F0KWRlbHRhWCBkZWx0YVk6KENHRmxvYXQpZGVsdGFZOwotCi1AZW5kCi0KLUBpbnRl
cmZhY2UgQ3VzdG9tTWV0YWxWaWV3IDogTVRLVmlldwotCi1AcHJvcGVydHkgaWQ8Q3VzdG9tTWV0
YWxWaWV3RGVsZWdhdGU+IHNjcm9sbERlbGVnYXRlOwotCi1AZW5kCi0KLU5TX0FTU1VNRV9OT05O
VUxMX0VORApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9DdXN0b21NZXRhbFZpZXcubSBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ3VzdG9tTWV0YWxWaWV3Lm0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNzM5MGRiYWFiLi4wMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0N1c3Rv
bU1ldGFsVmlldy5tCQorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJDdXN0b21NZXRhbFZp
ZXcuaCIKLQotQGltcGxlbWVudGF0aW9uIEN1c3RvbU1ldGFsVmlldwotCi0tICh2b2lkKXNjcm9s
bFdoZWVsOihOU0V2ZW50ICopZXZlbnQKLXsKLSAgICBbc2VsZi5zY3JvbGxEZWxlZ2F0ZSBjdXN0
b21NZXRhbFZpZXc6c2VsZiBzY3JvbGxlZERlbHRhWDpldmVudC5kZWx0YVggZGVsdGFZOmV2ZW50
LmRlbHRhWV07Ci19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvRGVtbyBzaGFkZXJzL0RlZmF1bHQud2hsc2wg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0Rl
bW8gc2hhZGVycy9EZWZhdWx0LndobHNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
YzJlYmY5YTMyMy4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRlcnMvRGVmYXVsdC53aGxzbAkKKysr
IC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1zdHJ1Y3QgVmVydGV4SW5wdXQgewotICAgIGZs
b2F0MiBwb3NpdGlvbiA6IGF0dHJpYnV0ZSgwKTsKLSAgICBmbG9hdDIgdXYgOiBhdHRyaWJ1dGUo
MSk7Ci19Ci0KLXN0cnVjdCBWZXJ0ZXhPdXRwdXQgewotICAgIGZsb2F0NCBwb3NpdGlvbiA6IFNW
X1Bvc2l0aW9uOwotICAgIGZsb2F0NCBjb2xvciA6IGF0dHJpYnV0ZSgwKTsKLX0KLQotc3RydWN0
IEZyYWdtZW50SW5wdXQgewotICAgIGZsb2F0NCBjb2xvciA6IGF0dHJpYnV0ZSgwKTsKLX0KLQot
c3RydWN0IEZyYWdtZW50T3V0cHV0IHsKLSAgICBmbG9hdDQgY29sb3IgOiBTVl9UYXJnZXQwOwot
fQotCi12ZXJ0ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJ
bnB1dCkgewotICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgcmVzdWx0LnBvc2l0aW9uID0g
ZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0aW9uLCAwLiwgMS4pOwotICAgIHJlc3VsdC5jb2xvciA9
IGZsb2F0NCh2ZXJ0ZXhJbnB1dC51diwgMC4wLCAxLjApOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLWZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZyYWdtZW50U2hhZGVyKEZyYWdtZW50SW5wdXQg
ZnJhZ21lbnRJbnB1dCkgewotICAgIEZyYWdtZW50T3V0cHV0IHJlc3VsdDsKLSAgICByZXN1bHQu
Y29sb3IgPSBmcmFnbWVudElucHV0LmNvbG9yOwotICAgIHJldHVybiByZXN1bHQ7Ci19CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9D
b3JlL0RlbW8gc2hhZGVycy9KdWxpYS53aGxzbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvRGVtbyBzaGFkZXJzL0p1bGlhLndobHNsCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzVhZTUyNjE4ZC4uMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1v
IHNoYWRlcnMvSnVsaWEud2hsc2wJCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8v
IEZJWE1FOiBUaGlzIHdvbid0IGNvbXBpbGUuIE5lZWRzIHNlbWFudGljcy4KLQotc3RydWN0IFZl
cnRleElucHV0IHsKLSAgICBmbG9hdDIgcG9zaXRpb247Ci0gICAgZmxvYXQyIHV2OwotfQotCi1z
dHJ1Y3QgVmVydGV4T3V0cHV0IHsKLSAgICBmbG9hdDQgd3NsX1Bvc2l0aW9uOwotICAgIGZsb2F0
MiB1djsKLX0KLQotc3RydWN0IEZyYWdtZW50T3V0cHV0IHsKLSAgICBmbG9hdDQgd3NsX0NvbG9y
OwotfQotCi12ZXJ0ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0
ZXhJbnB1dCkgewotICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgcmVzdWx0LndzbF9Qb3Np
dGlvbiA9IGZsb2F0NCh2ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4sIDEuKTsKLSAgICByZXN1bHQu
dXYgPSB2ZXJ0ZXhJbnB1dC51djsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1mcmFnbWVudCBG
cmFnbWVudE91dHB1dCBmcmFnbWVudFNoYWRlcihWZXJ0ZXhPdXRwdXQgc3RhZ2VJbikgewotICAg
IEZyYWdtZW50T3V0cHV0IHJlc3VsdDsKLSAgICBmbG9hdCBtID0ganVsaWEoc3RhZ2VJbi51dik7
Ci0gICAgZmxvYXQzIGhvdCA9IGZsb2F0MygxLCAxLCAxKTsKLSAgICBmbG9hdDMgY29sZCA9IGZs
b2F0MygwLCAxLCAwLjEpOwotICAgIGZsb2F0MyByZXMgPSBpbnRlcnBvbGF0ZShjb2xkLCBob3Qs
IG0pOwotICAgIHJlcyA9IGhzbFRvUmdiKHJlcyk7Ci0gICAgcmVzdWx0LndzbF9Db2xvciA9IGZs
b2F0NChyZXMsIDEpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZsb2F0MyBpbnRlcnBvbGF0
ZShmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0IHopCi17Ci0gICAgZmxvYXQzIHJlczsKLSAgICBy
ZXMueCA9IHgueCArICh5LnggLSB4LngpICogejsKLSAgICByZXMueSA9IHgueSArICh5LnkgLSB4
LnkpICogejsKLSAgICByZXMueiA9IHgueiArICh5LnogLSB4LnopICogejsKLSAgICByZXR1cm4g
cmVzOwotfQotCi1mbG9hdCBodWVUb1JnYihmbG9hdCBwLCBmbG9hdCBxLCBmbG9hdCB0KQotewot
aWYodCA8IDAuMCkgdCArPSAxLjA7Ci0gICAgICAgICAgICBpZih0ID4gMS4wKSB0IC09IDEuMDsK
LSAgICAgICAgICAgIGlmKHQgPCAxLjAvNi4wKSByZXR1cm4gcCArIChxIC0gcCkgKiA2LjAgKiB0
OwotICAgICAgICAgICAgaWYodCA8IDEuMC8yLjApIHJldHVybiBxOwotICAgICAgICAgICAgaWYo
dCA8IDIuMC8zLjApIHJldHVybiBwICsgKHEgLSBwKSAqICgyLjAvMy4wIC0gdCkgKiA2LjA7Ci0g
ICAgICAgICAgICByZXR1cm4gcDsKLX0KLQotZmxvYXQzIGhzbFRvUmdiKGZsb2F0MyBoc2wpCi17
Ci0gICAgZmxvYXQzIHJnYjsKLSAgICBmbG9hdCBoID0gaHNsLng7Ci0gICAgZmxvYXQgcyA9IGhz
bC55OwotICAgIGZsb2F0IGwgPSBoc2wuejsKLSAgICBpZihzID09IDApewotICAgICAgICByZ2Ig
PSBmbG9hdDMobCwgbCwgbCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZmxvYXQgcTsKLSAgICAg
ICAgaWYgKGwgPCAwLjUpIHsgcSA9IGwgKiAoMS4wICsgcyk7IH0gZWxzZSB7IHEgPSBsICsgcyAt
IGwgKiBzOyB9Ci0gICAgICAgIGZsb2F0IHAgPSAyLjAgKiBsIC0gcTsKLSAgICAgICAgcmdiLngg
PSBodWVUb1JnYihwLCBxLCBoICsgMS4wLzMuMCk7Ci0gICAgICAgIHJnYi55ID0gaHVlVG9SZ2Io
cCwgcSwgaCk7Ci0gICAgICAgIHJnYi56ID0gaHVlVG9SZ2IocCwgcSwgaCAtIDEuMC8zLjApOwot
ICAgIH0KLQotICAgIHJldHVybiByZ2I7Ci0KLX0KLQotZmxvYXQganVsaWEoZmxvYXQyIHV2KQot
ewotICAgIGZsb2F0IG4gPSAyLjBmOwotICAgIGZsb2F0MiB6OwotICAgIGZsb2F0MiBjOwotICAg
IGZsb2F0MiBzY2FsZSA9IGZsb2F0MigyLCAyLjkpOwotICAgIGZsb2F0MiBjZW50ZXIgPSBmbG9h
dDIoMC43LCAwKTsKLSAgICBpbnQgaXRlciA9IDEwMDsKLSAgICBjLnggPSAxLjMzMzMgKiAodXYu
eCAtIDAuNSkgKiBzY2FsZS54IC0gY2VudGVyLng7Ci0gICAgYy55ID0gKHV2LnkgLSAwLjUpICog
c2NhbGUueSAtIGNlbnRlci55OwotICAgIHogPSBjOwotICAgIGludCBpOwotICAgIGZvciAoaSA9
IDA7IGkgPCBpdGVyOyBpKyspIHsKLSAgICAgICAgZmxvYXQgeCA9IHBvdyh6LnggKiB6LnggKyB6
LnkgKiB6LnksIG4gLyAyLjApICogY29zKG4gKiBhdGFuMih6LnksIHoueCkpICsgYy54OwotICAg
ICAgICBmbG9hdCB5ID0gcG93KHoueCAqIHoueCArIHoueSAqIHoueSwgbiAvIDIuMCkgKiBzaW4o
biAqIGF0YW4yKHoueSwgei54KSkgKyBjLnk7Ci0KLSAgICAgICAgaWYocG93KHgsIDIuMGYpICsg
cG93KHksIDIuMGYpID4gMTYuMGYpIGJyZWFrOwotICAgICAgICB6LnggPSB4OwotICAgICAgICB6
LnkgPSB5OwotICAgIH0KLSAgICBmbG9hdCByZXM7Ci0gICAgaWYgKGkgPCBpdGVyKSB7Ci0gICAg
ICAgIGZsb2F0IGxvZ196biA9IGxvZyggei54KnoueCArIHoueSp6LnkgKSAvIDIuMGY7Ci0gICAg
ICAgIGZsb2F0IG51ID0gbG9nKCBsb2dfem4gLyBsb2cobikgKSAvIGxvZygyLjBmKTsKLSAgICAg
ICAgcmVzID0gKGZsb2F0KGkpICsgMSAtIG51KSAvIGZsb2F0KGl0ZXIpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgcmVzID0gMTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlczsKLX0KLQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9E
ZW1vIHNoYWRlcnMvTWFuZGVsYnJvdC53aGxzbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvRGVtbyBzaGFkZXJzL01hbmRlbGJyb3Qud2hsc2wK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5ZWUxZTJiYmFmLi4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3Jl
L0RlbW8gc2hhZGVycy9NYW5kZWxicm90LndobHNsCQorKysgL2Rldi9udWxsCkBAIC0xLDEwMCAr
MCwwIEBACi0vLyBGSVhNRTogVGhpcyB3b24ndCBjb21waWxlLiBOZWVkcyBzZW1hbnRpY3MuCi0K
LXN0cnVjdCBWZXJ0ZXhJbnB1dCB7Ci0gICAgZmxvYXQyIHBvc2l0aW9uOwotICAgIGZsb2F0MiB1
djsKLX0KLQotc3RydWN0IFZlcnRleE91dHB1dCB7Ci0gICAgZmxvYXQ0IHdzbF9Qb3NpdGlvbjsK
LSAgICBmbG9hdDIgdXY7Ci19Ci0KLXN0cnVjdCBGcmFnbWVudE91dHB1dCB7Ci0gICAgZmxvYXQ0
IHdzbF9Db2xvcjsKLX0KLQotdmVydGV4IFZlcnRleE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4
SW5wdXQgdmVydGV4SW5wdXQpIHsKLSAgICBWZXJ0ZXhPdXRwdXQgcmVzdWx0OwotICAgIHJlc3Vs
dC53c2xfUG9zaXRpb24gPSBmbG9hdDQodmVydGV4SW5wdXQucG9zaXRpb24sIDAuLCAxLik7Ci0g
ICAgcmVzdWx0LnV2ID0gdmVydGV4SW5wdXQudXY7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
ZnJhZ21lbnQgRnJhZ21lbnRPdXRwdXQgZnJhZ21lbnRTaGFkZXIoVmVydGV4T3V0cHV0IHN0YWdl
SW4pIHsKLSAgICBGcmFnbWVudE91dHB1dCByZXN1bHQ7Ci0gICAgZmxvYXQgbSA9IG1hbmRlbGJy
b3Qoc3RhZ2VJbi51dik7Ci0gICAgZmxvYXQzIGhvdCA9IGZsb2F0MygxLCAxLCAxKTsKLSAgICBm
bG9hdDMgY29sZCA9IGZsb2F0MygwLCAxLCAwLjEpOwotICAgIGZsb2F0MyByZXMgPSBpbnRlcnBv
bGF0ZShjb2xkLCBob3QsIG0pOwotICAgIHJlcyA9IGhzbFRvUmdiKHJlcyk7Ci0gICAgcmVzdWx0
LndzbF9Db2xvciA9IGZsb2F0NChyZXMsIDEpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZs
b2F0MyBpbnRlcnBvbGF0ZShmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0IHopCi17Ci0gICAgZmxv
YXQzIHJlczsKLSAgICByZXMueCA9IHgueCArICh5LnggLSB4LngpICogejsKLSAgICByZXMueSA9
IHgueSArICh5LnkgLSB4LnkpICogejsKLSAgICByZXMueiA9IHgueiArICh5LnogLSB4LnopICog
ejsKLSAgICByZXR1cm4gcmVzOwotfQotCi1mbG9hdCBodWVUb1JnYihmbG9hdCBwLCBmbG9hdCBx
LCBmbG9hdCB0KQotewotICAgIGlmKHQgPCAwLjApIHQgKz0gMS4wOwotICAgIGlmKHQgPiAxLjAp
IHQgLT0gMS4wOwotICAgIGlmKHQgPCAxLjAvNi4wKSByZXR1cm4gcCArIChxIC0gcCkgKiA2LjAg
KiB0OwotICAgIGlmKHQgPCAxLjAvMi4wKSByZXR1cm4gcTsKLSAgICBpZih0IDwgMi4wLzMuMCkg
cmV0dXJuIHAgKyAocSAtIHApICogKDIuMC8zLjAgLSB0KSAqIDYuMDsKLSAgICByZXR1cm4gcDsK
LX0KLQotZmxvYXQzIGhzbFRvUmdiKGZsb2F0MyBoc2wpCi17Ci0gICAgZmxvYXQzIHJnYjsKLSAg
ICBmbG9hdCBoID0gaHNsLng7Ci0gICAgZmxvYXQgcyA9IGhzbC55OwotICAgIGZsb2F0IGwgPSBo
c2wuejsKLSAgICBpZihzID09IDApewotICAgICAgICByZ2IgPSBmbG9hdDMobCwgbCwgbCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgZmxvYXQgcTsKLSAgICAgICAgaWYgKGwgPCAwLjUpIHsgcSA9
IGwgKiAoMS4wICsgcyk7IH0gZWxzZSB7IHEgPSBsICsgcyAtIGwgKiBzOyB9Ci0gICAgICAgIGZs
b2F0IHAgPSAyLjAgKiBsIC0gcTsKLSAgICAgICAgcmdiLnggPSBodWVUb1JnYihwLCBxLCBoICsg
MS4wLzMuMCk7Ci0gICAgICAgIHJnYi55ID0gaHVlVG9SZ2IocCwgcSwgaCk7Ci0gICAgICAgIHJn
Yi56ID0gaHVlVG9SZ2IocCwgcSwgaCAtIDEuMC8zLjApOwotICAgIH0KLQotICAgIHJldHVybiBy
Z2I7Ci19Ci0KLWZsb2F0IG1hbmRlbGJyb3QoZmxvYXQyIHV2KQotewotICAgIGZsb2F0MiB6Owot
ICAgIGZsb2F0MiBjID0gdXY7Ci0gICAgaW50IGl0ZXIgPSAxMDA7Ci0gICAgeiA9IGM7Ci0gICAg
aW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IGl0ZXI7IGkrKykgewotICAgICAgICBmbG9hdCB4
ID0gKHoueCAqIHoueCAtIHoueSAqIHoueSkgKyBjLng7Ci0gICAgICAgIGZsb2F0IHkgPSAoei55
ICogei54ICsgei54ICogei55KSArIGMueTsKLQotICAgICAgICBpZihwb3coeCwgMi4wZikgKyBw
b3coeSwgMi4wZikgPiAyNTYuMCkgYnJlYWs7Ci0gICAgICAgIHoueCA9IHg7Ci0gICAgICAgIHou
eSA9IHk7Ci0gICAgfQotICAgIGZsb2F0IHJlczsKLSAgICBpZiAoaSA8IGl0ZXIpIHsKLSAgICAg
ICAgZmxvYXQgbG9nX3puID0gbG9nKCB6Lngqei54ICsgei55KnoueSApIC8gMjsKLSAgICAgICAg
ZmxvYXQgbnUgPSBsb2coIGxvZ196biAvIGxvZygyLjBmKSApIC8gbG9nKDIuMGYpOwotICAgICAg
ICByZXMgPSAoZmxvYXQoaSkgKyAxIC0gbnUpIC8gZmxvYXQoaXRlcik7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgcmVzID0gMTsKLSAgICB9Ci1yZXR1cm4gcmVzOwotfQotCi0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvSW5m
by5wbGlzdCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3Rz
L0NvcmUvSW5mby5wbGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE4NTdmNTJk
YWIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvSW5mby5wbGlzdAkKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBs
aXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBs
ZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4K
LTxkaWN0PgotCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+
JChERVZFTE9QTUVOVF9MQU5HVUFHRSk8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJs
ZTwva2V5PgotCTxzdHJpbmc+JChFWEVDVVRBQkxFX05BTUUpPC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZUljb25GaWxlPC9rZXk+Ci0JPHN0cmluZz48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRl
bnRpZmllcjwva2V5PgotCTxzdHJpbmc+JChQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSKTwvc3Ry
aW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5n
PjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4kKFBST0RV
Q1RfTkFNRSk8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3Ry
aW5nPkFQUEw8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+
Ci0JPHN0cmluZz4xLjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxz
dHJpbmc+MTwvc3RyaW5nPgotCTxrZXk+TFNNaW5pbXVtU3lzdGVtVmVyc2lvbjwva2V5PgotCTxz
dHJpbmc+JChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQpPC9zdHJpbmc+Ci0JPGtleT5OU0h1bWFu
UmVhZGFibGVDb3B5cmlnaHQ8L2tleT4KLQk8c3RyaW5nPkNvcHlyaWdodCDCqSAyMDE4IEFwcGxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9zdHJpbmc+Ci0JPGtleT5OU01haW5TdG9yeWJv
YXJkRmlsZTwva2V5PgotCTxzdHJpbmc+TWFpbjwvc3RyaW5nPgotCTxrZXk+TlNQcmluY2lwYWxD
bGFzczwva2V5PgotCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgotPC9kaWN0PgotPC9w
bGlzdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT2Zmc2NyZWVuUmVuZGVyZXIuaCBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT2Zmc2Ny
ZWVuUmVuZGVyZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2NjVmYjE2NWEu
LjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT2Zmc2NyZWVuUmVuZGVyZXIuaAkKKysrIC9kZXYvbnVs
bApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiUmVuZGVyZXIuaCIKLQotTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
LQotQGludGVyZmFjZSBPZmZzY3JlZW5SZW5kZXJlciA6IFJlbmRlcmVyCi0KLUBwcm9wZXJ0eSBN
VExQaXhlbEZvcm1hdCBvdXRwdXRQaXhlbEZvcm1hdDsKLQotLSAodm9pZClzZXRMaWJyYXJ5Oihp
ZDxNVExMaWJyYXJ5PilsaWJyYXJ5IHZlcnRleFNoYWRlck5hbWU6KE5TU3RyaW5nKil2ZXJ0ZXhT
aGFkZXIgZnJhZ21lbnRTaGFkZXJOYW1lOihOU1N0cmluZyopZnJhZ21lbnRTaGFkZXJOYW1lOwot
LSAodm9pZClyZWFkVGV4dHVyZURhdGFUb0J1ZmZlcjoodWludDhfdCopYnVmZmVyIGJ5dGVzUGVy
Um93OihOU1VJbnRlZ2VyKWJ5dGVzUGVyUm93OwotCi0tIChpbnQpaW50VmFsdWU7Ci0tICh1bnNp
Z25lZCl1aW50VmFsdWU7Ci0tIChmbG9hdClmbG9hdFZhbHVlOwotCi1AZW5kCi0KLU5TX0FTU1VN
RV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9PZmZzY3JlZW5SZW5kZXJlci5tIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJl
ci9PZmZzY3JlZW5SZW5kZXJlci5tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2Vm
MjBjNWYzYi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9PZmZzY3JlZW5SZW5kZXJlci5tCQorKysg
L2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiT2Zmc2NyZWVuUmVuZGVyZXIuaCIKLQotQGludGVy
ZmFjZSBPZmZzY3JlZW5SZW5kZXJlciAoKQotewotICAgIGlkPE1UTFRleHR1cmU+IF9vdXRwdXRU
ZXh0dXJlOwotfQotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBPZmZzY3JlZW5SZW5kZXJlcgot
Ci0tICh2b2lkKXNldExpYnJhcnk6KGlkPE1UTExpYnJhcnk+KWxpYnJhcnkgdmVydGV4U2hhZGVy
TmFtZTooTlNTdHJpbmcqKXZlcnRleFNoYWRlciBmcmFnbWVudFNoYWRlck5hbWU6KE5TU3RyaW5n
KilmcmFnbWVudFNoYWRlck5hbWUKLXsKLSAgICBbc3VwZXIgc2V0TGlicmFyeTpsaWJyYXJ5IHZl
cnRleFNoYWRlck5hbWU6dmVydGV4U2hhZGVyIGZyYWdtZW50U2hhZGVyTmFtZTpmcmFnbWVudFNo
YWRlck5hbWUgcGl4ZWxGb3JtYXQ6c2VsZi5vdXRwdXRQaXhlbEZvcm1hdF07Ci19Ci0KLS0gKHZv
aWQpc2V0VGFyZ2V0V2lkdGg6KE5TVUludGVnZXIpd2lkdGggc2V0VGFyZ2V0SGVpZ2h0OihOU1VJ
bnRlZ2VyKWhlaWdodAotewotICAgIFtzdXBlciBzZXRUYXJnZXRXaWR0aDp3aWR0aCBzZXRUYXJn
ZXRIZWlnaHQ6aGVpZ2h0XTsKLSAgICBNVExUZXh0dXJlRGVzY3JpcHRvciAqb3V0cHV0RGVzY3Jp
cHRvciA9IFtNVExUZXh0dXJlRGVzY3JpcHRvciB0ZXh0dXJlMkREZXNjcmlwdG9yV2l0aFBpeGVs
Rm9ybWF0OnNlbGYub3V0cHV0UGl4ZWxGb3JtYXQgd2lkdGg6c2VsZi50YXJnZXRXaWR0aCBoZWln
aHQ6c2VsZi50YXJnZXRIZWlnaHQgbWlwbWFwcGVkOk5PXTsKLSAgICBvdXRwdXREZXNjcmlwdG9y
LnVzYWdlID0gTVRMVGV4dHVyZVVzYWdlUmVuZGVyVGFyZ2V0OwotICAgIG91dHB1dERlc2NyaXB0
b3Iuc3RvcmFnZU1vZGUgPSBNVExTdG9yYWdlTW9kZU1hbmFnZWQ7Ci0gICAgX291dHB1dFRleHR1
cmUgPSBbc2VsZi5kZXZpY2UgbmV3VGV4dHVyZVdpdGhEZXNjcmlwdG9yOm91dHB1dERlc2NyaXB0
b3JdOwotfQotCi0tIChNVExSZW5kZXJQYXNzRGVzY3JpcHRvciopcmVuZGVyUGFzc0Rlc2NyaXB0
b3IKLXsKLSAgICBNVExSZW5kZXJQYXNzRGVzY3JpcHRvciAqcmVuZGVyUGFzc0Rlc2NyaXB0b3Ig
PSBbTVRMUmVuZGVyUGFzc0Rlc2NyaXB0b3IgcmVuZGVyUGFzc0Rlc2NyaXB0b3JdOwotICAgIHJl
bmRlclBhc3NEZXNjcmlwdG9yLmNvbG9yQXR0YWNobWVudHNbMF0udGV4dHVyZSA9IF9vdXRwdXRU
ZXh0dXJlOwotICAgIHJldHVybiByZW5kZXJQYXNzRGVzY3JpcHRvcjsKLX0KLQotLSAodm9pZClj
b25maWd1cmVDb21tYW5kQnVmZmVyQmVmb3JlQ29tbWl0OihpZDxNVExDb21tYW5kQnVmZmVyPilj
b21tYW5kQnVmZmVyCi17Ci0gICAgaWQgPE1UTEJsaXRDb21tYW5kRW5jb2Rlcj4gYmxpdEVuY29k
ZXIgPSBbY29tbWFuZEJ1ZmZlciBibGl0Q29tbWFuZEVuY29kZXJdOwotICAgIFtibGl0RW5jb2Rl
ciBzeW5jaHJvbml6ZVJlc291cmNlOl9vdXRwdXRUZXh0dXJlXTsKLSAgICBbYmxpdEVuY29kZXIg
ZW5kRW5jb2RpbmddOwotfQotCi0tICh2b2lkKXJlYWRUZXh0dXJlRGF0YVRvQnVmZmVyOih1aW50
OF90ICopYnVmZmVyIGJ5dGVzUGVyUm93OihOU1VJbnRlZ2VyKWJ5dGVzUGVyUm93Ci17Ci0gICAg
Ly8gVGhlIHRleHR1cmUgaXNuJ3QgbWlwbWFwcGVkLCBzbyB3ZSB1c2UgdGhlIGRlZmF1bHQgbGV2
ZWwgb2YgMAotICAgIFtfb3V0cHV0VGV4dHVyZSBnZXRCeXRlczpidWZmZXIgYnl0ZXNQZXJSb3c6
Ynl0ZXNQZXJSb3cgZnJvbVJlZ2lvbjpNVExSZWdpb25NYWtlMkQoMCwgMCwgc2VsZi50YXJnZXRX
aWR0aCwgc2VsZi50YXJnZXRIZWlnaHQpIG1pcG1hcExldmVsOjBdOwotfQotCi0tIChpbnQpaW50
VmFsdWUKLXsKLSAgICAvLyBXZSBhbHdheXMgaGF2ZSA0IGJ5dGVzIHBlciBwaXhlbAotICAgIE5T
VUludGVnZXIgbGVuZ3RoID0gc2VsZi50YXJnZXRXaWR0aCAqIHNlbGYudGFyZ2V0SGVpZ2h0ICog
NDsKLSAgICB1aW50OF90ICpidWZmZXIgPSBjYWxsb2MobGVuZ3RoLCBzaXplb2YodWludDhfdCkp
OwotICAgIFtzZWxmIHJlYWRUZXh0dXJlRGF0YVRvQnVmZmVyOih1aW50OF90KilidWZmZXIgYnl0
ZXNQZXJSb3c6NCAqIHNlbGYudGFyZ2V0V2lkdGhdOwotICAgIGludCBpbnRWYWx1ZSA9ICgoaW50
KilidWZmZXIpWzBdOwotICAgIGZyZWUoYnVmZmVyKTsKLSAgICByZXR1cm4gaW50VmFsdWU7Ci19
Ci0KLS0gKHVuc2lnbmVkKXVpbnRWYWx1ZQotewotICAgIC8vIFdlIGFsd2F5cyBoYXZlIDQgYnl0
ZXMgcGVyIHBpeGVsCi0gICAgTlNVSW50ZWdlciBsZW5ndGggPSBzZWxmLnRhcmdldFdpZHRoICog
c2VsZi50YXJnZXRIZWlnaHQgKiA0OwotICAgIHVpbnQ4X3QgKmJ1ZmZlciA9IGNhbGxvYyhsZW5n
dGgsIHNpemVvZih1aW50OF90KSk7Ci0gICAgW3NlbGYgcmVhZFRleHR1cmVEYXRhVG9CdWZmZXI6
KHVpbnQ4X3QqKWJ1ZmZlciBieXRlc1BlclJvdzo0ICogc2VsZi50YXJnZXRXaWR0aF07Ci0gICAg
dW5zaWduZWQgdWludFZhbHVlID0gKCh1bnNpZ25lZCopYnVmZmVyKVswXTsKLSAgICBmcmVlKGJ1
ZmZlcik7Ci0gICAgcmV0dXJuIHVpbnRWYWx1ZTsKLX0KLQotLSAoZmxvYXQpZmxvYXRWYWx1ZQot
ewotICAgIC8vIFdlIGFsd2F5cyBoYXZlIDQgYnl0ZXMgcGVyIHBpeGVsCi0gICAgTlNVSW50ZWdl
ciBsZW5ndGggPSBzZWxmLnRhcmdldFdpZHRoICogc2VsZi50YXJnZXRIZWlnaHQgKiA0OwotICAg
IHVpbnQ4X3QgKmJ1ZmZlciA9IGNhbGxvYyhsZW5ndGgsIHNpemVvZih1aW50OF90KSk7Ci0gICAg
W3NlbGYgcmVhZFRleHR1cmVEYXRhVG9CdWZmZXI6KHVpbnQ4X3QqKWJ1ZmZlciBieXRlc1BlclJv
dzo0ICogc2VsZi50YXJnZXRXaWR0aF07Ci0gICAgZmxvYXQgZmxvYXRWYWx1ZSA9ICgoZmxvYXQq
KWJ1ZmZlcilbMF07Ci0gICAgZnJlZShidWZmZXIpOwotICAgIHJldHVybiBmbG9hdFZhbHVlOwot
fQotCi1AZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09uc2NyZWVuUmVuZGVyZXIuaCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT25z
Y3JlZW5SZW5kZXJlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjBhYjYwY2Ux
NC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLmgJCisrKyAvZGV2L251
bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi0jaW1wb3J0ICJS
ZW5kZXJlci5oIgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1AaW50ZXJmYWNlIE9uc2Ny
ZWVuUmVuZGVyZXIgOiBSZW5kZXJlcjxNVEtWaWV3RGVsZWdhdGU+Ci0KLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFZpZXc6KE1US1ZpZXcqKXZpZXcgZGV2aWNlOihpZDxNVExEZXZpY2U+KWRldmlj
ZTsKLQotQHByb3BlcnR5IChyZWFkb25seSkgTVRLVmlldyAqdmlldzsKLQotLSAodm9pZClzZXRT
aGFkZXJTb3VyY2U6KE5TU3RyaW5nKilzb3VyY2UgdmVydGV4U2hhZGVyTmFtZTooTlNTdHJpbmcq
KXZlcnRleFNoYWRlciBmcmFnbWVudFNoYWRlck5hbWU6KE5TU3RyaW5nKilmcmFnbWVudFNoYWRl
cjsKLQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT25z
Y3JlZW5SZW5kZXJlci5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hM
U0wgVGVzdHMvQ29yZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLm0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMwNjI0ODIxNWY4Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09uc2Ny
ZWVuUmVuZGVyZXIubQkKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiT25zY3JlZW5SZW5k
ZXJlci5oIgotCi0jaW1wb3J0IDxzaW1kL3NpbWQuaD4KLQotQGludGVyZmFjZSBPbnNjcmVlblJl
bmRlcmVyICgpCi0KLUBwcm9wZXJ0eSBNVEtWaWV3ICp2aWV3OwotQHByb3BlcnR5IENHU2l6ZSBk
cmF3YWJsZVNpemU7Ci0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE9uc2NyZWVuUmVuZGVyZXIK
LQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooTVRLVmlldyAqKXZpZXcgZGV2aWNlOihu
b25udWxsIGlkPE1UTERldmljZT4pZGV2aWNlCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0
aERldmljZTpkZXZpY2VdOwotICAgIGlmIChzZWxmKSB7Ci0gICAgICAgIHNlbGYudmlldyA9IHZp
ZXc7Ci0gICAgICAgIHNlbGYudmlldy5kZWxlZ2F0ZSA9IHNlbGY7Ci0gICAgfQotICAgIHJldHVy
biBzZWxmOwotfQotCi0tICh2b2lkKW10a1ZpZXc6KE1US1ZpZXcgKil2aWV3IGRyYXdhYmxlU2l6
ZVdpbGxDaGFuZ2U6KENHU2l6ZSlzaXplCi17Ci0gICAgW3NlbGYgc2V0VGFyZ2V0V2lkdGg6c2l6
ZS53aWR0aCBzZXRUYXJnZXRIZWlnaHQ6c2l6ZS5oZWlnaHRdOwotfQotCi0tICh2b2lkKWRyYXdJ
bk1US1ZpZXc6KE1US1ZpZXcgKil2aWV3Ci17Ci0gICAgW3NlbGYgZHJhd107Ci19Ci0KLS0gKE1U
TFJlbmRlclBhc3NEZXNjcmlwdG9yKilyZW5kZXJQYXNzRGVzY3JpcHRvcgotewotICAgIHJldHVy
biBzZWxmLnZpZXcuY3VycmVudFJlbmRlclBhc3NEZXNjcmlwdG9yOwotfQotCi0tICh2b2lkKWNv
bmZpZ3VyZUNvbW1hbmRCdWZmZXJCZWZvcmVDb21taXQ6KGlkPE1UTENvbW1hbmRCdWZmZXI+KWNv
bW1hbmRCdWZmZXIKLXsKLSAgICBbY29tbWFuZEJ1ZmZlciBwcmVzZW50RHJhd2FibGU6c2VsZi52
aWV3LmN1cnJlbnREcmF3YWJsZV07Ci19Ci0KLS0gKHZvaWQpc2V0U2hhZGVyU291cmNlOihOU1N0
cmluZyAqKXNvdXJjZSB2ZXJ0ZXhTaGFkZXJOYW1lOihOU1N0cmluZyAqKXZlcnRleFNoYWRlck5h
bWUgZnJhZ21lbnRTaGFkZXJOYW1lOihOU1N0cmluZyAqKWZyYWdtZW50U2hhZGVyTmFtZQotewot
ICAgIE1UTENvbXBpbGVPcHRpb25zICpjb21waWxlT3B0aW9ucyA9IFtbTVRMQ29tcGlsZU9wdGlv
bnMgYWxsb2NdIGluaXRdOwotICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIGlkPE1UTExp
YnJhcnk+IGxpYnJhcnkgPSBbc2VsZi5kZXZpY2UgbmV3TGlicmFyeVdpdGhTb3VyY2U6c291cmNl
IG9wdGlvbnM6Y29tcGlsZU9wdGlvbnMgZXJyb3I6JmVycm9yXTsKLSAgICBpZiAoIWxpYnJhcnkg
JiYgZXJyb3IpIHsKLSAgICAgICAgTlNMb2coQCJDb21waWxlIGVycm9yOiAlQCIsIGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFtzZWxm
IHNldExpYnJhcnk6bGlicmFyeSB2ZXJ0ZXhTaGFkZXJOYW1lOnZlcnRleFNoYWRlck5hbWUgZnJh
Z21lbnRTaGFkZXJOYW1lOmZyYWdtZW50U2hhZGVyTmFtZSBwaXhlbEZvcm1hdDpzZWxmLnZpZXcu
Y29sb3JQaXhlbEZvcm1hdF07Ci19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvUmVuZGVyZXIu
aCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
UmVuZGVyZXIvUmVuZGVyZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBiMjM1
M2I4MjYuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvUmVuZGVyZXIuaAkKKysrIC9kZXYvbnVsbApA
QCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW1wb3J0IDxNZXRhbEtp
dC9NZXRhbEtpdC5oPgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1AaW50ZXJmYWNlIFJl
bmRlcmVyIDogTlNPYmplY3QKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGV2aWNlOihpZDxN
VExEZXZpY2U+KWRldmljZTsKLQotQHByb3BlcnR5IChub25hdG9taWMpIHNpbWRfZmxvYXQzeDMg
dHJhbnNmb3JtTWF0cml4OwotCi1AcHJvcGVydHkgKHJlYWRvbmx5KSBpZDxNVExEZXZpY2U+IGRl
dmljZTsKLQotQHByb3BlcnR5IChyZWFkb25seSkgTlNVSW50ZWdlciB0YXJnZXRXaWR0aDsKLUBw
cm9wZXJ0eSAocmVhZG9ubHkpIE5TVUludGVnZXIgdGFyZ2V0SGVpZ2h0OwotCi0tICh2b2lkKXNl
dFRhcmdldFdpZHRoOihOU1VJbnRlZ2VyKXdpZHRoIHNldFRhcmdldEhlaWdodDooTlNVSW50ZWdl
ciloZWlnaHQ7Ci0KLS0gKHZvaWQpc2V0TGlicmFyeTooaWQ8TVRMTGlicmFyeT4pbGlicmFyeSB2
ZXJ0ZXhTaGFkZXJOYW1lOihOU1N0cmluZyopdmVydGV4U2hhZGVyIGZyYWdtZW50U2hhZGVyTmFt
ZTooTlNTdHJpbmcqKWZyYWdtZW50U2hhZGVyTmFtZSBwaXhlbEZvcm1hdDooTVRMUGl4ZWxGb3Jt
YXQpcGl4ZWxGb3JtYXQ7Ci0KLS0gKHZvaWQpZHJhdzsKLQotLy8gTWV0aG9kcyB0aGF0IGNhbiBi
ZSBvdmVybG9hZGVkIHRvIGNvbmZpZ3VyZSB0aGUgcmVuZGVyIHBpcGVsaW5lCi0tIChNVExSZW5k
ZXJQYXNzRGVzY3JpcHRvciopcmVuZGVyUGFzc0Rlc2NyaXB0b3I7Ci0tICh2b2lkKWNvbmZpZ3Vy
ZUNvbW1hbmRCdWZmZXJCZWZvcmVDb21taXQ6KGlkPE1UTENvbW1hbmRCdWZmZXI+KWNvbW1hbmRC
dWZmZXI7Ci0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVy
L1JlbmRlcmVyLm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL1JlbmRlcmVyL1JlbmRlcmVyLm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDgyMWY5NWNlNzgyLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL1JlbmRlcmVyLm0JCisrKyAv
ZGV2L251bGwKQEAgLTEsMTcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJSZW5kZXJlci5oIgotCi0vLyBUaGlzIHNob3VsZCBt
aXJyb3IgdGhlIHN0cnVjdHVyZSB0aGF0IGlzIHVzZWQgZm9yIHRoZSB2ZXJ0ZXggc2hhZGVycwot
dHlwZWRlZiBzdHJ1Y3QgewotICAgIHZlY3Rvcl9mbG9hdDIgcG9zaXRpb247Ci0gICAgdmVjdG9y
X2Zsb2F0MiB1djsKLX0gVmVydGV4U3RydWN0OwotCi0vLyBBIHF1YWQgdGhhdCBmaWxscyB0aGUg
dmlld3BvcnQKLXN0YXRpYyBWZXJ0ZXhTdHJ1Y3QgdmVydGV4RGF0YVtdID0KLXsKLSAgICAvLyAy
RCBwb3NpdGlvbnMKLSAgICB7IHsgLTEuMCwgIC0xLjAgfSwgeyAwLCAwIH0gfSwKLSAgICB7IHsg
IDEuMCwgIC0xLjAgfSwgeyAxLCAwIH0gfSwKLSAgICB7IHsgLTEuMCwgMS4wIH0sIHsgMCwgMSB9
IH0sCi0gICAgeyB7ICAxLjAsIDEuMCB9LCB7IDEsIDEgfSB9Ci19OwotCi1AaW50ZXJmYWNlIFJl
bmRlcmVyICgpCi0KLUBwcm9wZXJ0eSBpZDxNVExEZXZpY2U+IGRldmljZTsKLUBwcm9wZXJ0eSBO
U1VJbnRlZ2VyIHRhcmdldFdpZHRoOwotQHByb3BlcnR5IE5TVUludGVnZXIgdGFyZ2V0SGVpZ2h0
OwotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBSZW5kZXJlciB7Ci0gICAgaWQ8TVRMQ29tbWFu
ZFF1ZXVlPiBfY29tbWFuZFF1ZXVlOwotICAgIGlkPE1UTExpYnJhcnk+IF9saWJyYXJ5OwotCi0g
ICAgTVRMUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yICpfcGlwZWxpbmVTdGF0ZURlc2NyaXB0b3I7
Ci0KLSAgICBpZDxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiBfcGlwZWxpbmVTdGF0ZTsKLX0KLQot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGV2aWNlOihpZDxNVExEZXZpY2U+KWRldmljZQotewot
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKHNlbGYpIHsKLSAgICAgICAgX2Rldmlj
ZSA9IGRldmljZTsKLSAgICAgICAgX2NvbW1hbmRRdWV1ZSA9IFtfZGV2aWNlIG5ld0NvbW1hbmRR
dWV1ZV07Ci0gICAgICAgIHNlbGYudHJhbnNmb3JtTWF0cml4ID0gbWF0cml4X2lkZW50aXR5X2Zs
b2F0M3gzOwotICAgIH0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClzZXRMaWJyYXJ5
OihpZDxNVExMaWJyYXJ5PilsaWJyYXJ5IHZlcnRleFNoYWRlck5hbWU6KE5TU3RyaW5nKil2ZXJ0
ZXhTaGFkZXJOYW1lIGZyYWdtZW50U2hhZGVyTmFtZTooTlNTdHJpbmcqKWZyYWdtZW50U2hhZGVy
TmFtZSBwaXhlbEZvcm1hdDooTVRMUGl4ZWxGb3JtYXQpcGl4ZWxGb3JtYXQKLXsKLSAgICBfbGli
cmFyeSA9IGxpYnJhcnk7Ci0gICAgaWQ8TVRMRnVuY3Rpb24+IHZlcnRleEZ1bmN0aW9uID0gW19s
aWJyYXJ5IG5ld0Z1bmN0aW9uV2l0aE5hbWU6dmVydGV4U2hhZGVyTmFtZV07Ci0gICAgaWQ8TVRM
RnVuY3Rpb24+IGZyYWdtZW50RnVuY3Rpb24gPSBbX2xpYnJhcnkgbmV3RnVuY3Rpb25XaXRoTmFt
ZTpmcmFnbWVudFNoYWRlck5hbWVdOwotCi0gICAgLy8gQ29uZmlndXJlIGEgcGlwZWxpbmUgZGVz
Y3JpcHRvciB0aGF0IGlzIHVzZWQgdG8gY3JlYXRlIGEgcGlwZWxpbmUgc3RhdGUKLSAgICBfcGlw
ZWxpbmVTdGF0ZURlc2NyaXB0b3IgPSBbW01UTFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBhbGxv
Y10gaW5pdF07Ci0KLSAgICBNVExWZXJ0ZXhEZXNjcmlwdG9yICp2ZXJ0ZXhEZXNjcmlwdG9yID0g
W01UTFZlcnRleERlc2NyaXB0b3IgdmVydGV4RGVzY3JpcHRvcl07Ci0gICAgdmVydGV4RGVzY3Jp
cHRvci5hdHRyaWJ1dGVzWzBdLmZvcm1hdCA9IE1UTFZlcnRleEZvcm1hdEZsb2F0MjsKLSAgICB2
ZXJ0ZXhEZXNjcmlwdG9yLmF0dHJpYnV0ZXNbMF0uYnVmZmVySW5kZXggPSAwOwotICAgIHZlcnRl
eERlc2NyaXB0b3IuYXR0cmlidXRlc1swXS5vZmZzZXQgPSAwOwotCi0gICAgdmVydGV4RGVzY3Jp
cHRvci5hdHRyaWJ1dGVzWzFdLmZvcm1hdCA9IE1UTFZlcnRleEZvcm1hdEZsb2F0MjsKLSAgICB2
ZXJ0ZXhEZXNjcmlwdG9yLmF0dHJpYnV0ZXNbMV0uYnVmZmVySW5kZXggPSAwOwotICAgIHZlcnRl
eERlc2NyaXB0b3IuYXR0cmlidXRlc1sxXS5vZmZzZXQgPSBvZmZzZXRvZihWZXJ0ZXhTdHJ1Y3Qs
IHV2KTsKLQotICAgIHZlcnRleERlc2NyaXB0b3IubGF5b3V0c1swXS5zdHJpZGUgPSBzaXplb2Yo
VmVydGV4U3RydWN0KTsKLSAgICB2ZXJ0ZXhEZXNjcmlwdG9yLmxheW91dHNbMF0uc3RlcEZ1bmN0
aW9uID0gTVRMVmVydGV4U3RlcEZ1bmN0aW9uUGVyVmVydGV4OwotCi0gICAgX3BpcGVsaW5lU3Rh
dGVEZXNjcmlwdG9yLnZlcnRleERlc2NyaXB0b3IgPSB2ZXJ0ZXhEZXNjcmlwdG9yOwotCi0gICAg
X3BpcGVsaW5lU3RhdGVEZXNjcmlwdG9yLmxhYmVsID0gQCJTaW1wbGUgUGlwZWxpbmUiOwotICAg
IF9waXBlbGluZVN0YXRlRGVzY3JpcHRvci52ZXJ0ZXhGdW5jdGlvbiA9IHZlcnRleEZ1bmN0aW9u
OwotICAgIF9waXBlbGluZVN0YXRlRGVzY3JpcHRvci5mcmFnbWVudEZ1bmN0aW9uID0gZnJhZ21l
bnRGdW5jdGlvbjsKLSAgICBfcGlwZWxpbmVTdGF0ZURlc2NyaXB0b3IuY29sb3JBdHRhY2htZW50
c1swXS5waXhlbEZvcm1hdCA9IHBpeGVsRm9ybWF0OwotCi0gICAgTlNFcnJvciAqZXJyb3IgPSBu
aWw7Ci0gICAgX3BpcGVsaW5lU3RhdGUgPSBbX2RldmljZSBuZXdSZW5kZXJQaXBlbGluZVN0YXRl
V2l0aERlc2NyaXB0b3I6X3BpcGVsaW5lU3RhdGVEZXNjcmlwdG9yIGVycm9yOiZlcnJvcl07Ci0K
LSAgICBOU0Fzc2VydChfcGlwZWxpbmVTdGF0ZSwgQCJGYWlsZWQgdG8gY3JlYXRlZCBwaXBlbGlu
ZSBzdGF0ZTogJUAiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbik7Ci19Ci0KLS0gKHZvaWQp
c2V0VGFyZ2V0V2lkdGg6KE5TVUludGVnZXIpd2lkdGggc2V0VGFyZ2V0SGVpZ2h0OihOU1VJbnRl
Z2VyKWhlaWdodAotewotICAgIF90YXJnZXRXaWR0aCA9IHdpZHRoOwotICAgIF90YXJnZXRIZWln
aHQgPSBoZWlnaHQ7Ci19Ci0KLS0gKHZvaWQpZHJhdwotewotICAgIGlmICghX3BpcGVsaW5lU3Rh
dGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIENyZWF0ZSBhIG5ldyBjb21tYW5kIGJ1ZmZl
ciBmb3IgZWFjaCByZW5kZXIgcGFzcyB0byB0aGUgY3VycmVudCBkcmF3YWJsZQotICAgIGlkPE1U
TENvbW1hbmRCdWZmZXI+IGNvbW1hbmRCdWZmZXIgPSBbX2NvbW1hbmRRdWV1ZSBjb21tYW5kQnVm
ZmVyXTsKLSAgICBjb21tYW5kQnVmZmVyLmxhYmVsID0gQCJNeUNvbW1hbmQiOwotCi0gICAgTVRM
UmVuZGVyUGFzc0Rlc2NyaXB0b3IgKnJlbmRlclBhc3NEZXNjcmlwdG9yID0gW3NlbGYgcmVuZGVy
UGFzc0Rlc2NyaXB0b3JdOwotCi0gICAgTlNBc3NlcnQocmVuZGVyUGFzc0Rlc2NyaXB0b3IsIEAi
bmlsIE1UTFJlbmRlclBhc3NEZXNjcmlwdG9yIik7Ci0KLSAgICByZW5kZXJQYXNzRGVzY3JpcHRv
ci5jb2xvckF0dGFjaG1lbnRzWzBdLmNsZWFyQ29sb3IgPSBNVExDbGVhckNvbG9yTWFrZSgwLCAw
LCAwLCAwKTsKLSAgICByZW5kZXJQYXNzRGVzY3JpcHRvci5jb2xvckF0dGFjaG1lbnRzWzBdLmxv
YWRBY3Rpb24gPSBNVExMb2FkQWN0aW9uQ2xlYXI7Ci0gICAgcmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
Y29sb3JBdHRhY2htZW50c1swXS5zdG9yZUFjdGlvbiA9IE1UTFN0b3JlQWN0aW9uU3RvcmU7Ci0K
LSAgICAvLyBDcmVhdGUgYSByZW5kZXIgY29tbWFuZCBlbmNvZGVyIHNvIHdlIGNhbiByZW5kZXIg
aW50byBzb21ldGhpbmcKLSAgICBpZDxNVExSZW5kZXJDb21tYW5kRW5jb2Rlcj4gcmVuZGVyRW5j
b2RlciA9IFtjb21tYW5kQnVmZmVyIHJlbmRlckNvbW1hbmRFbmNvZGVyV2l0aERlc2NyaXB0b3I6
cmVuZGVyUGFzc0Rlc2NyaXB0b3JdOwotICAgIHJlbmRlckVuY29kZXIubGFiZWwgPSBAIk15UmVu
ZGVyRW5jb2RlciI7Ci0KLSAgICBbcmVuZGVyRW5jb2RlciBzZXRWaWV3cG9ydDooTVRMVmlld3Bv
cnQpIHsgMC4wLCAwLjAsIF90YXJnZXRXaWR0aCwgX3RhcmdldEhlaWdodCwgLTEuMCwgMS4wIH1d
OwotCi0gICAgW3JlbmRlckVuY29kZXIgc2V0UmVuZGVyUGlwZWxpbmVTdGF0ZTpfcGlwZWxpbmVT
dGF0ZV07Ci0KLSAgICBbcmVuZGVyRW5jb2RlciBzZXRWZXJ0ZXhCeXRlczp2ZXJ0ZXhEYXRhIGxl
bmd0aDpzaXplb2YodmVydGV4RGF0YSkgYXRJbmRleDowXTsKLQotICAgIFtyZW5kZXJFbmNvZGVy
IGRyYXdQcmltaXRpdmVzOk1UTFByaW1pdGl2ZVR5cGVUcmlhbmdsZVN0cmlwIHZlcnRleFN0YXJ0
OjAgdmVydGV4Q291bnQ6NF07Ci0KLSAgICBbcmVuZGVyRW5jb2RlciBlbmRFbmNvZGluZ107Ci0K
LSAgICBbc2VsZiBjb25maWd1cmVDb21tYW5kQnVmZmVyQmVmb3JlQ29tbWl0OmNvbW1hbmRCdWZm
ZXJdOwotCi0gICAgW2NvbW1hbmRCdWZmZXIgY29tbWl0XTsKLSAgICBbY29tbWFuZEJ1ZmZlciB3
YWl0VW50aWxDb21wbGV0ZWRdOwotfQotCi0tICh2b2lkKXNldFRyYW5zZm9ybU1hdHJpeDooc2lt
ZF9mbG9hdDN4Myl0cmFuc2Zvcm1NYXRyaXgKLXsKLSAgICBfdHJhbnNmb3JtTWF0cml4ID0gdHJh
bnNmb3JtTWF0cml4OwotICAgIHNpbWRfZmxvYXQzIHYwID0gbWF0cml4X211bHRpcGx5KF90cmFu
c2Zvcm1NYXRyaXgsIHZlY3RvcjMoMC4wZiwgMC4wZiwgMS4wZikpOwotICAgIHNpbWRfZmxvYXQz
IHYxID0gbWF0cml4X211bHRpcGx5KF90cmFuc2Zvcm1NYXRyaXgsIHZlY3RvcjMoMS4wZiwgMC4w
ZiwgMS4wZikpOwotICAgIHNpbWRfZmxvYXQzIHYyID0gbWF0cml4X211bHRpcGx5KF90cmFuc2Zv
cm1NYXRyaXgsIHZlY3RvcjMoMC4wZiwgMS4wZiwgMS4wZikpOwotICAgIHNpbWRfZmxvYXQzIHYz
ID0gbWF0cml4X211bHRpcGx5KF90cmFuc2Zvcm1NYXRyaXgsIHZlY3RvcjMoMS4wZiwgMS4wZiwg
MS4wZikpOwotCi0gICAgdmVydGV4RGF0YVswXS51diA9IHZlY3RvcjIodjAueCwgdjAueSk7Ci0g
ICAgdmVydGV4RGF0YVsxXS51diA9IHZlY3RvcjIodjEueCwgdjEueSk7Ci0gICAgdmVydGV4RGF0
YVsyXS51diA9IHZlY3RvcjIodjIueCwgdjIueSk7Ci0gICAgdmVydGV4RGF0YVszXS51diA9IHZl
Y3RvcjIodjMueCwgdjMueSk7Ci19Ci0KLS0gKE1UTFJlbmRlclBhc3NEZXNjcmlwdG9yICopcmVu
ZGVyUGFzc0Rlc2NyaXB0b3IKLXsKLSAgICByZXR1cm4gbmlsOwotfQotCi0tICh2b2lkKWNvbmZp
Z3VyZUNvbW1hbmRCdWZmZXJCZWZvcmVDb21taXQ6KGlkPE1UTENvbW1hbmRCdWZmZXI+KWNvbW1h
bmRCdWZmZXIKLXsKLX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0Q2FsbEFyZ3VtZW50LmggYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxs
QXJndW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJiMzM1YmRlMWMuLjAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL0NvcmUvVGVzdENhbGxBcmd1bWVudC5oCQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotdHlwZWRlZiBlbnVtIDogTlNVSW50ZWdl
ciB7Ci0gICAgV0hMU0xUeXBlQm9vbCwKLSAgICBXSExTTFR5cGVVY2hhciwKLSAgICBXSExTTFR5
cGVTaG9ydCwKLSAgICBXSExTTFR5cGVJbnQsCi0gICAgV0hMU0xUeXBlVXNob3J0LAotICAgIFdI
TFNMVHlwZVVpbnQsCi0gICAgV0hMU0xUeXBlSGFsZiwKLSAgICBXSExTTFR5cGVGbG9hdAotfSBX
SExTTFR5cGU7Ci0KLU5TU3RyaW5nKiBXSExTTFR5cGVTdHJpbmcoV0hMU0xUeXBlKTsKLQotTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KLQotQGludGVyZmFjZSBUZXN0Q2FsbEFyZ3VtZW50IDogTlNP
YmplY3QKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmFsdWU6KE5TTnVtYmVyKil2YWx1ZSB0
eXBlOihXSExTTFR5cGUpdHlwZTsKLQotQHByb3BlcnR5IChyZWFkb25seSkgTlNOdW1iZXIqIHZh
bHVlOwotQHByb3BlcnR5IChyZWFkb25seSkgV0hMU0xUeXBlIHR5cGU7Ci0KLS0gKE5TU3RyaW5n
Kil3aGxzbFNvdXJjZTsKLQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
VGVzdENhbGxBcmd1bWVudC5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9UZXN0Q2FsbEFyZ3VtZW50Lm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU5NzA0NmUyZDE0Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJndW1lbnQubQkK
KysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiVGVzdENhbGxBcmd1bWVudC5oIgotCi1OU1N0
cmluZyogV0hMU0xUeXBlU3RyaW5nKFdITFNMVHlwZSB0eXBlKQotewotICAgIHN3aXRjaCAodHlw
ZSkgewotICAgIGNhc2UgV0hMU0xUeXBlQm9vbDoKLSAgICAgICAgcmV0dXJuIEAiYm9vbCI7Ci0g
ICAgY2FzZSBXSExTTFR5cGVVY2hhcjoKLSAgICAgICAgcmV0dXJuIEAidWNoYXIiOwotICAgIGNh
c2UgV0hMU0xUeXBlU2hvcnQ6Ci0gICAgICAgIHJldHVybiBAInVzaG9ydCI7Ci0gICAgY2FzZSBX
SExTTFR5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBAImludCI7Ci0gICAgY2FzZSBXSExTTFR5cGVV
c2hvcnQ6Ci0gICAgICAgIHJldHVybiBAInVzaG9ydCI7Ci0gICAgY2FzZSBXSExTTFR5cGVVaW50
OgotICAgICAgICByZXR1cm4gQCJ1aW50IjsKLSAgICBjYXNlIFdITFNMVHlwZUhhbGY6Ci0gICAg
ICAgIHJldHVybiBAImhhbGYiOwotICAgIGNhc2UgV0hMU0xUeXBlRmxvYXQ6Ci0gICAgICAgIHJl
dHVybiBAImZsb2F0IjsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gbmlsOwotICAgIH0K
LX0KLQotQGludGVyZmFjZSBUZXN0Q2FsbEFyZ3VtZW50ICgpCi0KLUBwcm9wZXJ0eSBOU051bWJl
ciogdmFsdWU7Ci1AcHJvcGVydHkgV0hMU0xUeXBlIHR5cGU7Ci0KLUBlbmQKLQotQGltcGxlbWVu
dGF0aW9uIFRlc3RDYWxsQXJndW1lbnQKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmFsdWU6
KE5TTnVtYmVyICopdmFsdWUgdHlwZTooV0hMU0xUeXBlKXR5cGUKLXsKLSAgICBpZiAoc2VsZiA9
IFtzdXBlciBpbml0XSkgewotICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWU7Ci0gICAgICAgIHNl
bGYudHlwZSA9IHR5cGU7Ci0gICAgfQotICAgIHJldHVybiBzZWxmOwotfQotCi0vLyBGSVhNRTog
VGhpcyBzaG91bGQgcHJvYmFibHkgYmUgTVNMIHNvdXJjZQotLSAoTlNTdHJpbmcqKXdobHNsU291
cmNlCi17Ci0gICAgc3dpdGNoIChzZWxmLnR5cGUpIHsKLSAgICBjYXNlIFdITFNMVHlwZUJvb2w6
Ci0gICAgICAgIHJldHVybiBzZWxmLnZhbHVlLmJvb2xWYWx1ZSA/IEAidHJ1ZSIgOiBAImZhbHNl
IjsKLSAgICBjYXNlIFdITFNMVHlwZVVjaGFyOgotICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCJ1aW50OF90KCV1dSkiLCBzZWxmLnZhbHVlLnVuc2lnbmVkSW50VmFs
dWVdOwotICAgIGNhc2UgV0hMU0xUeXBlU2hvcnQ6Ci0gICAgICAgIHJldHVybiBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAImludDE2X3QoJWQpIiwgc2VsZi52YWx1ZS5pbnRWYWx1ZV07Ci0g
ICAgY2FzZSBXSExTTFR5cGVVc2hvcnQ6Ci0gICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAInVpbnQxNl90KCV1dSkiLCBzZWxmLnZhbHVlLnVuc2lnbmVkSW50VmFsdWVd
OwotICAgIGNhc2UgV0hMU0xUeXBlSW50OgotICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCIlZCIsIHNlbGYudmFsdWUuaW50VmFsdWVdOwotICAgIGNhc2UgV0hMU0xU
eXBlVWludDoKLSAgICAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJXV1
Iiwgc2VsZi52YWx1ZS51bnNpZ25lZEludFZhbHVlXTsKLSAgICBjYXNlIFdITFNMVHlwZUhhbGY6
Ci0gICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVmIiwgc2VsZi52
YWx1ZS5mbG9hdFZhbHVlXTsKLSAgICBjYXNlIFdITFNMVHlwZUZsb2F0OgotICAgICAgICByZXR1
cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJoYWxmKCVmKSIsIHNlbGYudmFsdWUuZmxv
YXRWYWx1ZV07Ci0gICAgfQotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5oIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0
RGVzY3JpcHRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYxOGJjNWIzMDIu
LjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvVGVzdERlc2NyaXB0aW9uLmgJCisrKyAvZGV2L251bGwKQEAgLTEsNTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLUBp
bXBvcnQgRm91bmRhdGlvbjsKLSNpbXBvcnQgIlRlc3RDYWxsQXJndW1lbnQuaCIKLQotQGNsYXNz
IFRlc3RGYW1pbHk7Ci0KLU5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCi0KLUBpbnRlcmZhY2UgVGVz
dERlc2NyaXB0aW9uIDogTlNPYmplY3QKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnVuY3Rp
b25OYW1lOihOU1N0cmluZyopZnVuY3Rpb25OYW1lIGFyZ3VtZW50czooTlNBcnJheTxUZXN0Q2Fs
bEFyZ3VtZW50Kj4qKWFyZ3VtZW50czsKLQotQHByb3BlcnR5IE5TU3RyaW5nKiBmdW5jdGlvbk5h
bWU7Ci1AcHJvcGVydHkgTlNBcnJheTxUZXN0Q2FsbEFyZ3VtZW50Kj4qIGFyZ3VtZW50czsKLQot
QHByb3BlcnR5IFdITFNMVHlwZSByZXR1cm5UeXBlOwotQHByb3BlcnR5IE5TTnVtYmVyKiBleHBl
Y3RhdGlvbjsKLQotQHByb3BlcnR5ICh3ZWFrKSBUZXN0RmFtaWx5KiB0ZXN0RmFtaWx5OwotQHBy
b3BlcnR5IE5TU3RyaW5nKiBmcmFnbWVudFNoYWRlck5hbWU7Ci0KLS0gKE5TU3RyaW5nKiltZXRh
bEZyYWdtZW50U2hhZGVyU291cmNlRm9yQ2FsbFRvTWV0YWxGdW5jdGlvbjooTlNTdHJpbmcqKWNv
bXBpbGVkTmFtZU9mRnVuY3Rpb247Ci0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RGVzY3JpcHRpb24ubQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzU4MmUyYzk4OTAuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdERlc2NyaXB0aW9u
Lm0JCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJUZXN0RGVzY3JpcHRpb24uaCIKLQot
QGltcGxlbWVudGF0aW9uIFRlc3REZXNjcmlwdGlvbgotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGdW5jdGlvbk5hbWU6KE5TU3RyaW5nICopZnVuY3Rpb25OYW1lIGFyZ3VtZW50czooTlNBcnJh
eTxUZXN0Q2FsbEFyZ3VtZW50ICo+ICopYXJndW1lbnRzCi17Ci0gICAgaWYgKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pIHsKLSAgICAgICAgc2VsZi5mdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5hbWU7Ci0g
ICAgICAgIHNlbGYuYXJndW1lbnRzID0gYXJndW1lbnRzOwotICAgIH0KLSAgICByZXR1cm4gc2Vs
ZjsKLX0KLQotLSAoTlNTdHJpbmcqKWNhbGxTdHJpbmc6KE5TU3RyaW5nKiljb21waWxlZE5hbWVP
ZkZ1bmN0aW9uCi17Ci0gICAgTlNNdXRhYmxlU3RyaW5nKiBzdHJpbmcgPSBbTlNNdXRhYmxlU3Ry
aW5nIG5ld107Ci0gICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCIlQCgiLCBjb21waWxlZE5hbWVP
ZkZ1bmN0aW9uXTsKLQotICAgIEJPT0wgZmlyc3QgPSBZRVM7Ci0gICAgZm9yIChUZXN0Q2FsbEFy
Z3VtZW50KiBhcmd1bWVudCBpbiBzZWxmLmFyZ3VtZW50cykgewotICAgICAgICBpZiAoIWZpcnN0
KQotICAgICAgICAgICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCIsICVAIiwgYXJndW1lbnQud2hs
c2xTb3VyY2VdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBbc3RyaW5nIGFwcGVuZFN0cmlu
Zzphcmd1bWVudC53aGxzbFNvdXJjZV07Ci0gICAgICAgIGZpcnN0ID0gTk87Ci0gICAgfQotCi0g
ICAgW3N0cmluZyBhcHBlbmRTdHJpbmc6QCIpIl07Ci0gICAgcmV0dXJuIHN0cmluZzsKLX0KLQot
LSAoTlNTdHJpbmcqKWRlc2NyaXB0aW9uCi17Ci0gICAgTlNNdXRhYmxlU3RyaW5nKiBzdHJpbmcg
PSBbTlNNdXRhYmxlU3RyaW5nIG5ld107Ci0gICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCIlQCAl
QCgiLCBXSExTTFR5cGVTdHJpbmcoc2VsZi5yZXR1cm5UeXBlKSwgc2VsZi5mdW5jdGlvbk5hbWVd
OwotICAgIEJPT0wgZmlyc3QgPSBZRVM7Ci0gICAgZm9yIChUZXN0Q2FsbEFyZ3VtZW50KiBhcmd1
bWVudCBpbiBzZWxmLmFyZ3VtZW50cykgewotICAgICAgICBpZiAoIWZpcnN0KQotICAgICAgICAg
ICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCIsICVAICVAIiwgV0hMU0xUeXBlU3RyaW5nKHNlbGYu
cmV0dXJuVHlwZSksIGFyZ3VtZW50LndobHNsU291cmNlXTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCIlQCAlQCIsIFdITFNMVHlwZVN0cmluZyhzZWxm
LnJldHVyblR5cGUpLCBhcmd1bWVudC53aGxzbFNvdXJjZV07Ci0gICAgICAgIGZpcnN0ID0gTk87
Ci0gICAgfQotICAgIFtzdHJpbmcgYXBwZW5kU3RyaW5nOkAiKSJdOwotICAgIHJldHVybiBzdHJp
bmc7Ci19Ci0KLS0gKE5TU3RyaW5nKiltZXRhbEZyYWdtZW50U2hhZGVyU291cmNlRm9yQ2FsbFRv
TWV0YWxGdW5jdGlvbjooTlNTdHJpbmcgKiljb21waWxlZE5hbWVPZkZ1bmN0aW9uCi17Ci0gICAg
TlNTdHJpbmcqIHJldHVyblR5cGVTdHJpbmc7Ci0gICAgc3dpdGNoIChzZWxmLnJldHVyblR5cGUp
IHsKLSAgICBjYXNlIFdITFNMVHlwZUJvb2w6Ci0gICAgY2FzZSBXSExTTFR5cGVVY2hhcjoKLSAg
ICBjYXNlIFdITFNMVHlwZVVzaG9ydDoKLSAgICBjYXNlIFdITFNMVHlwZVVpbnQ6Ci0gICAgICAg
IHJldHVyblR5cGVTdHJpbmcgPSBAIkZyYWdtZW50T3V0cHV0VWludCI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV0hMU0xUeXBlU2hvcnQ6Ci0gICAgY2FzZSBXSExTTFR5cGVJbnQ6Ci0gICAg
ICAgIHJldHVyblR5cGVTdHJpbmcgPSBAIkZyYWdtZW50T3V0cHV0SW50IjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBXSExTTFR5cGVIYWxmOgotICAgIGNhc2UgV0hMU0xUeXBlRmxvYXQ6Ci0g
ICAgICAgIHJldHVyblR5cGVTdHJpbmcgPSBAIkZyYWdtZW50T3V0cHV0RmxvYXQiOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgTlNNdXRhYmxlU3RyaW5nKiBzdHJpbmcgPSBbTlNNdXRhYmxl
U3RyaW5nIG5ld107Ci0gICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCJmcmFnbWVudCAlQCAlQChW
ZXJ0ZXhPdXRwdXQgc3RhZ2VJbiBbW3N0YWdlX2luXV0pXG4iLCByZXR1cm5UeXBlU3RyaW5nLCBz
ZWxmLmZyYWdtZW50U2hhZGVyTmFtZV07Ci0gICAgW3N0cmluZyBhcHBlbmRTdHJpbmc6QCJ7XG4i
XTsKLSAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAIiAgICAlQCBmcmFnbWVudE91dHB1dDtcbiIs
IHJldHVyblR5cGVTdHJpbmddOwotCi0gICAgTlNTdHJpbmcgKiBjYWxsID0gW3NlbGYgY2FsbFN0
cmluZzpjb21waWxlZE5hbWVPZkZ1bmN0aW9uXTsKLQotICAgIHN3aXRjaCAoc2VsZi5yZXR1cm5U
eXBlKSB7Ci0gICAgY2FzZSBXSExTTFR5cGVCb29sOgotICAgIGNhc2UgV0hMU0xUeXBlVWNoYXI6
Ci0gICAgY2FzZSBXSExTTFR5cGVVc2hvcnQ6Ci0gICAgY2FzZSBXSExTTFR5cGVVaW50OgotICAg
ICAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAIiAgICBmcmFnbWVudE91dHB1dC5yZXN1bHQgPSB1
aW50MzJfdCglQCk7XG4iLCBjYWxsXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXSExTTFR5
cGVTaG9ydDoKLSAgICBjYXNlIFdITFNMVHlwZUludDoKLSAgICAgICAgW3N0cmluZyBhcHBlbmRG
b3JtYXQ6QCIgICAgZnJhZ21lbnRPdXRwdXQucmVzdWx0ID0gaW50MzJfdCglQCk7XG4iLCBjYWxs
XTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXSExTTFR5cGVIYWxmOgotICAgIGNhc2UgV0hM
U0xUeXBlRmxvYXQ6Ci0gICAgICAgIFtzdHJpbmcgYXBwZW5kRm9ybWF0OkAiICAgIGZyYWdtZW50
T3V0cHV0LnJlc3VsdCA9IGZsb2F0KCVAKTtcbiIsIGNhbGxdOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICBbc3RyaW5nIGFwcGVuZFN0cmluZzpAIiAgICByZXR1cm4gZnJhZ21lbnRPdXRw
dXQ7XG4iXTsKLSAgICBbc3RyaW5nIGFwcGVuZFN0cmluZzpAIn1cbiJdOwotCi0gICAgcmV0dXJu
IHN0cmluZzsKLX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5LmggYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RGYW1pbHkuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQxZWI5ZDIwNDEuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVz
dEZhbWlseS5oCQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KLSNpbXBvcnQgIlRlc3RDYWxsQXJndW1lbnQuaCIKLSNpbXBvcnQgIlRlc3REZXNj
cmlwdGlvbi5oIgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1AaW50ZXJmYWNlIFRlc3RG
YW1pbHkgOiBOU09iamVjdAotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhOYW1lOihOU1N0cmlu
ZyopbmFtZSBzb3VyY2U6KE5TU3RyaW5nKilzb3VyY2U7Ci0KLUBwcm9wZXJ0eSAocmVhZG9ubHkp
IE5TU3RyaW5nKiBuYW1lOwotQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcqIHdobHNsU291
cmNlOwotQHByb3BlcnR5IChyZWFkb25seSkgTlNVSW50ZWdlciB0b3RhbFRlc3RDYXNlQ291bnQ7
Ci0KLS0gKHZvaWQpYWRkVGVzdERlc2NyaXB0aW9uOihUZXN0RGVzY3JpcHRpb24qKXRlc3REZXNj
cmlwdGlvbjsKLS0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKXRlc3RzRm9yUmV0dXJuVHlw
ZTooV0hMU0xUeXBlKXR5cGU7Ci0KLSsgKE5TU3RyaW5nKilzaGFyZWRNZXRhbFNvdXJjZTsKLS0g
KE5TU3RyaW5nKiltZXRhbFNvdXJjZUZvckNhbGxpbmdGdW5jdGlvbnNXaXRoQ29tcGlsZWROYW1l
czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nKiwgTlNTdHJpbmcqPiopY29tcGlsZWROYW1lczsKLQot
KyAoTlNBcnJheTxUZXN0RmFtaWx5Kj4qKWFsbFRlc3RzOwotCi0tIChOU0FycmF5PFRlc3REZXNj
cmlwdGlvbio+KilpbnRlZ2VyVGVzdHM7Ci0tIChOU0FycmF5PFRlc3REZXNjcmlwdGlvbio+Kil1
bnNpZ25lZEludGVnZXJUZXN0czsKLS0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKWZsb2F0
VGVzdHM7Ci0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RGYW1p
bHkubSBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0Nv
cmUvVGVzdEZhbWlseS5tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjU5MmQyYTkx
Yi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5Lm0JCisrKyAvZGV2L251bGwKQEAgLTEsMjU1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1w
b3J0ICJUZXN0RmFtaWx5LmgiCi0KLUBpbXBvcnQgSmF2YVNjcmlwdENvcmU7Ci0KLUBpbnRlcmZh
Y2UgVGVzdEZhbWlseSAoKQotCi1AcHJvcGVydHkgTlNTdHJpbmcqIG5hbWU7Ci1AcHJvcGVydHkg
TlNTdHJpbmcqIHdobHNsU291cmNlOwotQHByb3BlcnR5IE5TVUludGVnZXIgdG90YWxUZXN0Q2Fz
ZUNvdW50OwotCi1AcHJvcGVydHkgTlNNdXRhYmxlRGljdGlvbmFyeTxOU051bWJlciosIE5TTXV0
YWJsZUFycmF5PFRlc3REZXNjcmlwdGlvbio+Kj4qIHRlc3RzOwotCi1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBUZXN0RmFtaWx5Ci0KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aE5hbWU6KE5TU3Ry
aW5nICopbmFtZSBzb3VyY2U6KE5TU3RyaW5nICopc291cmNlCi17Ci0gICAgaWYgKHNlbGYgPSBb
c3VwZXIgaW5pdF0pIHsKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZTsKLSAgICAgICAgc2VsZi53
aGxzbFNvdXJjZSA9IHNvdXJjZTsKLSAgICAgICAgc2VsZi50ZXN0cyA9IFtOU011dGFibGVEaWN0
aW9uYXJ5IG5ld107Ci0gICAgICAgIHNlbGYudGVzdHNbQChXSExTTFR5cGVCb29sKV0gPSBbTlNN
dXRhYmxlQXJyYXkgbmV3XTsKLSAgICAgICAgc2VsZi50ZXN0c1tAKFdITFNMVHlwZVVjaGFyKV0g
PSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsKLSAgICAgICAgc2VsZi50ZXN0c1tAKFdITFNMVHlwZVNo
b3J0KV0gPSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsKLSAgICAgICAgc2VsZi50ZXN0c1tAKFdITFNM
VHlwZVVzaG9ydCldID0gW05TTXV0YWJsZUFycmF5IG5ld107Ci0gICAgICAgIHNlbGYudGVzdHNb
QChXSExTTFR5cGVVaW50KV0gPSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsKLSAgICAgICAgc2VsZi50
ZXN0c1tAKFdITFNMVHlwZUludCldID0gW05TTXV0YWJsZUFycmF5IG5ld107Ci0gICAgICAgIHNl
bGYudGVzdHNbQChXSExTTFR5cGVGbG9hdCldID0gW05TTXV0YWJsZUFycmF5IG5ld107Ci0gICAg
ICAgIHNlbGYudGVzdHNbQChXSExTTFR5cGVIYWxmKV0gPSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsK
LSAgICB9Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpYWRkVGVzdERlc2NyaXB0aW9u
OihUZXN0RGVzY3JpcHRpb24gKil0ZXN0RGVzY3JpcHRpb24KLXsKLSAgICBbc2VsZi50ZXN0c1tA
KHRlc3REZXNjcmlwdGlvbi5yZXR1cm5UeXBlKV0gYWRkT2JqZWN0OnRlc3REZXNjcmlwdGlvbl07
Ci0gICAgdGVzdERlc2NyaXB0aW9uLnRlc3RGYW1pbHkgPSBzZWxmOwotICAgIHRlc3REZXNjcmlw
dGlvbi5mcmFnbWVudFNoYWRlck5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImZy
YWdtZW50XyVAXyVsZCIsIHNlbGYubmFtZSwgc2VsZi50b3RhbFRlc3RDYXNlQ291bnQrK107Ci19
Ci0KLS0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKXRlc3RzRm9yUmV0dXJuVHlwZTooV0hM
U0xUeXBlKXR5cGUKLXsKLSAgICByZXR1cm4gc2VsZi50ZXN0c1tAKHR5cGUpXTsKLX0KLQotLSAo
TlNBcnJheTxUZXN0RGVzY3JpcHRpb24qPiopaW50ZWdlclRlc3RzCi17Ci0gICAgTlNNdXRhYmxl
QXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qIHJlc3VsdCA9IFtOU011dGFibGVBcnJheSBuZXddOwot
ICAgIFtyZXN1bHQgYWRkT2JqZWN0c0Zyb21BcnJheTpbc2VsZiB0ZXN0c0ZvclJldHVyblR5cGU6
V0hMU0xUeXBlU2hvcnRdXTsKLSAgICBbcmVzdWx0IGFkZE9iamVjdHNGcm9tQXJyYXk6W3NlbGYg
dGVzdHNGb3JSZXR1cm5UeXBlOldITFNMVHlwZUludF1dOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLS0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKXVuc2lnbmVkSW50ZWdlclRlc3RzCi17
Ci0gICAgTlNNdXRhYmxlQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qIHJlc3VsdCA9IFtOU011dGFi
bGVBcnJheSBuZXddOwotICAgIFtyZXN1bHQgYWRkT2JqZWN0c0Zyb21BcnJheTpbc2VsZiB0ZXN0
c0ZvclJldHVyblR5cGU6V0hMU0xUeXBlQm9vbF1dOwotICAgIFtyZXN1bHQgYWRkT2JqZWN0c0Zy
b21BcnJheTpbc2VsZiB0ZXN0c0ZvclJldHVyblR5cGU6V0hMU0xUeXBlVWNoYXJdXTsKLSAgICBb
cmVzdWx0IGFkZE9iamVjdHNGcm9tQXJyYXk6W3NlbGYgdGVzdHNGb3JSZXR1cm5UeXBlOldITFNM
VHlwZVVzaG9ydF1dOwotICAgIFtyZXN1bHQgYWRkT2JqZWN0c0Zyb21BcnJheTpbc2VsZiB0ZXN0
c0ZvclJldHVyblR5cGU6V0hMU0xUeXBlVWludF1dOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LS0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKWZsb2F0VGVzdHMKLXsKLSAgICBOU011dGFi
bGVBcnJheTxUZXN0RGVzY3JpcHRpb24qPiogcmVzdWx0ID0gW05TTXV0YWJsZUFycmF5IG5ld107
Ci0gICAgW3Jlc3VsdCBhZGRPYmplY3RzRnJvbUFycmF5OltzZWxmIHRlc3RzRm9yUmV0dXJuVHlw
ZTpXSExTTFR5cGVIYWxmXV07Ci0gICAgW3Jlc3VsdCBhZGRPYmplY3RzRnJvbUFycmF5OltzZWxm
IHRlc3RzRm9yUmV0dXJuVHlwZTpXSExTTFR5cGVGbG9hdF1dOwotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KLSsgKE5TU3RyaW5nKilzaGFyZWRNZXRhbFNvdXJjZQotewotICAgIHN0YXRpYyBOU1N0
cmluZyogcmVzdWx0OwotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAg
IGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgTlNTdHJpbmcqIHBhdGggPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIHBhdGhGb3JSZXNvdXJjZTpAIl9TaGFyZWRNZXRhbCIgb2ZU
eXBlOkAidHh0Il07Ci0gICAgICAgIHJlc3VsdCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVu
dHNPZkZpbGU6cGF0aCBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdOwot
ICAgIH0pOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS0gKE5TU3RyaW5nKiltZXRhbFNvdXJj
ZUZvckNhbGxpbmdGdW5jdGlvbnNXaXRoQ29tcGlsZWROYW1lczooTlNEaWN0aW9uYXJ5PE5TU3Ry
aW5nICosIE5TU3RyaW5nICo+ICopY29tcGlsZWROYW1lcwotewotICAgIE5TTXV0YWJsZVN0cmlu
Zyogc291cmNlID0gW05TTXV0YWJsZVN0cmluZyBuZXddOwotCi0gICAgW3NlbGYudGVzdHMgZW51
bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOl4oTlNOdW1iZXIgKiBfTm9ubnVsbCB0eXBl
LCBOU011dGFibGVBcnJheTxUZXN0RGVzY3JpcHRpb24gKj4gKiBfTm9ubnVsbCB0ZXN0cywgQk9P
TCAqIF9Ob25udWxsIHN0b3ApIHsKLSAgICAgICAgZm9yIChUZXN0RGVzY3JpcHRpb24qIHRlc3RE
ZXNjcmlwdGlvbiBpbiB0ZXN0cykKLSAgICAgICAgICAgIFtzb3VyY2UgYXBwZW5kRm9ybWF0OkAi
JUBcbiIsIFt0ZXN0RGVzY3JpcHRpb24gbWV0YWxGcmFnbWVudFNoYWRlclNvdXJjZUZvckNhbGxU
b01ldGFsRnVuY3Rpb246Y29tcGlsZWROYW1lc1t0ZXN0RGVzY3JpcHRpb24uZnVuY3Rpb25OYW1l
XV1dOwotICAgIH1dOwotCi0gICAgcmV0dXJuIHNvdXJjZTsKLX0KLQotKyAoTlNBcnJheTxUZXN0
RmFtaWx5Kj4qKWFsbFRlc3RzCi17Ci0gICAgSlNDb250ZXh0KiBjb21waWxlckNvbnRleHQgPSBb
SlNDb250ZXh0IG5ld107Ci0gICAgLy8gVGhlIHRlc3Qgc3VpdGUgZG9lc24ndCBhY3R1YWxseSBu
ZWVkIHRvIGxvYWQgYW55IG9mIGl0cyBkZXBlbmRlbmNpZXMgaW4gb3JkZXIgdG8gZ2VuZXJhdGUg
dGhlIGRhdGEgbmVlZGVkIGZvciB0ZXN0IGV4ZWN1dGlvbi4KLSAgICBjb21waWxlckNvbnRleHRb
QCJsb2FkIl0gPSBedm9pZChOU1N0cmluZyogZmlsZVBhdGgpIHsgfTsKLSAgICAvLyBTb21lIG9m
IHRoZSB0ZXN0cyBkaXJlY3RseSBjYWxsIHByZXBhcmU7IGJ1dCB0aGVzZSB0ZXN0cyBjYW4gYmUg
aWdub3JlZCBiZWNhdXNlIHRoZXkgYXJlIHRlc3RpbmcgYXNwZWN0cyBvZiB0aGUgaW50ZXJwcmV0
ZXIuCi0gICAgY29tcGlsZXJDb250ZXh0W0AicHJlcGFyZSJdID0gXmlkKE5TU3RyaW5nKiBmaWxl
UGF0aCwgTlNOdW1iZXIqIGxpbmVOdW1iZXIsIE5TU3RyaW5nKiBzcmMsIE5TTnVtYmVyKiBlbmFi
bGVJbmxpbmluZykgCi0gICAgewotICAgICAgICByZXR1cm4gbmlsOwotICAgIH07Ci0KLSAgICBO
U1N0cmluZyogdGVzdEZpbGUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gcGF0aEZvclJlc291cmNlOkAiVGVzdCIgb2ZUeXBlOkAianMi
XSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdOwotICAgIFtjb21waWxl
ckNvbnRleHQgZXZhbHVhdGVTY3JpcHQ6dGVzdEZpbGVdOwotCi0gICAgX19ibG9jayBOU1N0cmlu
ZyAqY3VycmVudFRlc3ROYW1lID0gbmlsOwotICAgIF9fYmxvY2sgQk9PTCBpbmNsdWRlVGVzdCA9
IFlFUzsKLQotICAgIE5TTXV0YWJsZUFycmF5PFRlc3RGYW1pbHkqPiogdGVzdEZhbWlsaWVzID0g
W05TTXV0YWJsZUFycmF5IG5ld107Ci0KLSAgICAvLyBTZWUgdGhlIGJvdHRvbSBvZiBUZXN0Lmpz
Ci0gICAgY29tcGlsZXJDb250ZXh0W0AicnVubmluZ0luQ29jb2FIb3N0Il0gPSBbSlNWYWx1ZSB2
YWx1ZVdpdGhCb29sOllFUyBpbkNvbnRleHQ6Y29tcGlsZXJDb250ZXh0XTsKLQotICAgIGNvbXBp
bGVyQ29udGV4dFtAImRvUHJlcCJdID0gXlRlc3RGYW1pbHkqKE5TU3RyaW5nKiBjb2RlKQotICAg
IHsKLSAgICAgICAgVGVzdEZhbWlseSogZmFtaWx5ID0gW1tUZXN0RmFtaWx5IGFsbG9jXSBpbml0
V2l0aE5hbWU6Y3VycmVudFRlc3ROYW1lIHNvdXJjZTpjb2RlXTsKLSAgICAgICAgW3Rlc3RGYW1p
bGllcyBhZGRPYmplY3Q6ZmFtaWx5XTsKLSAgICAgICAgaW5jbHVkZVRlc3QgPSBZRVM7Ci0gICAg
ICAgIHJldHVybiBmYW1pbHk7Ci0gICAgfTsKLQotICAgIGNvbXBpbGVyQ29udGV4dC5leGNlcHRp
b25IYW5kbGVyID0gXihKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWUgKmV4Y2VwdGlvbikgewot
ICAgICAgICBpbmNsdWRlVGVzdCA9IE5POwotICAgIH07Ci0gICAgLy8gRklYTUU6IEluIGxpbmUg
d2l0aCBUZXN0LmpzLCB0aGVzZSBzaG91bGQgcmFpc2Ugc29tZSBraW5kIG9mIGVycm9yIGlmIHRo
ZSB2YWx1ZSBjYW5ub3QgYmUgY2FzdCBzYWZlbHkuCi0gICAgLy8gSG93ZXZlciwgdGhlIGNvbnZl
cnNpb24gdG8gYW4gTlNOdW1iZXIgbWF5IGhhdmUgYWxyZWFkeSBsb3N0IHRoZSBwcmVjaXNpb24u
Ci0KLSAgICBjb21waWxlckNvbnRleHRbQCJtYWtlSW50Il0gPSBeVGVzdENhbGxBcmd1bWVudCoo
VGVzdEZhbWlseSogcHJvZ3JhbSwgTlNOdW1iZXIqIG51bWJlcikKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBbW1Rlc3RDYWxsQXJndW1lbnQgYWxsb2NdIGluaXRXaXRoVmFsdWU6bnVtYmVyIHR5cGU6
V0hMU0xUeXBlSW50XTsKLSAgICB9OwotCi0gICAgY29tcGlsZXJDb250ZXh0W0AibWFrZVVpbnQi
XSA9IF5UZXN0Q2FsbEFyZ3VtZW50KihUZXN0RmFtaWx5KiBwcm9ncmFtLCBOU051bWJlciogbnVt
YmVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtbVGVzdENhbGxBcmd1bWVudCBhbGxvY10gaW5p
dFdpdGhWYWx1ZTpudW1iZXIgdHlwZTpXSExTTFR5cGVVaW50XTsKLSAgICB9OwotCi0gICAgY29t
cGlsZXJDb250ZXh0W0AibWFrZVVjaGFyIl0gPSBeVGVzdENhbGxBcmd1bWVudCooVGVzdEZhbWls
eSogcHJvZ3JhbSwgTlNOdW1iZXIqIG51bWJlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBbW1Rl
c3RDYWxsQXJndW1lbnQgYWxsb2NdIGluaXRXaXRoVmFsdWU6bnVtYmVyIHR5cGU6V0hMU0xUeXBl
VWNoYXJdOwotICAgIH07Ci0KLSAgICBjb21waWxlckNvbnRleHRbQCJtYWtlQm9vbCJdID0gXlRl
c3RDYWxsQXJndW1lbnQqKFRlc3RGYW1pbHkqIHByb2dyYW0sIE5TTnVtYmVyKiBudW1iZXIpCi0g
ICAgewotICAgICAgICByZXR1cm4gW1tUZXN0Q2FsbEFyZ3VtZW50IGFsbG9jXSBpbml0V2l0aFZh
bHVlOm51bWJlciB0eXBlOldITFNMVHlwZUJvb2xdOwotICAgIH07Ci0KLSAgICBjb21waWxlckNv
bnRleHRbQCJtYWtlRmxvYXQiXSA9IF5UZXN0Q2FsbEFyZ3VtZW50KihUZXN0RmFtaWx5KiBwcm9n
cmFtLCBOU051bWJlciogbnVtYmVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtbVGVzdENhbGxB
cmd1bWVudCBhbGxvY10gaW5pdFdpdGhWYWx1ZTpudW1iZXIgdHlwZTpXSExTTFR5cGVGbG9hdF07
Ci0gICAgfTsKLQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxvZ2lj
IGFzIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBUZXN0cy5qcwotICAgIGNvbXBpbGVyQ29udGV4dFtA
Im1ha2VDYXN0ZWRGbG9hdCJdID0gXlRlc3RDYWxsQXJndW1lbnQqKFRlc3RGYW1pbHkqIHByb2dy
YW0sIE5TTnVtYmVyKiBudW1iZXIpCi0gICAgewotICAgICAgICByZXR1cm4gW1tUZXN0Q2FsbEFy
Z3VtZW50IGFsbG9jXSBpbml0V2l0aFZhbHVlOm51bWJlciB0eXBlOldITFNMVHlwZUZsb2F0XTsK
LSAgICB9OwotCi0gICAgY29tcGlsZXJDb250ZXh0W0AibWFrZUhhbGYiXSA9IF5UZXN0Q2FsbEFy
Z3VtZW50KihUZXN0RmFtaWx5KiBwcm9ncmFtLCBOU051bWJlciogbnVtYmVyKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIFtbVGVzdENhbGxBcmd1bWVudCBhbGxvY10gaW5pdFdpdGhWYWx1ZTpudW1i
ZXIgdHlwZTpXSExTTFR5cGVIYWxmXTsKLSAgICB9OwotCi0gICAgY29tcGlsZXJDb250ZXh0W0Ai
Y2FsbEZ1bmN0aW9uIl0gPSBeVGVzdERlc2NyaXB0aW9uKihUZXN0RmFtaWx5KiBwcm9ncmFtLCBO
U1N0cmluZyogZnVuY3Rpb25OYW1lLCBOU0FycmF5KiBhcmdzKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIFtbVGVzdERlc2NyaXB0aW9uIGFsbG9jXSBpbml0V2l0aEZ1bmN0aW9uTmFtZTpmdW5jdGlv
bk5hbWUgYXJndW1lbnRzOmFyZ3NdOwotICAgIH07Ci0KLSAgICB2b2lkKF5hZGRUZXN0KShUZXN0
RmFtaWx5KiwgVGVzdERlc2NyaXB0aW9uKiwgTlNOdW1iZXIqLCBXSExTTFR5cGUpID0gXnZvaWQo
VGVzdEZhbWlseSogcHJvZ3JhbSwgVGVzdERlc2NyaXB0aW9uKiB0ZXN0RGVzYywgTlNOdW1iZXIq
IGV4cGVjdGF0aW9uLCBXSExTTFR5cGUgdHlwZSkKLSAgICB7Ci0gICAgICAgIGlmIChpbmNsdWRl
VGVzdCkgewotICAgICAgICAgICAgdGVzdERlc2MucmV0dXJuVHlwZSA9IHR5cGU7Ci0gICAgICAg
ICAgICB0ZXN0RGVzYy5leHBlY3RhdGlvbiA9IGV4cGVjdGF0aW9uOwotICAgICAgICAgICAgW3By
b2dyYW0gYWRkVGVzdERlc2NyaXB0aW9uOnRlc3REZXNjXTsKLSAgICAgICAgfQotICAgIH07Ci0K
LSAgICBjb21waWxlckNvbnRleHRbQCJjaGVja0ludCJdID0gXnZvaWQoVGVzdEZhbWlseSogcHJv
Z3JhbSwgVGVzdERlc2NyaXB0aW9uKiB0ZXN0RGVzYywgTlNOdW1iZXIqIGV4cGVjdGF0aW9uKQot
ICAgIHsKLSAgICAgICAgYWRkVGVzdChwcm9ncmFtLCB0ZXN0RGVzYywgZXhwZWN0YXRpb24sIFdI
TFNMVHlwZUludCk7Ci0gICAgfTsKLQotICAgIGNvbXBpbGVyQ29udGV4dFtAImNoZWNrVWludCJd
ID0gXnZvaWQoVGVzdEZhbWlseSogcHJvZ3JhbSwgVGVzdERlc2NyaXB0aW9uKiB0ZXN0RGVzYywg
TlNOdW1iZXIqIGV4cGVjdGF0aW9uKQotICAgIHsKLSAgICAgICAgYWRkVGVzdChwcm9ncmFtLCB0
ZXN0RGVzYywgZXhwZWN0YXRpb24sIFdITFNMVHlwZVVpbnQpOwotICAgIH07Ci0KLSAgICBjb21w
aWxlckNvbnRleHRbQCJjaGVja0hhbGYiXSA9IF52b2lkKFRlc3RGYW1pbHkqIHByb2dyYW0sIFRl
c3REZXNjcmlwdGlvbiogdGVzdERlc2MsIE5TTnVtYmVyKiBleHBlY3RhdGlvbikKLSAgICB7Ci0g
ICAgICAgIGFkZFRlc3QocHJvZ3JhbSwgdGVzdERlc2MsIGV4cGVjdGF0aW9uLCBXSExTTFR5cGVI
YWxmKTsKLSAgICB9OwotCi0gICAgY29tcGlsZXJDb250ZXh0W0AiY2hlY2tGbG9hdCJdID0gXnZv
aWQoVGVzdEZhbWlseSogcHJvZ3JhbSwgVGVzdERlc2NyaXB0aW9uKiB0ZXN0RGVzYywgTlNOdW1i
ZXIqIGV4cGVjdGF0aW9uKQotICAgIHsKLSAgICAgICAgYWRkVGVzdChwcm9ncmFtLCB0ZXN0RGVz
YywgZXhwZWN0YXRpb24sIFdITFNMVHlwZUZsb2F0KTsKLSAgICB9OwotCi0gICAgY29tcGlsZXJD
b250ZXh0W0AiY2hlY2tCb29sIl0gPSBedm9pZChUZXN0RmFtaWx5KiBwcm9ncmFtLCBUZXN0RGVz
Y3JpcHRpb24qIHRlc3REZXNjLCBOU051bWJlciogZXhwZWN0YXRpb24pCi0gICAgewotICAgICAg
ICBhZGRUZXN0KHByb2dyYW0sIHRlc3REZXNjLCBleHBlY3RhdGlvbiwgV0hMU0xUeXBlQm9vbCk7
Ci0gICAgfTsKLQotICAgIGNvbXBpbGVyQ29udGV4dFtAImNoZWNrVWNoYXIiXSA9IF52b2lkKFRl
c3RGYW1pbHkqIHByb2dyYW0sIFRlc3REZXNjcmlwdGlvbiogdGVzdERlc2MsIE5TTnVtYmVyKiBl
eHBlY3RhdGlvbikKLSAgICB7Ci0gICAgICAgIGFkZFRlc3QocHJvZ3JhbSwgdGVzdERlc2MsIGV4
cGVjdGF0aW9uLCBXSExTTFR5cGVVY2hhcik7Ci0gICAgfTsKLQotICAgIC8vIERlbGliZXJhdGVs
eSBub3QgaW5jbHVkZWQKLSAgICBjb21waWxlckNvbnRleHRbQCJjaGVja0VudW0iXSA9IF52b2lk
KFRlc3RGYW1pbHkqIHByb2dyYW0sIFRlc3REZXNjcmlwdGlvbiogdGVzdERlc2MsIE5TTnVtYmVy
KiBleHBlY3RhdGlvbikgeyB9OwotICAgIGNvbXBpbGVyQ29udGV4dFtAImNoZWNrRmxvYXQ0Il0g
PSBedm9pZChUZXN0RmFtaWx5KiBwcm9ncmFtLCBUZXN0RGVzY3JpcHRpb24qIHRlc3REZXNjLCBO
U051bWJlciogZXhwZWN0YXRpb24pIHsgfTsKLSAgICBjb21waWxlckNvbnRleHRbQCJjaGVja0Zh
aWwiXSA9IF52b2lkKGlkIGNhbGxiYWNrLCBpZCBlcnJvckNhbGxiYWNrKSB7IH07Ci0gICAgY29t
cGlsZXJDb250ZXh0W0AiY2hlY2tMZXhlclRva2VuIl0gPSBedm9pZChOU1N0cmluZyogdG9rZW4s
IE5TTnVtYmVyKiBpZCwgTlNTdHJpbmcqIG5hbWUsIE5TU3RyaW5nKiB0b2tlblRleHQpIHsgfTsK
LQotICAgIEpTVmFsdWUqIHRlc3RzID0gW2NvbXBpbGVyQ29udGV4dCBldmFsdWF0ZVNjcmlwdDpA
InRlc3RzIl07Ci0KLSAgICBOU0FycmF5PE5TU3RyaW5nKj4qIHRlc3ROYW1lcyA9IFt0ZXN0cy50
b0RpY3Rpb25hcnkuYWxsS2V5cyBzb3J0ZWRBcnJheVVzaW5nU2VsZWN0b3I6QHNlbGVjdG9yKGxv
Y2FsaXplZENhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6KV07Ci0KLSAgICBmb3IgKGN1cnJlbnRUZXN0
TmFtZSBpbiB0ZXN0TmFtZXMpIHsKLSAgICAgICAgSlNWYWx1ZSogZnVuYyA9IFt0ZXN0cyBvYmpl
Y3RGb3JLZXllZFN1YnNjcmlwdDpjdXJyZW50VGVzdE5hbWVdOwotICAgICAgICBbZnVuYyBjYWxs
V2l0aEFyZ3VtZW50czpAW11dOwotICAgIH0KLQotICAgIHJldHVybiB0ZXN0RmFtaWxpZXM7Ci19
Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseVJ1bm5lci5oIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5UnVubmVyLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NWJiMjAxM2IxLi4wMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rl
c3RGYW1pbHlSdW5uZXIuaAkKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+Ci0jaW1wb3J0ICJUZXN0RmFtaWx5LmgiCi0KLU5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCi0KLUBpbnRlcmZhY2UgVGVzdEZhbWlseVJ1bm5lciA6IE5TT2JqZWN0Ci0KLS0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFRlc3RGYW1pbHk6KFRlc3RGYW1pbHkqKXRlc3RGYW1pbHk7
Ci0KLUBwcm9wZXJ0eSAocmVhZG9ubHkpIFRlc3RGYW1pbHkqIHRlc3RGYW1pbHk7Ci0KLS0gKEJP
T0wpZXhlY3V0ZUFsbFRlc3RzOwotCi0rIChOU1VJbnRlZ2VyKWV4ZWN1dGlvbkNvdW50OwotCi1A
ZW5kCi0KLU5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5UnVubmVyLm0g
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rl
c3RGYW1pbHlSdW5uZXIubQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE3ZTJiMWQw
ZTIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseVJ1bm5lci5tCQorKysgL2Rldi9udWxsCkBAIC0x
LDE5MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2ltcG9ydCAiVGVzdEZhbWlseVJ1bm5lci5oIgotCi0jaW1wb3J0ICJDb21waWxlci5oIgot
I2ltcG9ydCAiT2Zmc2NyZWVuUmVuZGVyZXIuaCIKLQotc3RhdGljIE5TVUludGVnZXIgZXhlY3V0
aW9uQ291bnQgPSAwOwotCi1AaW50ZXJmYWNlIFRlc3RGYW1pbHlSdW5uZXIgKCkKLQotQHByb3Bl
cnR5IFRlc3RGYW1pbHkqIHRlc3RGYW1pbHk7Ci0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFRl
c3RGYW1pbHlSdW5uZXIKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVGVzdEZhbWlseTooVGVz
dEZhbWlseSAqKXRlc3RGYW1pbHkKLXsKLSAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkKLSAg
ICAgICAgc2VsZi50ZXN0RmFtaWx5ID0gdGVzdEZhbWlseTsKLSAgICByZXR1cm4gc2VsZjsKLX0K
LQotKyAoaWQ8TVRMRGV2aWNlPilkZWZhdWx0VGVzdGluZ0RldmljZQotewotICAgIE5TQXJyYXk8
aWQ8TVRMRGV2aWNlPj4qIGFsbERldmljZXMgPSBNVExDb3B5QWxsRGV2aWNlcygpOwotICAgIGZv
ciAoaWQ8TVRMRGV2aWNlPiBkZXZpY2UgaW4gYWxsRGV2aWNlcykgewotICAgICAgICBpZiAoZGV2
aWNlLmlzTG93UG93ZXIpCi0gICAgICAgICAgICByZXR1cm4gZGV2aWNlOwotICAgIH0KLSAgICBy
ZXR1cm4gTVRMQ3JlYXRlU3lzdGVtRGVmYXVsdERldmljZSgpOwotfQotCi0rIChPZmZzY3JlZW5S
ZW5kZXJlciopaW50T2Zmc2NyZWVuUmVuZGVyZXIKLXsKLSAgICBzdGF0aWMgT2Zmc2NyZWVuUmVu
ZGVyZXIqIG9mZnNjcmVlblJlbmRlcmVyOwotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25j
ZVRva2VuOwotICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgb2Zmc2Ny
ZWVuUmVuZGVyZXIgPSBbW09mZnNjcmVlblJlbmRlcmVyIGFsbG9jXSBpbml0V2l0aERldmljZTpb
VGVzdEZhbWlseVJ1bm5lciBkZWZhdWx0VGVzdGluZ0RldmljZV1dOwotICAgICAgICBbb2Zmc2Ny
ZWVuUmVuZGVyZXIgc2V0T3V0cHV0UGl4ZWxGb3JtYXQ6TVRMUGl4ZWxGb3JtYXRSMzJTaW50XTsK
LSAgICAgICAgW29mZnNjcmVlblJlbmRlcmVyIHNldFRhcmdldFdpZHRoOjEgc2V0VGFyZ2V0SGVp
Z2h0OjFdOwotICAgIH0pOwotICAgIHJldHVybiBvZmZzY3JlZW5SZW5kZXJlcjsKLX0KLQotKyAo
T2Zmc2NyZWVuUmVuZGVyZXIqKXVpbnRPZmZzY3JlZW5SZW5kZXJlcgotewotICAgIHN0YXRpYyBP
ZmZzY3JlZW5SZW5kZXJlciogb2Zmc2NyZWVuUmVuZGVyZXI7Ci0gICAgc3RhdGljIGRpc3BhdGNo
X29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAg
ICAgICBvZmZzY3JlZW5SZW5kZXJlciA9IFtbT2Zmc2NyZWVuUmVuZGVyZXIgYWxsb2NdIGluaXRX
aXRoRGV2aWNlOltUZXN0RmFtaWx5UnVubmVyIGRlZmF1bHRUZXN0aW5nRGV2aWNlXV07Ci0gICAg
ICAgIFtvZmZzY3JlZW5SZW5kZXJlciBzZXRPdXRwdXRQaXhlbEZvcm1hdDpNVExQaXhlbEZvcm1h
dFIzMlVpbnRdOwotICAgICAgICBbb2Zmc2NyZWVuUmVuZGVyZXIgc2V0VGFyZ2V0V2lkdGg6MSBz
ZXRUYXJnZXRIZWlnaHQ6MV07Ci0gICAgfSk7Ci0gICAgcmV0dXJuIG9mZnNjcmVlblJlbmRlcmVy
OwotfQotCi0rIChPZmZzY3JlZW5SZW5kZXJlciopZmxvYXRPZmZzY3JlZW5SZW5kZXJlcgotewot
ICAgIHN0YXRpYyBPZmZzY3JlZW5SZW5kZXJlciogb2Zmc2NyZWVuUmVuZGVyZXI7Ci0gICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRv
a2VuLCBeewotICAgICAgICBvZmZzY3JlZW5SZW5kZXJlciA9IFtbT2Zmc2NyZWVuUmVuZGVyZXIg
YWxsb2NdIGluaXRXaXRoRGV2aWNlOltUZXN0RmFtaWx5UnVubmVyIGRlZmF1bHRUZXN0aW5nRGV2
aWNlXV07Ci0gICAgICAgIFtvZmZzY3JlZW5SZW5kZXJlciBzZXRPdXRwdXRQaXhlbEZvcm1hdDpN
VExQaXhlbEZvcm1hdFIzMkZsb2F0XTsKLSAgICAgICAgW29mZnNjcmVlblJlbmRlcmVyIHNldFRh
cmdldFdpZHRoOjEgc2V0VGFyZ2V0SGVpZ2h0OjFdOwotICAgIH0pOwotICAgIHJldHVybiBvZmZz
Y3JlZW5SZW5kZXJlcjsKLX0KLQotKyAoQ29tcGlsZXIqKWNvbXBpbGVyCi17Ci0gICAgc3RhdGlj
IENvbXBpbGVyKiBjb21waWxlcjsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tl
bjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIGNvbXBpbGVyID0g
W0NvbXBpbGVyIG5ld107Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGNvbXBpbGVyOwotfQotCi0tIChC
T09MKWV4ZWN1dGVBbGxUZXN0cwotewotICAgIGlmICghc2VsZi50ZXN0RmFtaWx5LnRvdGFsVGVz
dENhc2VDb3VudCkKLSAgICAgICAgcmV0dXJuIFlFUzsKLQotICAgIE5TU3RyaW5nKiB3aGxzbFNv
dXJjZSA9IHNlbGYudGVzdEZhbWlseS53aGxzbFNvdXJjZTsKLSAgICBOU0Vycm9yKiB3aGxzbENv
bXBpbGVFcnJvciA9IG5pbDsKLSAgICBDb21waWxlUmVzdWx0KiByZXN1bHQgPSBbW1Rlc3RGYW1p
bHlSdW5uZXIgY29tcGlsZXJdIGNvbXBpbGVXaGxzbFRvTWV0YWw6d2hsc2xTb3VyY2UgZXJyb3I6
JndobHNsQ29tcGlsZUVycm9yXTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBOU0xvZyhA
IlslQF06IFdITFNMIENvbXBpbGUgRXJyb3I6ICVAIiwgc2VsZi50ZXN0RmFtaWx5Lm5hbWUsIHdo
bHNsQ29tcGlsZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTsKLSAgICAgICAgcmV0dXJuIE5P
OwotICAgIH0KLQotICAgIE5TTG9nKEAiQ29tcGlsZWQgV0hMU0wiKTsKLQotICAgIE5TTXV0YWJs
ZVN0cmluZyogbXNsU3RyaW5nID0gW05TTXV0YWJsZVN0cmluZyBuZXddOwotICAgIFttc2xTdHJp
bmcgYXBwZW5kU3RyaW5nOnJlc3VsdC5zb3VyY2VdOwotICAgIFttc2xTdHJpbmcgYXBwZW5kU3Ry
aW5nOkAiXG4iXTsKLSAgICBbbXNsU3RyaW5nIGFwcGVuZFN0cmluZzpbVGVzdEZhbWlseSBzaGFy
ZWRNZXRhbFNvdXJjZV1dOwotICAgIFttc2xTdHJpbmcgYXBwZW5kU3RyaW5nOltzZWxmLnRlc3RG
YW1pbHkgbWV0YWxTb3VyY2VGb3JDYWxsaW5nRnVuY3Rpb25zV2l0aENvbXBpbGVkTmFtZXM6cmVz
dWx0LmZ1bmN0aW9uTmFtZU1hcF1dOwotCi0gICAgaWQ8TVRMRGV2aWNlPiBkZXZpY2UgPSBNVExD
cmVhdGVTeXN0ZW1EZWZhdWx0RGV2aWNlKCk7Ci0gICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0g
ICAgaWQ8TVRMTGlicmFyeT4gbGlicmFyeSA9IFtkZXZpY2UgbmV3TGlicmFyeVdpdGhTb3VyY2U6
bXNsU3RyaW5nIG9wdGlvbnM6bmlsIGVycm9yOiZlcnJvcl07Ci0gICAgaWYgKCFsaWJyYXJ5KSB7
Ci0gICAgICAgIE5TTG9nKEAiW0xpYnJhcnldOiAlQCIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKTsKLSAgICAgICAgcmV0dXJuIE5POwotICAgIH0KLQotICAgIGlmIChlcnJvcikKLSAgICAg
ICAgTlNMb2coQCJbTGlicmFyeSBjb21waWxlZCB3aXRoIHdhcm5pbmdzXTogJUAiLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbik7Ci0gICAgTlNMb2coQCJDb21waWxlZCBtZXRhbCIpOwotCi0g
ICAgQk9PTCBzdGF0dXMgPSBZRVM7Ci0KLSAgICBOU1N0cmluZyAqdmVydGV4U2hhZGVyTmFtZSA9
IEAidmVydGV4U2hhZGVyIjsKLQotICAgIE9mZnNjcmVlblJlbmRlcmVyICppbnRSZW5kZXJlciA9
IFtUZXN0RmFtaWx5UnVubmVyIGludE9mZnNjcmVlblJlbmRlcmVyXTsKLSAgICBmb3IgKFRlc3RE
ZXNjcmlwdGlvbiogdGVzdCBpbiBzZWxmLnRlc3RGYW1pbHkuaW50ZWdlclRlc3RzKSB7Ci0gICAg
ICAgIFtpbnRSZW5kZXJlciBzZXRMaWJyYXJ5OmxpYnJhcnkgdmVydGV4U2hhZGVyTmFtZTp2ZXJ0
ZXhTaGFkZXJOYW1lIGZyYWdtZW50U2hhZGVyTmFtZTp0ZXN0LmZyYWdtZW50U2hhZGVyTmFtZV07
Ci0gICAgICAgIFtpbnRSZW5kZXJlciBkcmF3XTsKLQotICAgICAgICBpbnQgcmVzdWx0ID0gaW50
UmVuZGVyZXIuaW50VmFsdWU7Ci0gICAgICAgIGlmIChyZXN1bHQgIT0gdGVzdC5leHBlY3RhdGlv
bi5pbnRWYWx1ZSkgewotICAgICAgICAgICAgTlNMb2coQCIlQCA9ICVkLCBzaG91bGQgYmUgJWQi
LCB0ZXN0LCByZXN1bHQsIHRlc3QuZXhwZWN0YXRpb24uaW50VmFsdWUpOwotICAgICAgICAgICAg
c3RhdHVzID0gTk87Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgTlNMb2coQCIlQCA9ICVk
IiwgdGVzdCwgcmVzdWx0KTsKLSAgICAgICAgZXhlY3V0aW9uQ291bnQrKzsKLSAgICB9Ci0KLSAg
ICBPZmZzY3JlZW5SZW5kZXJlciAqdWludFJlbmRlcmVyID0gW1Rlc3RGYW1pbHlSdW5uZXIgdWlu
dE9mZnNjcmVlblJlbmRlcmVyXTsKLSAgICBmb3IgKFRlc3REZXNjcmlwdGlvbiogdGVzdCBpbiBz
ZWxmLnRlc3RGYW1pbHkudW5zaWduZWRJbnRlZ2VyVGVzdHMpIHsKLSAgICAgICAgW3VpbnRSZW5k
ZXJlciBzZXRMaWJyYXJ5OmxpYnJhcnkgdmVydGV4U2hhZGVyTmFtZTp2ZXJ0ZXhTaGFkZXJOYW1l
IGZyYWdtZW50U2hhZGVyTmFtZTp0ZXN0LmZyYWdtZW50U2hhZGVyTmFtZV07Ci0gICAgICAgIFt1
aW50UmVuZGVyZXIgZHJhd107Ci0KLSAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gdWludFJlbmRl
cmVyLnVpbnRWYWx1ZTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPSB0ZXN0LmV4cGVjdGF0aW9uLnVu
c2lnbmVkSW50VmFsdWUpIHsKLSAgICAgICAgICAgIE5TTG9nKEAiJUAgPSAldSwgc2hvdWxkIGJl
ICV1IiwgdGVzdCwgcmVzdWx0LCB0ZXN0LmV4cGVjdGF0aW9uLnVuc2lnbmVkSW50VmFsdWUpOwot
ICAgICAgICAgICAgc3RhdHVzID0gTk87Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgTlNM
b2coQCIlQCA9ICV1IiwgdGVzdCwgcmVzdWx0KTsKLSAgICAgICAgZXhlY3V0aW9uQ291bnQrKzsK
LSAgICB9Ci0KLSAgICBPZmZzY3JlZW5SZW5kZXJlciAqZmxvYXRSZW5kZXJlciA9IFtUZXN0RmFt
aWx5UnVubmVyIGZsb2F0T2Zmc2NyZWVuUmVuZGVyZXJdOwotICAgIGZvciAoVGVzdERlc2NyaXB0
aW9uKiB0ZXN0IGluIHNlbGYudGVzdEZhbWlseS5mbG9hdFRlc3RzKSB7Ci0gICAgICAgIFtmbG9h
dFJlbmRlcmVyIHNldExpYnJhcnk6bGlicmFyeSB2ZXJ0ZXhTaGFkZXJOYW1lOnZlcnRleFNoYWRl
ck5hbWUgZnJhZ21lbnRTaGFkZXJOYW1lOnRlc3QuZnJhZ21lbnRTaGFkZXJOYW1lXTsKLSAgICAg
ICAgW2Zsb2F0UmVuZGVyZXIgZHJhd107Ci0KLSAgICAgICAgZmxvYXQgcmVzdWx0ID0gZmxvYXRS
ZW5kZXJlci5mbG9hdFZhbHVlOwotICAgICAgICBpZiAocmVzdWx0ICE9IHRlc3QuZXhwZWN0YXRp
b24uZmxvYXRWYWx1ZSkgewotICAgICAgICAgICAgTlNMb2coQCIlQCA9ICVmLCBzaG91bGQgYmUg
JWYiLCB0ZXN0LCByZXN1bHQsIHRlc3QuZXhwZWN0YXRpb24uZmxvYXRWYWx1ZSk7Ci0gICAgICAg
ICAgICBzdGF0dXMgPSBOTzsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBOU0xvZyhAIiVA
ID0gJWYiLCB0ZXN0LCByZXN1bHQpOwotICAgICAgICBleGVjdXRpb25Db3VudCsrOwotICAgIH0K
LQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLSsgKE5TVUludGVnZXIpZXhlY3V0aW9uQ291bnQK
LXsKLSAgICByZXR1cm4gZXhlY3V0aW9uQ291bnQ7Ci19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVmlld0Nv
bnRyb2xsZXIuaCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRl
c3RzL0NvcmUvVmlld0NvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTBlNjM2MzQ3MjEuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVmlld0NvbnRyb2xsZXIuaAkKKysrIC9kZXYvbnVs
bApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KLSNpbXBvcnQgPE1ldGFsS2l0L01ldGFs
S2l0Lmg+Ci0KLSNpbXBvcnQgIkNvbXBpbGVyLmgiCi0jaW1wb3J0ICJDdXN0b21NZXRhbFZpZXcu
aCIKLQotQGludGVyZmFjZSBWaWV3Q29udHJvbGxlciA6IE5TVmlld0NvbnRyb2xsZXI8TlNHZXN0
dXJlUmVjb2duaXplckRlbGVnYXRlLCBDdXN0b21NZXRhbFZpZXdEZWxlZ2F0ZT4KLQotQHByb3Bl
cnR5ICh1bnNhZmVfdW5yZXRhaW5lZCkgSUJPdXRsZXQgTlNUZXh0VmlldyAqd2hsc2xUZXh0Vmll
dzsKLUBwcm9wZXJ0eSAodW5zYWZlX3VucmV0YWluZWQpIElCT3V0bGV0IE5TVGV4dFZpZXcgKm1z
bFRleHRWaWV3OwotQHByb3BlcnR5ICh3ZWFrKSBJQk91dGxldCBDdXN0b21NZXRhbFZpZXcgKm1l
dGFsVmlldzsKLQotQHByb3BlcnR5IENvbXBpbGVyICpjb21waWxlcjsKLQotQGVuZAotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9D
b3JlL1ZpZXdDb250cm9sbGVyLm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1ZpZXdDb250cm9sbGVyLm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVmNTY0YmZjN2ExLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1ZpZXdDb250cm9sbGVyLm0JCisr
KyAvZGV2L251bGwKQEAgLTEsMjEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJWaWV3Q29udHJvbGxlci5oIgotI2ltcG9ydCAi
T25zY3JlZW5SZW5kZXJlci5oIgotCi1AaW50ZXJmYWNlIFZpZXdDb250cm9sbGVyICgpCi0KLUBw
cm9wZXJ0eSBPbnNjcmVlblJlbmRlcmVyICpyZW5kZXJlcjsKLUBwcm9wZXJ0eSBOU01hZ25pZmlj
YXRpb25HZXN0dXJlUmVjb2duaXplciAqbWFnbmlmeUdlc3R1cmU7Ci1AcHJvcGVydHkgTlNSb3Rh
dGlvbkdlc3R1cmVSZWNvZ25pemVyICpyb3RhdGlvbkdlc3R1cmU7Ci1AcHJvcGVydHkgKHdlYWsp
IElCT3V0bGV0IE5TVGV4dEZpZWxkICpkZWJ1Z0xhYmVsOwotQHByb3BlcnR5ICh3ZWFrKSBJQk91
dGxldCBOU1Njcm9sbFZpZXcgKndobHNsVmlld0NvbnRhaW5lcjsKLUBwcm9wZXJ0eSAod2Vhaykg
SUJPdXRsZXQgTlNTY3JvbGxWaWV3ICptc2xWaWV3Q29udGFpbmVyOwotQHByb3BlcnR5IGlkPE1U
TExpYnJhcnk+IGxpYnJhcnk7Ci0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFZpZXdDb250cm9s
bGVyCi0KLS0gKHZvaWQpdmlld0RpZExvYWQgewotICAgIFtzdXBlciB2aWV3RGlkTG9hZF07Ci0K
LSAgICBbc2VsZiBsb2FkRmlsZTpAIkRlZmF1bHQiXTsKLQotICAgIHNlbGYuY29tcGlsZXIgPSBb
W0NvbXBpbGVyIGFsbG9jXSBpbml0XTsKLQotICAgIHNlbGYubWV0YWxWaWV3LmRldmljZSA9IE1U
TENyZWF0ZVN5c3RlbURlZmF1bHREZXZpY2UoKTsKLSAgICBzZWxmLnJlbmRlcmVyID0gW1tPbnNj
cmVlblJlbmRlcmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6c2VsZi5tZXRhbFZpZXcgZGV2aWNlOnNl
bGYubWV0YWxWaWV3LmRldmljZV07Ci0KLSAgICBzZWxmLm1hZ25pZnlHZXN0dXJlID0gW1tOU01h
Z25pZmljYXRpb25HZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBh
Y3Rpb246QHNlbGVjdG9yKHpvb206KV07Ci0gICAgc2VsZi5tYWduaWZ5R2VzdHVyZS5kZWxlZ2F0
ZSA9IHNlbGY7Ci0gICAgW3NlbGYubWV0YWxWaWV3IGFkZEdlc3R1cmVSZWNvZ25pemVyOnNlbGYu
bWFnbmlmeUdlc3R1cmVdOwotCi0gICAgc2VsZi5yb3RhdGlvbkdlc3R1cmUgPSBbW05TUm90YXRp
b25HZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNl
bGVjdG9yKHJvdGF0ZTopXTsKLSAgICBzZWxmLnJvdGF0aW9uR2VzdHVyZS5kZWxlZ2F0ZSA9IHNl
bGY7Ci0gICAgW3NlbGYubWV0YWxWaWV3IGFkZEdlc3R1cmVSZWNvZ25pemVyOnNlbGYucm90YXRp
b25HZXN0dXJlXTsKLQotICAgIHNlbGYubWV0YWxWaWV3LnNjcm9sbERlbGVnYXRlID0gc2VsZjsK
LQotICAgIFtzZWxmIHZpZXdEaWRMYXlvdXRdOwotCi0gICAgc2VsZi5saWJyYXJ5ID0gW3NlbGYu
cmVuZGVyZXIuZGV2aWNlIG5ld0RlZmF1bHRMaWJyYXJ5V2l0aEJ1bmRsZTpbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gZXJyb3I6bmlsXTsKLX0KLQotLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooTlNH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlY29nbml6ZVNpbXVs
dGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOihub25udWxsIE5TR2VzdHVyZVJlY29nbml6
ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyCi17Ci0gICAgcmV0dXJuIFlFUzsKLX0KLQotLSAo
dm9pZCl2aWV3RGlkTGF5b3V0Ci17Ci0gICAgW3N1cGVyIHZpZXdEaWRMYXlvdXRdOwotCi0gICAg
Q0dGbG9hdCB3aWR0aCA9IENHUmVjdEdldFdpZHRoKHNlbGYudmlldy5mcmFtZSk7Ci0gICAgQ0dG
bG9hdCBib3hXaWR0aCA9ICh3aWR0aCAtIDIwICogMiAtIDEwICogMikgLyAzOwotICAgIENHRmxv
YXQgaGVpZ2h0ID0gQ0dSZWN0R2V0SGVpZ2h0KHNlbGYudmlldy5mcmFtZSk7Ci0gICAgQ0dGbG9h
dCBib3hIZWlnaHQgPSBoZWlnaHQgLSA2MCAtIDIwOwotCi0gICAgc2VsZi53aGxzbFZpZXdDb250
YWluZXIuZnJhbWUgPSBDR1JlY3RNYWtlKDIwLCA2MCwgYm94V2lkdGgsIGJveEhlaWdodCk7Ci0g
ICAgc2VsZi5tc2xWaWV3Q29udGFpbmVyLmZyYW1lID0gQ0dSZWN0TWFrZSgyMCArIGJveFdpZHRo
ICsgMTAsIDYwLCBib3hXaWR0aCwgYm94SGVpZ2h0KTsKLSAgICBzZWxmLm1ldGFsVmlldy5mcmFt
ZSA9IENHUmVjdE1ha2UoMjAgKyBib3hXaWR0aCArIDEwICsgYm94V2lkdGggKyAxMCwgNjAsIGJv
eFdpZHRoLCBib3hIZWlnaHQpOwotCi0gICAgZmxvYXQgcmF0aW8gPSBib3hIZWlnaHQgLyAoYm94
V2lkdGggLyAzKTsKLSAgICAvLyBOT1RFOiBzaW1kX21hdHJpeCB0YWtlcyBjb2x1bW5zLCBub3Qg
cm93cyEKLSAgICBzZWxmLnJlbmRlcmVyLnRyYW5zZm9ybU1hdHJpeCA9IHNpbWRfbWF0cml4KHNp
bWRfbWFrZV9mbG9hdDMoMywgMCwgMCksIHNpbWRfbWFrZV9mbG9hdDMoMCwgIHJhdGlvLCAwKSwg
c2ltZF9tYWtlX2Zsb2F0MygtMi4yLCAtcmF0aW8gLyAyLCAxKSk7Ci0KLSAgICBzZWxmLmRlYnVn
TGFiZWwuc3RyaW5nVmFsdWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIldpZHRoID0g
JWYsIGhlaWdodCA9ICVmIiwgYm94V2lkdGgsIGJveEhlaWdodF07Ci19Ci0KLS0gKElCQWN0aW9u
KXJlc2V0Vmlld3BvcnQ6KGlkKXNlbmRlcgotewotICAgIFtzZWxmIHZpZXdEaWRMYXlvdXRdOwot
ICAgIFtzZWxmLm1ldGFsVmlldyBzZXROZWVkc0Rpc3BsYXk6WUVTXTsKLX0KLQotLSAoSUJBY3Rp
b24pbG9hZERlZmF1bHQ6KGlkKXNlbmRlcgotewotICAgIFtzZWxmIGxvYWRGaWxlOkAiRGVmYXVs
dCJdOwotfQotCi0tIChJQkFjdGlvbilsb2FkTWFuZGVsYnJvdDooaWQpc2VuZGVyCi17Ci0gICAg
W3NlbGYgbG9hZEZpbGU6QCJNYW5kZWxicm90Il07Ci19Ci0KLS0gKElCQWN0aW9uKWxvYWRKdWxp
YTooaWQpc2VuZGVyCi17Ci0gICAgW3NlbGYgbG9hZEZpbGU6QCJKdWxpYSJdOwotfQotCi0tICh2
b2lkKWxvYWRGaWxlOihOU1N0cmluZyopbmFtZQotewotICAgIE5TU3RyaW5nKiBkZWZhdWx0Rmls
ZVBhdGggPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIHBhdGhGb3JSZXNvdXJjZTpuYW1lIG9mVHlw
ZTpAIndobHNsIl07Ci0gICAgTlNTdHJpbmcqIGRlZmF1bHRDb250ZW50cyA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoQ29udGVudHNPZkZpbGU6ZGVmYXVsdEZpbGVQYXRoIGVuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nIGVycm9yOm5pbF07Ci0KLSAgICAvLyBEbyBhbnkgYWRkaXRpb25hbCBzZXR1
cCBhZnRlciBsb2FkaW5nIHRoZSB2aWV3LgotICAgIHNlbGYud2hsc2xUZXh0Vmlldy5zdHJpbmcg
PSBkZWZhdWx0Q29udGVudHM7Ci0gICAgc2VsZi5tc2xUZXh0Vmlldy5zdHJpbmcgPSBAIiI7Ci0g
ICAgc2VsZi5tZXRhbFZpZXcuaGlkZGVuID0gWUVTOwotfQotCi0tIChJQkFjdGlvbiljb21waWxl
Q2xpY2tlZDooaWQpc2VuZGVyIHsKLSAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKLSAgICBDb21w
aWxlUmVzdWx0ICpvdXRwdXQgPSBbc2VsZi5jb21waWxlciBjb21waWxlV2hsc2xUb01ldGFsOnNl
bGYud2hsc2xUZXh0Vmlldy5zdHJpbmcgZXJyb3I6JmVycm9yXTsKLSAgICBpZiAoZXJyb3IpCi0g
ICAgICAgIHNlbGYubXNsVGV4dFZpZXcuc3RyaW5nID0gZXJyb3IubG9jYWxpemVkRGVzY3JpcHRp
b247Ci0gICAgZWxzZSB7Ci0gICAgICAgIHNlbGYubWV0YWxWaWV3LmhpZGRlbiA9IE5POwotICAg
ICAgICBzZWxmLm1zbFRleHRWaWV3LnN0cmluZyA9IG91dHB1dC5zb3VyY2U7Ci0gICAgICAgIE5T
U3RyaW5nICp2ZXJ0ZXhTaGFkZXJOYW1lID0gb3V0cHV0LmZ1bmN0aW9uTmFtZU1hcFtAInZlcnRl
eFNoYWRlciJdOwotICAgICAgICBOU1N0cmluZyAqZnJhZ21lbnRTaGFkZXJOYW1lID0gb3V0cHV0
LmZ1bmN0aW9uTmFtZU1hcFtAImZyYWdtZW50U2hhZGVyIl07Ci0gICAgICAgIFtzZWxmIHZpZXdE
aWRMYXlvdXRdOwotICAgICAgICBbc2VsZi5yZW5kZXJlciBzZXRTaGFkZXJTb3VyY2U6b3V0cHV0
LnNvdXJjZSB2ZXJ0ZXhTaGFkZXJOYW1lOnZlcnRleFNoYWRlck5hbWUgZnJhZ21lbnRTaGFkZXJO
YW1lOmZyYWdtZW50U2hhZGVyTmFtZV07Ci0gICAgICAgIFtzZWxmLm1ldGFsVmlldyBzZXROZWVk
c0Rpc3BsYXk6WUVTXTsKLSAgICB9Ci0gICAgc2VsZi5tc2xUZXh0Vmlldy5mb250ID0gW05TRm9u
dCBmb250V2l0aE5hbWU6QCJNZW5sbyIgc2l6ZToxMl07Ci19Ci0KLS0gKElCQWN0aW9uKWxvYWRO
YXRpdmVGbGF0Q29sb3I6KGlkKXNlbmRlcgotewotICAgIFtzZWxmIGxvYWROYXRpdmVGbGF0Q29s
b3I6QCJmbGF0Q29sb3IiXTsKLX0KLQotLSAoSUJBY3Rpb24pbG9hZE5hdGl2ZU1hbmRlbGJyb3Q6
KGlkKXNlbmRlcgotewotICAgIFtzZWxmIGxvYWROYXRpdmVNZXRhbFNoYWRlcldpdGhOYW1lOkAi
bWFuZGVsYnJvdCJdOwotfQotCi0tIChJQkFjdGlvbilsb2FkTmF0aXZlSnVsaWE6KGlkKXNlbmRl
cgotewotICAgIFtzZWxmIGxvYWROYXRpdmVNZXRhbFNoYWRlcldpdGhOYW1lOkAianVsaWEiXTsK
LX0KLQotLSAodm9pZClsb2FkTmF0aXZlTWV0YWxTaGFkZXJXaXRoTmFtZTooTlNTdHJpbmcqKW5h
bWUKLXsKLSAgICBOU1N0cmluZyogdmVydGV4U2hhZGVyTmFtZSA9IFtuYW1lIHN0cmluZ0J5QXBw
ZW5kaW5nU3RyaW5nOkAiVmVydGV4U2hhZGVyIl07Ci0gICAgTlNTdHJpbmcqIGZyYWdtZW50U2hh
ZGVyTmFtZSA9IFtuYW1lIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOkAiRnJhZ21lbnRTaGFkZXIi
XTsKLSAgICBbc2VsZiB2aWV3RGlkTGF5b3V0XTsKLSAgICBbc2VsZi5yZW5kZXJlciBzZXRMaWJy
YXJ5OnNlbGYubGlicmFyeSB2ZXJ0ZXhTaGFkZXJOYW1lOnZlcnRleFNoYWRlck5hbWUgZnJhZ21l
bnRTaGFkZXJOYW1lOmZyYWdtZW50U2hhZGVyTmFtZSBwaXhlbEZvcm1hdDpzZWxmLm1ldGFsVmll
dy5jb2xvclBpeGVsRm9ybWF0XTsKLSAgICBbc2VsZi5tZXRhbFZpZXcgc2V0TmVlZHNEaXNwbGF5
OllFU107Ci19Ci0KLS0gKElCQWN0aW9uKXpvb206KGlkKXNlbmRlcgotewotICAgIGZsb2F0IGZh
Y3RvciA9IDEuMGYgLyAoMSArIHNlbGYubWFnbmlmeUdlc3R1cmUubWFnbmlmaWNhdGlvbik7Ci0g
ICAgTlNQb2ludCBsb2NhdGlvbiA9IFtzZWxmLm1hZ25pZnlHZXN0dXJlIGxvY2F0aW9uSW5WaWV3
OnNlbGYubWV0YWxWaWV3XTsKLSAgICBmbG9hdCBub3JtYWxpemVkWCA9IGxvY2F0aW9uLnggLyBD
R1JlY3RHZXRXaWR0aChzZWxmLm1ldGFsVmlldy5mcmFtZSk7Ci0gICAgZmxvYXQgbm9ybWFsaXpl
ZFkgPSBsb2NhdGlvbi55IC8gQ0dSZWN0R2V0SGVpZ2h0KHNlbGYubWV0YWxWaWV3LmZyYW1lKTsK
LSAgICBzaW1kX2Zsb2F0MyBub3JtYWxpemVkID0gc2ltZF9tYWtlX2Zsb2F0Myhub3JtYWxpemVk
WCwgbm9ybWFsaXplZFksIDEpOwotICAgIG5vcm1hbGl6ZWQgPSBtYXRyaXhfbXVsdGlwbHkoc2Vs
Zi5yZW5kZXJlci50cmFuc2Zvcm1NYXRyaXgsIG5vcm1hbGl6ZWQpOwotICAgIHNpbWRfZmxvYXQz
eDMgaW5pdFRyYW5zZm9ybSA9IHNpbWRfbWF0cml4KHNpbWRfbWFrZV9mbG9hdDMoMSwgMCwgMCks
IHNpbWRfbWFrZV9mbG9hdDMoMCwgMSwgMCksIHNpbWRfbWFrZV9mbG9hdDMoLW5vcm1hbGl6ZWQu
eCwgLW5vcm1hbGl6ZWQueSwgMSkpOwotICAgIHNpbWRfZmxvYXQzeDMgc2NhbGVNYXRyaXggPSBz
aW1kX21hdHJpeChzaW1kX21ha2VfZmxvYXQzKGZhY3RvciwgMC5mLCAwLmYpLCBzaW1kX21ha2Vf
ZmxvYXQzKDAuZiwgZmFjdG9yLCAwLmYpLCBzaW1kX21ha2VfZmxvYXQzKDAuZiwgMC5mLCAxKSk7
Ci0gICAgc2ltZF9mbG9hdDN4MyBiYWNrVHJhbnNmb3JtID0gc2ltZF9tYXRyaXgoc2ltZF9tYWtl
X2Zsb2F0MygxLCAwLCAwKSwgc2ltZF9tYWtlX2Zsb2F0MygwLCAxLCAwKSwgc2ltZF9tYWtlX2Zs
b2F0Myhub3JtYWxpemVkLngsIG5vcm1hbGl6ZWQueSwgMSkpOwotICAgIHNlbGYucmVuZGVyZXIu
dHJhbnNmb3JtTWF0cml4ID0gbWF0cml4X211bHRpcGx5KG1hdHJpeF9tdWx0aXBseShiYWNrVHJh
bnNmb3JtLCBtYXRyaXhfbXVsdGlwbHkoc2NhbGVNYXRyaXgsIGluaXRUcmFuc2Zvcm0pKSwgc2Vs
Zi5yZW5kZXJlci50cmFuc2Zvcm1NYXRyaXgpOwotICAgIHNlbGYubWFnbmlmeUdlc3R1cmUubWFn
bmlmaWNhdGlvbiA9IDA7Ci0gICAgW3NlbGYubWV0YWxWaWV3IHNldE5lZWRzRGlzcGxheTpZRVNd
OwotfQotCi0tIChJQkFjdGlvbilyb3RhdGU6KGlkKXNlbmRlcgotewotICAgIGZsb2F0IGFuZ2xl
ID0gLXNlbGYucm90YXRpb25HZXN0dXJlLnJvdGF0aW9uOwotICAgIE5TUG9pbnQgbG9jYXRpb24g
PSBbc2VsZi5yb3RhdGlvbkdlc3R1cmUgbG9jYXRpb25JblZpZXc6c2VsZi5tZXRhbFZpZXddOwot
ICAgIGZsb2F0IG5vcm1hbGl6ZWRYID0gbG9jYXRpb24ueCAvIENHUmVjdEdldFdpZHRoKHNlbGYu
bWV0YWxWaWV3LmZyYW1lKTsKLSAgICBmbG9hdCBub3JtYWxpemVkWSA9IGxvY2F0aW9uLnkgLyBD
R1JlY3RHZXRIZWlnaHQoc2VsZi5tZXRhbFZpZXcuZnJhbWUpOwotICAgIHNpbWRfZmxvYXQzIG5v
cm1hbGl6ZWQgPSBzaW1kX21ha2VfZmxvYXQzKG5vcm1hbGl6ZWRYLCBub3JtYWxpemVkWSwgMSk7
Ci0gICAgbm9ybWFsaXplZCA9IG1hdHJpeF9tdWx0aXBseShzZWxmLnJlbmRlcmVyLnRyYW5zZm9y
bU1hdHJpeCwgbm9ybWFsaXplZCk7Ci0KLSAgICBzaW1kX2Zsb2F0M3gzIGluaXRUcmFuc2Zvcm0g
PSBzaW1kX21hdHJpeChzaW1kX21ha2VfZmxvYXQzKDEsIDAsIDApLCBzaW1kX21ha2VfZmxvYXQz
KDAsIDEsIDApLCBzaW1kX21ha2VfZmxvYXQzKC1ub3JtYWxpemVkLngsIC1ub3JtYWxpemVkLnks
IDEpKTsKLSAgICBzaW1kX2Zsb2F0M3gzIHJvdGF0aW9uTWF0cml4ID0gc2ltZF9tYXRyaXgoc2lt
ZF9tYWtlX2Zsb2F0Myhjb3MoYW5nbGUpLCBzaW4oYW5nbGUpLCAwLmYpLCBzaW1kX21ha2VfZmxv
YXQzKC1zaW4oYW5nbGUpLCBjb3MoYW5nbGUpLCAwLmYpLCBzaW1kX21ha2VfZmxvYXQzKDAuZiwg
MC5mLCAxKSk7Ci0gICAgc2ltZF9mbG9hdDN4MyBiYWNrVHJhbnNmb3JtID0gc2ltZF9tYXRyaXgo
c2ltZF9tYWtlX2Zsb2F0MygxLCAwLCAwKSwgc2ltZF9tYWtlX2Zsb2F0MygwLCAxLCAwKSwgc2lt
ZF9tYWtlX2Zsb2F0Myhub3JtYWxpemVkLngsIG5vcm1hbGl6ZWQueSwgMSkpOwotICAgIHNlbGYu
cmVuZGVyZXIudHJhbnNmb3JtTWF0cml4ID0gbWF0cml4X211bHRpcGx5KG1hdHJpeF9tdWx0aXBs
eShiYWNrVHJhbnNmb3JtLCBtYXRyaXhfbXVsdGlwbHkocm90YXRpb25NYXRyaXgsIGluaXRUcmFu
c2Zvcm0pKSwgc2VsZi5yZW5kZXJlci50cmFuc2Zvcm1NYXRyaXgpOwotICAgIHNlbGYucm90YXRp
b25HZXN0dXJlLnJvdGF0aW9uID0gMDsKLSAgICBbc2VsZi5tZXRhbFZpZXcgc2V0TmVlZHNEaXNw
bGF5OllFU107Ci19Ci0KLS0gKHZvaWQpY3VzdG9tTWV0YWxWaWV3OihDdXN0b21NZXRhbFZpZXcg
KiltZXRhbFZpZXcgc2Nyb2xsZWREZWx0YVg6KENHRmxvYXQpZGVsdGFYIGRlbHRhWTooQ0dGbG9h
dClkZWx0YVkKLXsKLSAgICBmbG9hdCB3aWR0aCA9IHNlbGYubWV0YWxWaWV3LmJvdW5kcy5zaXpl
LndpZHRoOwotICAgIGZsb2F0IGhlaWdodCA9IHNlbGYubWV0YWxWaWV3LmJvdW5kcy5zaXplLmhl
aWdodDsKLSAgICBmbG9hdCBzY3JvbGxWZWxvY2l0eSA9IDY7Ci0gICAgZmxvYXQgeCA9IC1kZWx0
YVggLyB3aWR0aCAqIHNjcm9sbFZlbG9jaXR5OwotICAgIGZsb2F0IHkgPSBkZWx0YVkgLyBoZWln
aHQgKiBzY3JvbGxWZWxvY2l0eTsKLSAgICBzaW1kX2Zsb2F0M3gzIG0gPSBzaW1kX21hdHJpeChz
aW1kX21ha2VfZmxvYXQzKDEsIDAsIDApLCBzaW1kX21ha2VfZmxvYXQzKDAsIDEsIDApLCBzaW1k
X21ha2VfZmxvYXQzKHgsIHksIDEpKTsKLSAgICBzZWxmLnJlbmRlcmVyLnRyYW5zZm9ybU1hdHJp
eCA9IG1hdHJpeF9tdWx0aXBseShzZWxmLnJlbmRlcmVyLnRyYW5zZm9ybU1hdHJpeCwgbSk7Ci19
Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvV0hMU0wuZW50aXRsZW1lbnRzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9XSExTTC5lbnRpdGxlbWVudHMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyZWYzYWUwMjY1Li4wMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1dI
TFNMLmVudGl0bGVtZW50cwkKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAi
LS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Q
cm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotICAg
IDxrZXk+Y29tLmFwcGxlLnNlY3VyaXR5LmFwcC1zYW5kYm94PC9rZXk+Ci0gICAgPHRydWUvPgot
ICAgIDxrZXk+Y29tLmFwcGxlLnNlY3VyaXR5LmZpbGVzLnVzZXItc2VsZWN0ZWQucmVhZC1vbmx5
PC9rZXk+Ci0gICAgPHRydWUvPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvX1NoYXJlZE1l
dGFsLnR4dCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3Rz
L0NvcmUvX1NoYXJlZE1ldGFsLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ2
NGU0MWRlNDIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL0NvcmUvX1NoYXJlZE1ldGFsLnR4dAkKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1zdHJ1Y3QgVmVydGV4SW5wdXQgeyBmbG9hdDIgcG9zaXRpb24gW1th
dHRyaWJ1dGUoMCldXTsgZmxvYXQyIHV2IFtbYXR0cmlidXRlKDEpXV07IH07Ci1zdHJ1Y3QgVmVy
dGV4T3V0cHV0IHsgZmxvYXQ0IHBvc2l0aW9uIFtbcG9zaXRpb25dXTsgfTsKLXN0cnVjdCBGcmFn
bWVudE91dHB1dEZsb2F0IHsgZmxvYXQgcmVzdWx0OyB9Owotc3RydWN0IEZyYWdtZW50T3V0cHV0
SW50IHsgaW50IHJlc3VsdDsgfTsKLXN0cnVjdCBGcmFnbWVudE91dHB1dFVpbnQgeyB1aW50IHJl
c3VsdDsgfTsKLQotdmVydGV4IFZlcnRleE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQg
dmVydGV4SW5wdXQgW1tzdGFnZV9pbl1dKQotewotICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0g
ICAgcmVzdWx0LnBvc2l0aW9uID0gZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0aW9uLCAwLiwgMS4p
OwotICAgIHJldHVybiByZXN1bHQ7Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL21haW4ubSBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvbWFpbi5tCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NGMzMzY1ZWY1OS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9tYWluLm0JCisr
KyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPENvY29hL0NvY29hLmg+Ci0KLWludCBtYWluKGlu
dCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQotewotICAgIHJldHVybiBOU0FwcGxpY2F0aW9u
TWFpbihhcmdjLCBhcmd2KTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRlc3RzLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9X
SExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjNGFkZjZjOTk1Zi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvV0hMU0wgVGVzdHMueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAxICswLDAgQEAKLS8vICEkKlVU
RjgqJCEKLXsKLQlhcmNoaXZlVmVyc2lvbiA9IDE7Ci0JY2xhc3NlcyA9IHsKLQl9OwotCW9iamVj
dFZlcnNpb24gPSA1MDsKLQlvYmplY3RzID0gewotCi0vKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2Vj
dGlvbiAqLwotCQkzMUYxMTcwOTIxNkJGRTkyMDA5QTM2RDUgLyogRnVuY0F0dHJpYnV0ZS5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFGMTE2QzQy
MTZCRkU5MDAwOUEzNkQ1IC8qIEZ1bmNBdHRyaWJ1dGUuanMgKi87IH07Ci0JCTMxRjExNzBBMjE2
QkZFOTIwMDlBMzZENSAvKiBCdWlsdEluU2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRjExNkM1MjE2QkZFOTAwMDlBMzZENSAvKiBC
dWlsdEluU2VtYW50aWMuanMgKi87IH07Ci0JCTMxRjExNzMyMjE2QkZFOTMwMDlBMzZENSAvKiBS
ZXNvdXJjZVNlbWFudGljLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMUYxMTcwNDIxNkJGRTkwMDA5QTM2RDUgLyogUmVzb3VyY2VTZW1hbnRpYy5q
cyAqLzsgfTsKLQkJMzFGMTE3MzMyMTZCRkU5MzAwOUEzNkQ1IC8qIEZ1bmNOdW1UaHJlYWRzQXR0
cmlidXRlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMUYxMTcwNTIxNkJGRTkxMDA5QTM2RDUgLyogRnVuY051bVRocmVhZHNBdHRyaWJ1dGUuanMg
Ki87IH07Ci0JCTMxRjExNzM0MjE2QkZFOTMwMDlBMzZENSAvKiBTZW1hbnRpYy5qcyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFGMTE3MDYyMTZCRkU5
MTAwOUEzNkQ1IC8qIFNlbWFudGljLmpzICovOyB9OwotCQkzMUYxMTczNTIxNkJGRTkzMDA5QTM2
RDUgLyogQ2hlY2tOYXRpdmVGdW5jU3RhZ2VzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUYxMTcwNzIxNkJGRTkyMDA5QTM2RDUgLyogQ2hlY2tO
YXRpdmVGdW5jU3RhZ2VzLmpzICovOyB9OwotCQkzMUYxMTczNjIxNkJGRTkzMDA5QTM2RDUgLyog
U3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUYxMTcwODIxNkJGRTkyMDA5QTM2RDUgLyogU3Bl
Y2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzICovOyB9OwotCQkzMUYxMTc3NjIxNkJGRUVD
MDA5QTM2RDUgLyogU3RhZ2VJbk91dFNlbWFudGljLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUYxMTczNzIxNkJGRUVCMDA5QTM2RDUgLyogU3Rh
Z2VJbk91dFNlbWFudGljLmpzICovOyB9OwotCQkzMUYxMTc5RjIxNkJGRjA3MDA5QTM2RDUgLyog
TVNMSW5zZXJ0VHJhcFBhcmFtZXRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFGMTE3OUUyMTZCRkYwNzAwOUEzNkQ1IC8qIE1TTEluc2VydFRy
YXBQYXJhbWV0ZXIuanMgKi87IH07Ci0JCUU5MDZCMDQ2MjExMzlCNzcwMEFEMUM1RSAvKiBKdWxp
YS53aGxzbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTkwNkIwNDUyMTEzOUI3NzAwQUQxQzVFIC8qIEp1bGlhLndobHNsICovOyB9OwotCQlFOTIxRDYz
NjIxMzhDMDI2MDA3NzUwOTkgLyogT3BlcmF0b3JBbmRlckluZGV4ZXIuanMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MjFENjMyMjEzOEMwMjYwMDc3
NTA5OSAvKiBPcGVyYXRvckFuZGVySW5kZXhlci5qcyAqLzsgfTsKLQkJRTkyMUQ2MzcyMTM4QzAy
NjAwNzc1MDk5IC8qIE1hdHJpeFR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU5MjFENjMzMjEzOEMwMjYwMDc3NTA5OSAvKiBNYXRyaXhUeXBl
LmpzICovOyB9OwotCQlFOTIxRDYzODIxMzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeEdl
dHRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTkyMUQ2MzQyMTM4QzAyNjAwNzc1MDk5IC8qIEJ1aWx0aW5NYXRyaXhHZXR0ZXIuanMgKi87IH07
Ci0JCUU5MjFENjM5MjEzOEMwMjYwMDc3NTA5OSAvKiBCdWlsdGluTWF0cml4U2V0dGVyLmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTIxRDYzNTIx
MzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeFNldHRlci5qcyAqLzsgfTsKLQkJRTkyRDEw
OEEyMEY1NkYwNjAwRDc3NkIyIC8qIENvbXBpbGVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA4OTIwRjU2RjA2MDBENzc2QjIgLyogQ29tcGls
ZXIubSAqLzsgfTsKLQkJRTkyRDEwOEQyMEY1NkY0NTAwRDc3NkIyIC8qIE1ldGFsS2l0LmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
MkQxMDhDMjBGNTZGNDUwMEQ3NzZCMiAvKiBNZXRhbEtpdC5mcmFtZXdvcmsgKi87IH07Ci0JCUU5
MkQxMDhGMjBGNTZGNEYwMEQ3NzZCMiAvKiBNZXRhbC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA4RTIwRjU2RjRGMDBENzc2
QjIgLyogTWV0YWwuZnJhbWV3b3JrICovOyB9OwotCQlFOTJEMTA5MTIwRjU2RjU3MDBENzc2QjIg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwOTAyMEY1NkY1NzAwRDc3NkIyIC8qIEphdmFTY3Jp
cHRDb3JlLmZyYW1ld29yayAqLzsgfTsKLQkJRTkyRDEwOTMyMEY1NzM0OTAwRDc3NkIyIC8qIERl
ZmF1bHQud2hsc2wgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5MkQxMDkyMjBGNTczNDkwMEQ3NzZCMiAvKiBEZWZhdWx0LndobHNsICovOyB9OwotCQlF
OTJEMTBBRjIwRjU3QzlGMDBENzc2QjIgLyogT25zY3JlZW5SZW5kZXJlci5tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwQUUyMEY1N0M5RjAwRDc3
NkIyIC8qIE9uc2NyZWVuUmVuZGVyZXIubSAqLzsgfTsKLQkJRTkyRDExMTUyMEY2RkZCNjAwRDc3
NkIyIC8qIFJlbmRlcmVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFOTJEMTExNDIwRjZGRkI2MDBENzc2QjIgLyogUmVuZGVyZXIubSAqLzsgfTsKLQkJ
RTkyRDExMTYyMEY3MDYwRTAwRDc3NkIyIC8qIEFkZHJlc3NTcGFjZS5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5QkEyMEY1NkNENjAwRjVD
RjM0IC8qIEFkZHJlc3NTcGFjZS5qcyAqLzsgfTsKLQkJRTkyRDExMTcyMEY3MDYwRTAwRDc3NkIy
IC8qIEFsbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTk1NTY5QkMyMEY1NkNENzAwRjVDRjM0IC8qIEFsbC5qcyAqLzsgfTsKLQkJRTkyRDExMTgy
MEY3MDYwRTAwRDc3NkIyIC8qIEFub255bW91c1ZhcmlhYmxlLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlCRDIwRjU2Q0Q3MDBGNUNGMzQg
LyogQW5vbnltb3VzVmFyaWFibGUuanMgKi87IH07Ci0JCUU5MkQxMTE5MjBGNzA2MEUwMEQ3NzZC
MiAvKiBBcnJheVJlZlR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5NTU2OUI1MjBGNTZDRDYwMEY1Q0YzNCAvKiBBcnJheVJlZlR5cGUuanMg
Ki87IH07Ci0JCUU5MkQxMTFBMjBGNzA2MEUwMEQ3NzZCMiAvKiBBcnJheVR5cGUuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI0MjBGNTZD
RDYwMEY1Q0YzNCAvKiBBcnJheVR5cGUuanMgKi87IH07Ci0JCUU5MkQxMTFCMjBGNzA2MEUwMEQ3
NzZCMiAvKiBBc3NpZ25tZW50LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOTU1NjlCOTIwRjU2Q0Q2MDBGNUNGMzQgLyogQXNzaWdubWVudC5qcyAq
LzsgfTsKLQkJRTkyRDExMUMyMEY3MDYwRTAwRDc3NkIyIC8qIEF1dG9XcmFwcGVyLmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlCRTIwRjU2
Q0Q3MDBGNUNGMzQgLyogQXV0b1dyYXBwZXIuanMgKi87IH07Ci0JCUU5MkQxMTFEMjBGNzA2MEUw
MEQ3NzZCMiAvKiBCbG9jay5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTk0QzA2RkMyMEY1NkNBMzAwNjcyOTkyIC8qIEJsb2NrLmpzICovOyB9Owot
CQlFOTJEMTExRTIwRjcwNjBFMDBENzc2QjIgLyogQm9vbExpdGVyYWwuanMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUIxMjBGNTZDRDYwMEY1
Q0YzNCAvKiBCb29sTGl0ZXJhbC5qcyAqLzsgfTsKLQkJRTkyRDExMUYyMEY3MDYwRTAwRDc3NkIy
IC8qIEJyZWFrLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTU1NjlCMDIwRjU2Q0Q2MDBGNUNGMzQgLyogQnJlYWsuanMgKi87IH07Ci0JCUU5MkQx
MTIwMjBGNzA2MEUwMEQ3NzZCMiAvKiBDYWxsRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5QkYyMEY1NkNENzAwRjVDRjM0
IC8qIENhbGxFeHByZXNzaW9uLmpzICovOyB9OwotCQlFOTJEMTEyMTIwRjcwNjBFMDBENzc2QjIg
LyogQ2FsbEZ1bmN0aW9uLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOTU1NjlDMDIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2FsbEZ1bmN0aW9uLmpzICov
OyB9OwotCQlFOTJEMTEyMjIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2suanMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI4MjBGNTZDRDYwMEY1
Q0YzNCAvKiBDaGVjay5qcyAqLzsgfTsKLQkJRTkyRDExMjMyMEY3MDYwRTAwRDc3NkIyIC8qIENo
ZWNrZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU5NTU2OUMxMjBGNTZDRDcwMEY1Q0YzNCAvKiBDaGVja2VyLmpzICovOyB9OwotCQlFOTJEMTEy
NDIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tMaXRlcmFsVHlwZXMuanMgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI2MjBGNTZDRDYwMEY1Q0Yz
NCAvKiBDaGVja0xpdGVyYWxUeXBlcy5qcyAqLzsgfTsKLQkJRTkyRDExMjUyMEY3MDYwRTAwRDc3
NkIyIC8qIENoZWNrTG9vcHMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5NTU2OUIzMjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja0xvb3BzLmpzICov
OyB9OwotCQlFOTJEMTEyNjIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tSZWN1cnNpb24uanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NEMwNkZBMjBG
NTZDQTMwMDY3Mjk5MiAvKiBDaGVja1JlY3Vyc2lvbi5qcyAqLzsgfTsKLQkJRTkyRDExMjcyMEY3
MDYwRTAwRDc3NkIyIC8qIENoZWNrUmVjdXJzaXZlVHlwZXMuanMgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUJCMjBGNTZDRDYwMEY1Q0YzNCAv
KiBDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzICovOyB9OwotCQlFOTJEMTEyODIwRjcwNjBFMDBENzc2
QjIgLyogQ2hlY2tSZXR1cm5zLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOTU1NjlCMjIwRjU2Q0Q2MDBGNUNGMzQgLyogQ2hlY2tSZXR1cm5zLmpz
ICovOyB9OwotCQlFOTJEMTEyOTIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tVbnJlYWNoYWJsZUNv
ZGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
NTU2OUI3MjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja1VucmVhY2hhYmxlQ29kZS5qcyAqLzsgfTsK
LQkJRTkyRDExMkEyMEY3MDYwRTAwRDc3NkIyIC8qIENoZWNrV3JhcHBlZC5qcyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5RDQyMEY1NkNFRDAw
RjVDRjM0IC8qIENoZWNrV3JhcHBlZC5qcyAqLzsgfTsKLQkJRTkyRDExMkIyMEY3MDYwRTAwRDc3
NkIyIC8qIENsb25lUHJvZ3JhbS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTk1NTY5REIyMEY1NkNFRTAwRjVDRjM0IC8qIENsb25lUHJvZ3JhbS5q
cyAqLzsgfTsKLQkJRTkyRDExMkMyMEY3MDYwRTAwRDc3NkIyIC8qIENvbW1hRXhwcmVzc2lvbi5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5
REMyMEY1NkNFRTAwRjVDRjM0IC8qIENvbW1hRXhwcmVzc2lvbi5qcyAqLzsgfTsKLQkJRTkyRDEx
MkUyMEY3MDYwRTAwRDc3NkIyIC8qIENvbnN0ZXhwckZvbGRlci5qcyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5RDUyMEY1NkNFRDAwRjVDRjM0
IC8qIENvbnN0ZXhwckZvbGRlci5qcyAqLzsgfTsKLQkJRTkyRDExMzAyMEY3MDYwRTAwRDc3NkIy
IC8qIENvbnRpbnVlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFOTU1NjlENzIwRjU2Q0VEMDBGNUNGMzQgLyogQ29udGludWUuanMgKi87IH07Ci0J
CUU5MkQxMTMxMjBGNzA2MEUwMEQ3NzZCMiAvKiBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Np
b24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
NTU2OUQ5MjBGNTZDRUQwMEY1Q0YzNCAvKiBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24u
anMgKi87IH07Ci0JCUU5MkQxMTMyMjBGNzA2MEUwMEQ3NzZCMiAvKiBDcmVhdGVMaXRlcmFsLmpz
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlE
ODIwRjU2Q0VEMDBGNUNGMzQgLyogQ3JlYXRlTGl0ZXJhbC5qcyAqLzsgfTsKLQkJRTkyRDExMzMy
MEY3MDYwRTAwRDc3NkIyIC8qIENyZWF0ZUxpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlENjIwRjU2Q0VEMDBGNUNGMzQg
LyogQ3JlYXRlTGl0ZXJhbFR5cGUuanMgKi87IH07Ci0JCUU5MkQxMTM0MjBGNzA2MEUwMEQ3NzZC
MiAvKiBEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NEMwNkY5MjBGNTZDQTMwMDY3Mjk5MiAvKiBEZXJlZmVy
ZW5jZUV4cHJlc3Npb24uanMgKi87IH07Ci0JCUU5MkQxMTM1MjBGNzA2MEUwMEQ3NzZCMiAvKiBE
b3RFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFOUFEMDc0QjIwRjU2RDVCMDA3RjI0NjYgLyogRG90RXhwcmVzc2lvbi5qcyAqLzsg
fTsKLQkJRTkyRDExMzgyMEY3MDYwRTAwRDc3NkIyIC8qIERvV2hpbGVMb29wLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUFEMDc0NjIwRjU2RDVB
MDA3RjI0NjYgLyogRG9XaGlsZUxvb3AuanMgKi87IH07Ci0JCUU5MkQxMTM5MjBGNzA2MEUwMEQ3
NzZCMiAvKiBFQXJyYXlSZWYuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5QUQwNzQ5MjBGNTZENUEwMDdGMjQ2NiAvKiBFQXJyYXlSZWYuanMgKi87
IH07Ci0JCUU5MkQxMTNBMjBGNzA2MEUwMEQ3NzZCMiAvKiBFQnVmZmVyLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUFEMDc0ODIwRjU2RDVBMDA3
RjI0NjYgLyogRUJ1ZmZlci5qcyAqLzsgfTsKLQkJRTkyRDExM0IyMEY3MDYwRTAwRDc3NkIyIC8q
IEVCdWZmZXJCdWlsZGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOUFEMDc0QTIwRjU2RDVCMDA3RjI0NjYgLyogRUJ1ZmZlckJ1aWxkZXIuanMg
Ki87IH07Ci0JCUU5MkQxMTNDMjBGNzA2MEUwMEQ3NzZCMiAvKiBFbnVtTGl0ZXJhbC5qcyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk0QzA2RkQyMEY1
NkNBMzAwNjcyOTkyIC8qIEVudW1MaXRlcmFsLmpzICovOyB9OwotCQlFOTJEMTEzRDIwRjcwNjBF
MDBENzc2QjIgLyogRW51bU1lbWJlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NTUyMEY1NkQ2OTAwN0YyNDY2IC8qIEVudW1NZW1iZXIu
anMgKi87IH07Ci0JCUU5MkQxMTNFMjBGNzA2MEUwMEQ3NzZCMiAvKiBFbnVtVHlwZS5qcyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NUEyMEY1
NkQ2OTAwN0YyNDY2IC8qIEVudW1UeXBlLmpzICovOyB9OwotCQlFOTJEMTEzRjIwRjcwNjBFMDBE
Nzc2QjIgLyogRVB0ci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk1NTY5RTcyMEY1NkQwNTAwRjVDRjM0IC8qIEVQdHIuanMgKi87IH07Ci0JCUU5
MkQxMTQwMjBGNzA2MEUwMEQ3NzZCMiAvKiBFdmFsdWF0aW9uQ29tbW9uLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUFEMDc1MzIwRjU2RDY5MDA3
RjI0NjYgLyogRXZhbHVhdGlvbkNvbW1vbi5qcyAqLzsgfTsKLQkJRTkyRDExNDEyMEY3MDYwRTAw
RDc3NkIyIC8qIEV2YWx1YXRvci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTlBRDA3NTcyMEY1NkQ2OTAwN0YyNDY2IC8qIEV2YWx1YXRvci5qcyAq
LzsgfTsKLQkJRTkyRDExNDIyMEY3MDYwRTAwRDc3NkIyIC8qIEV4cHJlc3Npb24uanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5QUQwNzU0MjBGNTZE
NjkwMDdGMjQ2NiAvKiBFeHByZXNzaW9uLmpzICovOyB9OwotCQlFOTJEMTE0MzIwRjcwNjBFMDBE
Nzc2QjIgLyogRXhwcmVzc2lvbkZpbmRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NTkyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4cHJlc3Np
b25GaW5kZXIuanMgKi87IH07Ci0JCUU5MkQxMTQ0MjBGNzA2MEUwMEQ3NzZCMiAvKiBFeHRlcm5h
bE9yaWdpbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTlBRDA3NUIyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4dGVybmFsT3JpZ2luLmpzICovOyB9Owot
CQlFOTJEMTE0NTIwRjcwNjBFMDBENzc2QjIgLyogRmllbGQuanMgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RkNFQjVCMjBGNTZEOTMwMDlCMzYyOSAv
KiBGaWVsZC5qcyAqLzsgfTsKLQkJRTkyRDExNDYyMEY3MDYwRTAwRDc3NkIyIC8qIEZpbmRIaWdo
Wm9tYmllcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTlBRDA3NTgyMEY1NkQ2OTAwN0YyNDY2IC8qIEZpbmRIaWdoWm9tYmllcy5qcyAqLzsgfTsK
LQkJRTkyRDExNDcyMEY3MDYwRTAwRDc3NkIyIC8qIEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhl
cmVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OUFEMDc1NjIwRjU2RDY5MDA3RjI0NjYgLyogRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIu
anMgKi87IH07Ci0JCUU5MkQxMTQ5MjBGNzA2MEUwMEQ3NzZCMiAvKiBGbG9hdExpdGVyYWwuanMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5QUQwNzVD
MjBGNTZENjkwMDdGMjQ2NiAvKiBGbG9hdExpdGVyYWwuanMgKi87IH07Ci0JCUU5MkQxMTRBMjBG
NzA2MEUwMEQ3NzZCMiAvKiBGbG9hdExpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlFQTIwRjU2RDA1MDBGNUNGMzQgLyog
RmxvYXRMaXRlcmFsVHlwZS5qcyAqLzsgfTsKLQkJRTkyRDExNEIyMEY3MDYwRTAwRDc3NkIyIC8q
IEZvbGRDb25zdGV4cHJzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOTU1NjlFQjIwRjU2RDA1MDBGNUNGMzQgLyogRm9sZENvbnN0ZXhwcnMuanMg
Ki87IH07Ci0JCUU5MkQxMTRDMjBGNzA2MEUwMEQ3NzZCMiAvKiBGb3JMb29wLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI1QTIwRjU2RDkz
MDA5QjM2MjkgLyogRm9yTG9vcC5qcyAqLzsgfTsKLQkJRTkyRDExNEQyMEY3MDYwRTAwRDc3NkIy
IC8qIEZ1bmMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5RkNFQjU1MjBGNTZEOTIwMDlCMzYyOSAvKiBGdW5jLmpzICovOyB9OwotCQlFOTJEMTE0
RTIwRjcwNjBFMDBENzc2QjIgLyogRnVuY0RlZi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5RTgyMEY1NkQwNTAwRjVDRjM0IC8qIEZ1bmNE
ZWYuanMgKi87IH07Ci0JCUU5MkQxMTUwMjBGNzA2MEUwMEQ3NzZCMiAvKiBGdW5jUGFyYW1ldGVy
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1
NjlFOTIwRjU2RDA1MDBGNUNGMzQgLyogRnVuY1BhcmFtZXRlci5qcyAqLzsgfTsKLQkJRTkyRDEx
NTEyMEY3MDYwRTAwRDc3NkIyIC8qIEZ1bmN0aW9uTGlrZUJsb2NrLmpzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlFNjIwRjU2RDA1MDBGNUNG
MzQgLyogRnVuY3Rpb25MaWtlQmxvY2suanMgKi87IH07Ci0JCUU5MkQxMTUyMjBGNzA2MEUwMEQ3
NzZCMiAvKiBIaWdoWm9tYmllRmluZGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFOTRDMDZGQjIwRjU2Q0EzMDA2NzI5OTIgLyogSGlnaFpvbWJp
ZUZpbmRlci5qcyAqLzsgfTsKLQkJRTkyRDExNTMyMEY3MDYwRTAwRDc3NkIyIC8qIElkZW50aXR5
RXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTlGQ0VCNTgyMEY1NkQ5MzAwOUIzNjI5IC8qIElkZW50aXR5RXhwcmVzc2lvbi5qcyAq
LzsgfTsKLQkJRTkyRDExNTQyMEY3MDYwRTAwRDc3NkIyIC8qIElmU3RhdGVtZW50LmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI1NzIwRjU2
RDkzMDA5QjM2MjkgLyogSWZTdGF0ZW1lbnQuanMgKi87IH07Ci0JCUU5MkQxMTU1MjBGNzA2MEUw
MEQ3NzZCMiAvKiBJbmRleEV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RkNFQjYzMjBGNTZEQTQwMDlCMzYyOSAvKiBJbmRleEV4
cHJlc3Npb24uanMgKi87IH07Ci0JCUU5MkQxMTU2MjBGNzA2MEUwMEQ3NzZCMiAvKiBJbmZlclR5
cGVzRm9yQ2FsbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTlGQ0VCNjUyMEY1NkRBNTAwOUIzNjI5IC8qIEluZmVyVHlwZXNGb3JDYWxsLmpzICov
OyB9OwotCQlFOTJEMTE1NzIwRjcwNjBFMDBENzc2QjIgLyogSW5saW5lLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI2NjIwRjU2REE1MDA5
QjM2MjkgLyogSW5saW5lLmpzICovOyB9OwotCQlFOTJEMTE1ODIwRjcwNjBFMDBENzc2QjIgLyog
SW5saW5lci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTkyRDBGRTgyMEY1NkRERDAwRDc3NkIyIC8qIElubGluZXIuanMgKi87IH07Ci0JCUU5MkQx
MTVBMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFNDIwRjU2REREMDBENzc2QjIgLyog
SW50TGl0ZXJhbC5qcyAqLzsgfTsKLQkJRTkyRDExNUIyMEY3MDYwRTAwRDc3NkIyIC8qIEludExp
dGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTJEMEZFNTIwRjU2REREMDBENzc2QjIgLyogSW50TGl0ZXJhbFR5cGUuanMgKi87IH07
Ci0JCUU5MkQxMTVDMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRyaW5zaWNzLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFNzIwRjU2REREMDBE
Nzc2QjIgLyogSW50cmluc2ljcy5qcyAqLzsgfTsKLQkJRTkyRDExNUUyMEY3MDYwRTAwRDc3NkIy
IC8qIExleGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTJEMEZGMTIwRjU2REVDMDBENzc2QjIgLyogTGV4ZXIuanMgKi87IH07Ci0JCUU5MkQx
MTVGMjBGNzA2MEUwMEQ3NzZCMiAvKiBMZXhlclRva2VuLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZGMDIwRjU2REVCMDBENzc2QjIgLyog
TGV4ZXJUb2tlbi5qcyAqLzsgfTsKLQkJRTkyRDExNjAyMEY3MDYwRTAwRDc3NkIyIC8qIExpdGVy
YWxUeXBlQ2hlY2tlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTkyRDBGRjIyMEY1NkRFQzAwRDc3NkIyIC8qIExpdGVyYWxUeXBlQ2hlY2tlci5q
cyAqLzsgfTsKLQkJRTkyRDExNjEyMEY3MDYwRTAwRDc3NkIyIC8qIExvZ2ljYWxFeHByZXNzaW9u
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MEZFRTIwRjU2REVCMDBENzc2QjIgLyogTG9naWNhbEV4cHJlc3Npb24uanMgKi87IH07Ci0JCUU5
MkQxMTYyMjBGNzA2MEUwMEQ3NzZCMiAvKiBMb2dpY2FsTm90LmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFRjIwRjU2REVCMDBENzc2QjIg
LyogTG9naWNhbE5vdC5qcyAqLzsgfTsKLQkJRTkyRDExNjMyMEY3MDYwRTAwRDc3NkIyIC8qIExv
b3BDaGVja2VyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTJEMEZGQjIwRjU2REZCMDBENzc2QjIgLyogTG9vcENoZWNrZXIuanMgKi87IH07Ci0J
CUU5MkQxMTY0MjBGNzA2MEUwMEQ3NzZCMiAvKiBNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZGQzIw
RjU2REZCMDBENzc2QjIgLyogTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyAqLzsgfTsKLQkJRTky
RDExNjUyMEY3MDYwRTAwRDc3NkIyIC8qIE1ha2VQdHJFeHByZXNzaW9uLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZGOTIwRjU2REZBMDBE
Nzc2QjIgLyogTWFrZVB0ckV4cHJlc3Npb24uanMgKi87IH07Ci0JCUU5MkQxMTY2MjBGNzA2MEUw
MEQ3NzZCMiAvKiBOYW1lQ29udGV4dC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRjgyMEY1NkRGQTAwRDc3NkIyIC8qIE5hbWVDb250ZXh0
LmpzICovOyB9OwotCQlFOTJEMTE2NzIwRjcwNjBFMDBENzc2QjIgLyogTmFtZUZpbmRlci5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRkEy
MEY1NkRGQjAwRDc3NkIyIC8qIE5hbWVGaW5kZXIuanMgKi87IH07Ci0JCUU5MkQxMTY4MjBGNzA2
MEUwMEQ3NzZCMiAvKiBOYW1lUmVzb2x2ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDAzMjBGNTZFMDkwMEQ3NzZCMiAvKiBOYW1lUmVz
b2x2ZXIuanMgKi87IH07Ci0JCUU5MkQxMTY5MjBGNzA2MEUwMEQ3NzZCMiAvKiBOYXRpdmVGdW5j
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MTAwNTIwRjU2RTA5MDBENzc2QjIgLyogTmF0aXZlRnVuYy5qcyAqLzsgfTsKLQkJRTkyRDExNkIy
MEY3MDYwRTAwRDc3NkIyIC8qIE5hdGl2ZVR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDA2MjBGNTZFMDkwMEQ3NzZCMiAvKiBOYXRp
dmVUeXBlLmpzICovOyB9OwotCQlFOTJEMTE2RDIwRjcwNjBFMDBENzc2QjIgLyogTm9kZS5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMEYy
MEY1NkUxNTAwRDc3NkIyIC8qIE5vZGUuanMgKi87IH07Ci0JCUU5MkQxMTZFMjBGNzA2MEUwMEQ3
NzZCMiAvKiBOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAwRDIwRjU2RTE1MDBENzc2QjIgLyog
Tm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyAqLzsgfTsKLQkJRTkyRDExNkYyMEY3MDYwRTAw
RDc3NkIyIC8qIE51bGxMaXRlcmFsLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAwQzIwRjU2RTE1MDBENzc2QjIgLyogTnVsbExpdGVyYWwu
anMgKi87IH07Ci0JCUU5MkQxMTcwMjBGNzA2MEUwMEQ3NzZCMiAvKiBOdWxsVHlwZS5qcyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMTAyMEY1
NkUxNTAwRDc3NkIyIC8qIE51bGxUeXBlLmpzICovOyB9OwotCQlFOTJEMTE3MTIwRjcwNjBFMDBE
Nzc2QjIgLyogT3JpZ2luS2luZC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTkyRDEwMEUyMEY1NkUxNTAwRDc3NkIyIC8qIE9yaWdpbktpbmQuanMg
Ki87IH07Ci0JCUU5MkQxMTcyMjBGNzA2MEUwMEQ3NzZCMiAvKiBPdmVybG9hZFJlc29sdXRpb25G
YWlsdXJlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFOTJEMTAxOTIwRjU2RTIyMDBENzc2QjIgLyogT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5q
cyAqLzsgfTsKLQkJRTkyRDExNzMyMEY3MDYwRTAwRDc3NkIyIC8qIFBhcnNlLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAxNzIwRjU2RTIy
MDBENzc2QjIgLyogUGFyc2UuanMgKi87IH07Ci0JCUU5MkQxMTc0MjBGNzA2MEUwMEQ3NzZCMiAv
KiBQcmVwYXJlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTJEMTAxODIwRjU2RTIyMDBENzc2QjIgLyogUHJlcGFyZS5qcyAqLzsgfTsKLQkJRTky
RDExNzUyMEY3MDYwRTAwRDc3NkIyIC8qIFByb2dyYW0uanMgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDFBMjBGNTZFMjIwMEQ3NzZCMiAvKiBQ
cm9ncmFtLmpzICovOyB9OwotCQlFOTJEMTE3NjIwRjcwNjBFMDBENzc2QjIgLyogUHJvZ3JhbVdp
dGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDE2MjBGNTZFMjEwMEQ3NzZCMiAvKiBQcm9ncmFt
V2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyAqLzsgfTsKLQkJRTkyRDExNzcyMEY3MDYw
RTAwRDc3NkIyIC8qIFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMjMyMEY1NkUyRjAwRDc3NkIy
IC8qIFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyAqLzsgfTsKLQkJRTkyRDExNzgyMEY3MDYw
RTAwRDc3NkIyIC8qIFByb3BlcnR5UmVzb2x2ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDIwMjBGNTZFMkYwMEQ3NzZCMiAvKiBQcm9w
ZXJ0eVJlc29sdmVyLmpzICovOyB9OwotCQlFOTJEMTE3RDIwRjcwNjBFMDBENzc2QjIgLyogUHRy
VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTkyRDEwMkIyMEY1NkUzRjAwRDc3NkIyIC8qIFB0clR5cGUuanMgKi87IH07Ci0JCUU5MkQxMTdF
MjBGNzA2MEUwMEQ3NzZCMiAvKiBSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAyQTIwRjU2RTNG
MDBENzc2QjIgLyogUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyAqLzsgfTsKLQkJRTkyRDEx
N0YyMEY3MDYwRTAwRDc3NkIyIC8qIFJlY3Vyc2lvbkNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDJDMjBGNTZFM0YwMEQ3NzZC
MiAvKiBSZWN1cnNpb25DaGVja2VyLmpzICovOyB9OwotCQlFOTJEMTE4MDIwRjcwNjBFMDBENzc2
QjIgLyogUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDJFMjBGNTZFNDAwMEQ3NzZCMiAvKiBSZWN1cnNp
dmVUeXBlQ2hlY2tlci5qcyAqLzsgfTsKLQkJRTkyRDExODEyMEY3MDYwRTAwRDc3NkIyIC8qIFJl
ZmVyZW5jZVR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5MkQxMDM1MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZWZlcmVuY2VUeXBlLmpzICovOyB9
OwotCQlFOTJEMTE4MjIwRjcwNjBFMDBENzc2QjIgLyogUmVzb2x2ZU5hbWVzLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAzNDIwRjU2RTRG
MDBENzc2QjIgLyogUmVzb2x2ZU5hbWVzLmpzICovOyB9OwotCQlFOTJEMTE4MzIwRjcwNjBFMDBE
Nzc2QjIgLyogUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMzgyMEY1NkU0RjAwRDc3NkIyIC8qIFJlc29s
dmVPdmVybG9hZEltcGwuanMgKi87IH07Ci0JCUU5MkQxMTg0MjBGNzA2MEUwMEQ3NzZCMiAvKiBS
ZXNvbHZlUHJvcGVydGllcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTkyRDEwMzYyMEY1NkU0RjAwRDc3NkIyIC8qIFJlc29sdmVQcm9wZXJ0aWVz
LmpzICovOyB9OwotCQlFOTJEMTE4NTIwRjcwNjBFMDBENzc2QjIgLyogUmVzb2x2ZVR5cGVEZWZz
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MTAzNzIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZVR5cGVEZWZzLmpzICovOyB9OwotCQlFOTJE
MTE4NjIwRjcwNjBFMDBENzc2QjIgLyogUmV0dXJuLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAzRTIwRjU2RTYxMDBENzc2QjIgLyogUmV0
dXJuLmpzICovOyB9OwotCQlFOTJEMTE4NzIwRjcwNjBFMDBENzc2QjIgLyogUmV0dXJuQ2hlY2tl
ci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTky
RDEwNDAyMEY1NkU2MjAwRDc3NkIyIC8qIFJldHVybkNoZWNrZXIuanMgKi87IH07Ci0JCUU5MkQx
MTg4MjBGNzA2MEUwMEQ3NzZCMiAvKiBSZXR1cm5FeGNlcHRpb24uanMgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDQyMjBGNTZFNjIwMEQ3NzZC
MiAvKiBSZXR1cm5FeGNlcHRpb24uanMgKi87IH07Ci0JCUU5MkQxMTg5MjBGNzA2MEUwMEQ3NzZC
MiAvKiBSZXdyaXRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTkyRDEwNDEyMEY1NkU2MjAwRDc3NkIyIC8qIFJld3JpdGVyLmpzICovOyB9Owot
CQlFOTJEMTE4QTIwRjcwNjBFMDBENzc2QjIgLyogU3RhbmRhcmRMaWJyYXJ5LmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAzRjIwRjU2RTYy
MDBENzc2QjIgLyogU3RhbmRhcmRMaWJyYXJ5LmpzICovOyB9OwotCQlFOTJEMTE4QjIwRjcwNjBF
MDBENzc2QjIgLyogU3RhdGVtZW50Q2xvbmVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA0ODIwRjU2RTczMDBENzc2QjIgLyogU3RhdGVt
ZW50Q2xvbmVyLmpzICovOyB9OwotCQlFOTJEMTE4QzIwRjcwNjBFMDBENzc2QjIgLyogU3RydWN0
TGF5b3V0QnVpbGRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTkyRDEwNDkyMEY1NkU3MzAwRDc3NkIyIC8qIFN0cnVjdExheW91dEJ1aWxkZXIu
anMgKi87IH07Ci0JCUU5MkQxMThEMjBGNzA2MEUwMEQ3NzZCMiAvKiBTdHJ1Y3RUeXBlLmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA0QTIw
RjU2RTczMDBENzc2QjIgLyogU3RydWN0VHlwZS5qcyAqLzsgfTsKLQkJRTkyRDExOEYyMEY3MDYw
RTAwRDc3NkIyIC8qIFN3aXRjaENhc2UuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDRCMjBGNTZFNzMwMEQ3NzZCMiAvKiBTd2l0Y2hDYXNl
LmpzICovOyB9OwotCQlFOTJEMTE5MDIwRjcwNjBFMDBENzc2QjIgLyogU3dpdGNoU3RhdGVtZW50
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MTA1MjIwRjU2RTg0MDBENzc2QjIgLyogU3dpdGNoU3RhdGVtZW50LmpzICovOyB9OwotCQlFOTJE
MTE5MTIwRjcwNjBFMDBENzc2QjIgLyogU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDU0MjBGNTZF
ODUwMEQ3NzZCMiAvKiBTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyAqLzsgfTsKLQkJRTkyRDEx
OTIyMEY3MDYwRTAwRDc3NkIyIC8qIFN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDUzMjBGNTZF
ODQwMEQ3NzZCMiAvKiBTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzICovOyB9OwotCQlFOTJE
MTE5MzIwRjcwNjBFMDBENzc2QjIgLyogVHJhcFN0YXRlbWVudC5qcyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNTYyMEY1NkU4NTAwRDc3NkIy
IC8qIFRyYXBTdGF0ZW1lbnQuanMgKi87IH07Ci0JCUU5MkQxMTk0MjBGNzA2MEUwMEQ3NzZCMiAv
KiBUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFOTJEMTA1NTIwRjU2RTg1MDBENzc2QjIgLyogVHlwZS5qcyAqLzsgfTsKLQkJRTkyRDExOTUy
MEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVEZWYuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDVGMjBGNTZFOTUwMEQ3NzZCMiAvKiBUeXBlRGVm
LmpzICovOyB9OwotCQlFOTJEMTE5NjIwRjcwNjBFMDBENzc2QjIgLyogVHlwZURlZlJlc29sdmVy
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MTA1RTIwRjU2RTk1MDBENzc2QjIgLyogVHlwZURlZlJlc29sdmVyLmpzICovOyB9OwotCQlFOTJE
MTE5NzIwRjcwNjBFMDBENzc2QjIgLyogVHlwZWRWYWx1ZS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNjAyMEY1NkU5NTAwRDc3NkIyIC8q
IFR5cGVkVmFsdWUuanMgKi87IH07Ci0JCUU5MkQxMTlBMjBGNzA2MEUwMEQ3NzZCMiAvKiBUeXBl
UmVmLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTJEMTA2NjIwRjU2RUE0MDBENzc2QjIgLyogVHlwZVJlZi5qcyAqLzsgfTsKLQkJRTkyRDExOUQy
MEY3MDYwRTAwRDc3NkIyIC8qIFVpbnRMaXRlcmFsLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA2ODIwRjU2RUE0MDBENzc2QjIgLyogVWlu
dExpdGVyYWwuanMgKi87IH07Ci0JCUU5MkQxMTlFMjBGNzA2MEUwMEQ3NzZCMiAvKiBVaW50TGl0
ZXJhbFR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5MkQxMDY3MjBGNTZFQTQwMEQ3NzZCMiAvKiBVaW50TGl0ZXJhbFR5cGUuanMgKi87IH07
Ci0JCUU5MkQxMTlGMjBGNzA2MEUwMEQ3NzZCMiAvKiBVbmlmaWNhdGlvbkNvbnRleHQuanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDcyMjBG
NTZFQkIwMEQ3NzZCMiAvKiBVbmlmaWNhdGlvbkNvbnRleHQuanMgKi87IH07Ci0JCUU5MkQxMUEw
MjBGNzA2MEUwMEQ3NzZCMiAvKiBVbnJlYWNoYWJsZUNvZGVDaGVja2VyLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3MzIwRjU2RUJDMDBE
Nzc2QjIgLyogVW5yZWFjaGFibGVDb2RlQ2hlY2tlci5qcyAqLzsgfTsKLQkJRTkyRDExQTEyMEY3
MDYwRTAwRDc3NkIyIC8qIFZhbHVlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3NDIwRjU2RUJDMDBENzc2QjIgLyogVmFsdWUuanMgKi87
IH07Ci0JCUU5MkQxMUEyMjBGNzA2MEUwMEQ3NzZCMiAvKiBWYXJpYWJsZURlY2wuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDcwMjBGNTZF
QkIwMEQ3NzZCMiAvKiBWYXJpYWJsZURlY2wuanMgKi87IH07Ci0JCUU5MkQxMUEzMjBGNzA2MEUw
MEQ3NzZCMiAvKiBWYXJpYWJsZVJlZi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNzEyMEY1NkVCQjAwRDc3NkIyIC8qIFZhcmlhYmxlUmVm
LmpzICovOyB9OwotCQlFOTJEMTFBNDIwRjcwNjBFMDBENzc2QjIgLyogVmlzaXRpbmdTZXQuanMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDdD
MjBGNTZFQ0YwMEQ3NzZCMiAvKiBWaXNpdGluZ1NldC5qcyAqLzsgfTsKLQkJRTkyRDExQTUyMEY3
MDYwRTAwRDc3NkIyIC8qIFZpc2l0b3IuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDdBMjBGNTZFQ0YwMEQ3NzZCMiAvKiBWaXNpdG9yLmpz
ICovOyB9OwotCQlFOTJEMTFBNjIwRjcwNjBFMDBENzc2QjIgLyogV2hpbGVMb29wLmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3RDIwRjU2
RUNGMDBENzc2QjIgLyogV2hpbGVMb29wLmpzICovOyB9OwotCQlFOTJEMTFBNzIwRjcwNjBFMDBE
Nzc2QjIgLyogV3JhcENoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5MkQxMDdCMjBGNTZFQ0YwMEQ3NzZCMiAvKiBXcmFwQ2hlY2tlci5q
cyAqLzsgfTsKLQkJRTkyRDExQTgyMEY3MDYwRTAwRDc3NkIyIC8qIFdTeW50YXhFcnJvci5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwODIy
MEY1NkVERTAwRDc3NkIyIC8qIFdTeW50YXhFcnJvci5qcyAqLzsgfTsKLQkJRTkyRDExQTkyMEY3
MDYwRTAwRDc3NkIyIC8qIFdUcmFwRXJyb3IuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDg0MjBGNTZFREUwMEQ3NzZCMiAvKiBXVHJhcEVy
cm9yLmpzICovOyB9OwotCQlFOTJEMTFBQTIwRjcwNjBFMDBENzc2QjIgLyogV1R5cGVFcnJvci5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEw
ODMyMEY1NkVERTAwRDc3NkIyIC8qIFdUeXBlRXJyb3IuanMgKi87IH07Ci0JCUU5MkQxMUFEMjBG
NzA4MTUwMEQ3NzZCMiAvKiBPZmZzY3JlZW5SZW5kZXJlci5tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDExQUMyMEY3MDgxNTAwRDc3NkIyIC8qIE9m
ZnNjcmVlblJlbmRlcmVyLm0gKi87IH07Ci0JCUU5MkQxMUJCMjBGN0Y2NzMwMEQ3NzZCMiAvKiBD
b21waWxlUmVzdWx0Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTJEMTFCQTIwRjdGNjczMDBENzc2QjIgLyogQ29tcGlsZVJlc3VsdC5tICovOyB9Owot
CQlFOTJFREZGQjIxMTU0NkE0MDA0MkY5NjAgLyogQ3VzdG9tTWV0YWxWaWV3Lm0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJFREZGNjIxMTU0NkE0MDA0
MkY5NjAgLyogQ3VzdG9tTWV0YWxWaWV3Lm0gKi87IH07Ci0JCUU5MkVERkZDMjExNTQ2QTQwMDQy
Rjk2MCAvKiBBcHBEZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTkyRURGRjcyMTE1NDZBNDAwNDJGOTYwIC8qIEFwcERlbGVnYXRlLm0gKi87
IH07Ci0JCUU5MkVERkZEMjExNTQ2QTQwMDQyRjk2MCAvKiBWaWV3Q29udHJvbGxlci5tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRURGRkEyMTE1NDZB
NDAwNDJGOTYwIC8qIFZpZXdDb250cm9sbGVyLm0gKi87IH07Ci0JCUU5MkVFMDAwMjExNTQ2QUIw
MDQyRjk2MCAvKiBNYWluLnN0b3J5Ym9hcmQgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkVERkZFMjExNTQ2QUIwMDQyRjk2MCAvKiBNYWluLnN0b3J5
Ym9hcmQgKi87IH07Ci0JCUU5MkVFMDA0MjExNTQ5QzUwMDQyRjk2MCAvKiBUZXN0Q2FsbEFyZ3Vt
ZW50Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJF
RTAwMzIxMTU0OUM1MDA0MkY5NjAgLyogVGVzdENhbGxBcmd1bWVudC5tICovOyB9OwotCQlFOTJF
RTAwNzIxMTU0QUM0MDA0MkY5NjAgLyogVGVzdEZhbWlseS5tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRUUwMDYyMTE1NEFDNDAwNDJGOTYwIC8qIFRl
c3RGYW1pbHkubSAqLzsgfTsKLQkJRTkyRUUwMEEyMTE1NEI1QTAwNDJGOTYwIC8qIFRlc3REZXNj
cmlwdGlvbi5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTkyRUUwMDkyMTE1NEI1QTAwNDJGOTYwIC8qIFRlc3REZXNjcmlwdGlvbi5tICovOyB9OwotCQlF
OTJFRTAwQzIxMTU1NDk4MDA0MkY5NjAgLyogX1NoYXJlZE1ldGFsLnR4dCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRUUwMEIyMTE1NTQ5ODAwNDJG
OTYwIC8qIF9TaGFyZWRNZXRhbC50eHQgKi87IH07Ci0JCUU5MkVFMDBGMjExNTYzMzAwMDQyRjk2
MCAvKiBUZXN0RmFtaWx5UnVubmVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOTJFRTAwRTIxMTU2MzMwMDA0MkY5NjAgLyogVGVzdEZhbWlseVJ1bm5l
ci5tICovOyB9OwotCQlFOTQxQUNCRjIxMzRBNUJDMDAzOTJCQTkgLyogQ2hlY2tUeXBlc1dpdGhB
cmd1bWVudHMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5NDFBQ0FFMjEzNEE1QkEwMDM5MkJBOSAvKiBDaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5q
cyAqLzsgfTsKLQkJRTk0MUFDQzAyMTM0QTVCQzAwMzkyQkE5IC8qIFN5bnRoZXNpemVDb3B5Q29u
c3RydWN0b3JPcGVyYXRvci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTk0MUFDQUYyMTM0QTVCQTAwMzkyQkE5IC8qIFN5bnRoZXNpemVDb3B5Q29u
c3RydWN0b3JPcGVyYXRvci5qcyAqLzsgfTsKLQkJRTk0MUFDQzQyMTM0QTVCQzAwMzkyQkE5IC8q
IFN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk0MUFDQjMyMTM0QTVCQjAwMzkyQkE5
IC8qIFN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyAqLzsgfTsKLQkJRTk0
MUFDQzYyMTM0QTVCQzAwMzkyQkE5IC8qIFRlcm5hcnlFeHByZXNzaW9uLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCNTIxMzRBNUJCMDAz
OTJCQTkgLyogVGVybmFyeUV4cHJlc3Npb24uanMgKi87IH07Ci0JCUU5NDFBQ0M3MjEzNEE1QkMw
MDM5MkJBOSAvKiBPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCNjIxMzRBNUJCMDAzOTJCQTkgLyog
T3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyAqLzsgfTsKLQkJRTk0MUFDQzgyMTM0QTVCQzAwMzky
QkE5IC8qIFN5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCNzIxMzRBNUJCMDAzOTJCQTkg
LyogU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanMgKi87IH07Ci0JCUU5NDFBQ0NBMjEz
NEE1QkMwMDM5MkJBOSAvKiBCdWlsdGluVmVjdG9yR2V0dGVyLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCOTIxMzRBNUJCMDAzOTJCQTkg
LyogQnVpbHRpblZlY3RvckdldHRlci5qcyAqLzsgfTsKLQkJRTk0MUFDQ0IyMTM0QTVCQzAwMzky
QkE5IC8qIFR5cGVPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCQTIxMzRBNUJCMDAzOTJCQTkg
LyogVHlwZU92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMgKi87IH07Ci0JCUU5NDFBQ0NDMjEz
NEE1QkMwMDM5MkJBOSAvKiBWZWN0b3JUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCQjIxMzRBNUJCMDAzOTJCQTkgLyogVmVjdG9y
VHlwZS5qcyAqLzsgfTsKLQkJRTk0MUFDQ0QyMTM0QTVCQzAwMzkyQkE5IC8qIEJ1aWx0aW5WZWN0
b3JTZXR0ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5NDFBQ0JDMjEzNEE1QkIwMDM5MkJBOSAvKiBCdWlsdGluVmVjdG9yU2V0dGVyLmpzICov
OyB9OwotCQlFOTRDMDZDQTIwRjU2QTQyMDA2NzI5OTIgLyogQXNzZXRzLnhjYXNzZXRzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTRDMDZDOTIwRjU2
QTQyMDA2NzI5OTIgLyogQXNzZXRzLnhjYXNzZXRzICovOyB9OwotCQlFOTRDMDZEMDIwRjU2QTQy
MDA2NzI5OTIgLyogbWFpbi5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk0QzA2Q0YyMEY1NkE0MjAwNjcyOTkyIC8qIG1haW4ubSAqLzsgfTsKLQkJRTk0
QzA2REIyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNMX1RveVRlc3RzLm0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTRDMDZEQTIwRjU2QTQyMDA2NzI5OTIg
LyogV0hMU0xfVG95VGVzdHMubSAqLzsgfTsKLQkJRTk0RDEyNEYyMTE0QkQ3NjAwQjBGOTY3IC8q
IE1hbmRlbGJyb3Qud2hsc2wgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU5NEQxMjRFMjExNEJENzYwMEIwRjk2NyAvKiBNYW5kZWxicm90LndobHNsICov
OyB9OwotCQlFOTREMTI3RjIxMTRDNkZGMDBCMEY5NjcgLyogVGVzdC5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk0RDEyN0UyMTE0QzZGRjAwQjBG
OTY3IC8qIFRlc3QuanMgKi87IH07Ci0JCUU5NzNFNUNFMjEzRjMzODUwMDVENzlGQyAvKiBNU0xG
dW5jdGlvbkZvcndhcmREZWNsYXJhdGlvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTk3M0U1QzcyMTNGMzM4NTAwNUQ3OUZDIC8qIE1TTEZ1bmN0
aW9uRm9yd2FyZERlY2xhcmF0aW9uLmpzICovOyB9OwotCQlFOTczRTVDRjIxM0YzMzg1MDA1RDc5
RkMgLyogTVNMU3RhdGVtZW50RW1pdHRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTk3M0U1QzgyMTNGMzM4NTAwNUQ3OUZDIC8qIE1TTFN0YXRl
bWVudEVtaXR0ZXIuanMgKi87IH07Ci0JCUU5NzNFNURFMjEzRjM0MUQwMDVENzlGQyAvKiBNU0xG
dW5jdGlvbkRlY2xhcmF0aW9uLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOTI3ODlBQzIxM0YzMzY0MDAxRUE3M0UgLyogTVNMRnVuY3Rpb25EZWNs
YXJhdGlvbi5qcyAqLzsgfTsKLQkJRTk3M0U1REYyMTNGMzQxRDAwNUQ3OUZDIC8qIE1TTEZ1bmN0
aW9uRGVmaW5pdGlvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTkyNzg5QUIyMTNGMzM2NDAwMUVBNzNFIC8qIE1TTEZ1bmN0aW9uRGVmaW5pdGlv
bi5qcyAqLzsgfTsKLQkJRTk3M0U1RTMyMTNGMzQxRDAwNUQ3OUZDIC8qIFR5cGVPZi5qcyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyNzg5QjAyMTNG
MzM2NDAwMUVBNzNFIC8qIFR5cGVPZi5qcyAqLzsgfTsKLQkJRTlCQzUwREEyMTU1QUQxRTAwMDU5
NEU4IC8qIEFsbG9jYXRlQXRFbnRyeVBvaW50cy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlCQzUwRDkyMTU1QUQxRTAwMDU5NEU4IC8qIEFsbG9j
YXRlQXRFbnRyeVBvaW50cy5qcyAqLzsgfTsKLQkJRTlEN0NCOTcyMTRCODI0MjAwRjFDOTE4IC8q
IFdobHNsVG9Nc2wuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5RDdDQjk0MjE0QjgyNDIwMEYxQzkxOCAvKiBXaGxzbFRvTXNsLmpzICovOyB9Owot
CQlFOUQ3Q0I5ODIxNEI4MjQyMDBGMUM5MTggLyogTVNMQmFja2VuZC5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOTUyMTRCODI0MjAwRjFD
OTE4IC8qIE1TTEJhY2tlbmQuanMgKi87IH07Ci0JCUU5RDdDQjk5MjE0QjgyNDIwMEYxQzkxOCAv
KiBNU0xDb25zdGV4cHJFbWl0dGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFOUQ3Q0I5NjIxNEI4MjQyMDBGMUM5MTggLyogTVNMQ29uc3RleHBy
RW1pdHRlci5qcyAqLzsgfTsKLQkJRTlEN0NCQTAyMTRCODJCODAwRjFDOTE4IC8qIFRleHR1cmUu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RDdD
QjlBMjE0QjgyQjcwMEYxQzkxOCAvKiBUZXh0dXJlLmpzICovOyB9OwotCQlFOUQ3Q0JBMTIxNEI4
MkI4MDBGMUM5MTggLyogTGF5b3V0QnVmZmVycy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOUIyMTRCODJCNzAwRjFDOTE4IC8qIExheW91
dEJ1ZmZlcnMuanMgKi87IH07Ci0JCUU5RDdDQkEyMjE0QjgyQjgwMEYxQzkxOCAvKiBDYXN0cy5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NC
OUMyMTRCODJCNzAwRjFDOTE4IC8qIENhc3RzLmpzICovOyB9OwotCQlFOUQ3Q0JBMzIxNEI4MkI4
MDBGMUM5MTggLyogU2FtcGxlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTlEN0NCOUQyMTRCODJCODAwRjFDOTE4IC8qIFNhbXBsZXIuanMgKi87
IH07Ci0JCUU5RDdDQkE0MjE0QjgyQjgwMEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOUUy
MTRCODJCODAwRjFDOTE4IC8qIFRleHR1cmVPcGVyYXRpb25zLmpzICovOyB9OwotCQlFOUQ3Q0JB
NTIxNEI4MkI4MDBGMUM5MTggLyogV0xleGljYWxFcnJvci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOUYyMTRCODJCODAwRjFDOTE4IC8q
IFdMZXhpY2FsRXJyb3IuanMgKi87IH07Ci0JCUU5RDdDQkE2MjE0QjlFNUYwMEYxQzkxOCAvKiBN
U0xDb2RlZ2VuQWxsLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFOTdFRDdFNTIxNEI4MjI5MDBBRDExNDAgLyogTVNMQ29kZWdlbkFsbC5qcyAqLzsg
fTsKLQkJRTlEN0NCQTcyMTRCOUU1RjAwRjFDOTE4IC8qIE1TTENvbXBpbGVSZXN1bHQuanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5N0VEN0U4MjE0
QjgyMjkwMEFEMTE0MCAvKiBNU0xDb21waWxlUmVzdWx0LmpzICovOyB9OwotCQlFOUQ3Q0JBODIx
NEI5RTVGMDBGMUM5MTggLyogTVNMTmFtZU1hbmdsZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5N0VEN0UxMjE0QjgyMjkwMEFEMTE0MCAvKiBN
U0xOYW1lTWFuZ2xlci5qcyAqLzsgfTsKLQkJRTlEN0NCQTkyMTRCOUU1RjAwRjFDOTE4IC8qIE1T
TE5hdGl2ZUZ1bmN0aW9uQ2FsbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTk3RUQ3RTQyMTRCODIyOTAwQUQxMTQwIC8qIE1TTE5hdGl2ZUZ1bmN0
aW9uQ2FsbC5qcyAqLzsgfTsKLQkJRTlEN0NCQUEyMTRCOUU1RjAwRjFDOTE4IC8qIE1TTFR5cGVB
dHRyaWJ1dGVzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTdFRDdFNzIxNEI4MjI5MDBBRDExNDAgLyogTVNMVHlwZUF0dHJpYnV0ZXMuanMgKi87
IH07Ci0JCUU5RDdDQkFCMjE0QjlFNUYwMEYxQzkxOCAvKiBNU0xUeXBlQXR0cmlidXRlc01hcC5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk3RUQ3
RTIyMTRCODIyOTAwQUQxMTQwIC8qIE1TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzICovOyB9OwotCQlF
OUQ3Q0JBQzIxNEI5RTVGMDBGMUM5MTggLyogTVNMVHlwZVVuaWZpZXIuanMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5N0VEN0U2MjE0QjgyMjkwMEFE
MTE0MCAvKiBNU0xUeXBlVW5pZmllci5qcyAqLzsgfTsKLS8qIEVuZCBQQlhCdWlsZEZpbGUgc2Vj
dGlvbiAqLwotCi0vKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwotCQlF
OTRDMDZENzIwRjU2QTQyMDA2NzI5OTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewot
CQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gRTk0
QzA2QjgyMEY1NkE0MDAwNjcyOTkyIC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBl
ID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gRTk0QzA2QkYyMEY1NkE0MDAwNjcyOTky
OwotCQkJcmVtb3RlSW5mbyA9ICJXSExTTCBUb3kiOwotCQl9OwotLyogRW5kIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlv
biAqLwotCQkzMUYxMTZDNDIxNkJGRTkwMDA5QTM2RDUgLyogRnVuY0F0dHJpYnV0ZS5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZ1bmNBdHRyaWJ1dGUuanM7IHBh
dGggPSAuLi8uLi8uLi9GdW5jQXR0cmlidXRlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkzMUYxMTZDNTIxNkJGRTkwMDA5QTM2RDUgLyogQnVpbHRJblNlbWFudGljLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQnVpbHRJblNlbWFudGljLmpzOyBw
YXRoID0gLi4vLi4vLi4vQnVpbHRJblNlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkzMUYxMTcwNDIxNkJGRTkwMDA5QTM2RDUgLyogUmVzb3VyY2VTZW1hbnRpYy5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlc291cmNlU2VtYW50aWMu
anM7IHBhdGggPSAuLi8uLi8uLi9SZXNvdXJjZVNlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkzMUYxMTcwNTIxNkJGRTkxMDA5QTM2RDUgLyogRnVuY051bVRocmVhZHNB
dHRyaWJ1dGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBGdW5j
TnVtVGhyZWFkc0F0dHJpYnV0ZS5qczsgcGF0aCA9IC4uLy4uLy4uL0Z1bmNOdW1UaHJlYWRzQXR0
cmlidXRlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUYxMTcwNjIxNkJGRTkx
MDA5QTM2RDUgLyogU2VtYW50aWMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBTZW1hbnRpYy5qczsgcGF0aCA9IC4uLy4uLy4uL1NlbWFudGljLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkzMUYxMTcwNzIxNkJGRTkyMDA5QTM2RDUgLyogQ2hlY2tO
YXRpdmVGdW5jU3RhZ2VzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gQ2hlY2tOYXRpdmVGdW5jU3RhZ2VzLmpzOyBwYXRoID0gLi4vLi4vLi4vQ2hlY2tOYXRpdmVG
dW5jU3RhZ2VzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUYxMTcwODIxNkJG
RTkyMDA5QTM2RDUgLyogU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3BlY2lhbGl6YXRpb25Db25zdGFudFNl
bWFudGljLmpzOyBwYXRoID0gLi4vLi4vLi4vU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGlj
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUYxMTczNzIxNkJGRUVCMDA5QTM2
RDUgLyogU3RhZ2VJbk91dFNlbWFudGljLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBuYW1lID0gU3RhZ2VJbk91dFNlbWFudGljLmpzOyBwYXRoID0gLi4vLi4vLi4vU3RhZ2VJ
bk91dFNlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUYxMTc5RTIx
NkJGRjA3MDA5QTM2RDUgLyogTVNMSW5zZXJ0VHJhcFBhcmFtZXRlci5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTEluc2VydFRyYXBQYXJhbWV0ZXIuanM7IHBh
dGggPSAuLi8uLi9NU0xJbnNlcnRUcmFwUGFyYW1ldGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFOTA2QjA0NTIxMTM5Qjc3MDBBRDFDNUUgLyogSnVsaWEud2hsc2wgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gSnVsaWEud2hsc2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUU5MjFENjMyMjEzOEMwMjYwMDc3NTA5OSAvKiBPcGVyYXRvckFuZGVySW5kZXhlci5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE9wZXJhdG9yQW5kZXJJbmRl
eGVyLmpzOyBwYXRoID0gLi4vLi4vLi4vT3BlcmF0b3JBbmRlckluZGV4ZXIuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MjFENjMzMjEzOEMwMjYwMDc3NTA5OSAvKiBNYXRyaXhU
eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTWF0cml4VHlw
ZS5qczsgcGF0aCA9IC4uLy4uLy4uL01hdHJpeFR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MjFENjM0MjEzOEMwMjYwMDc3NTA5OSAvKiBCdWlsdGluTWF0cml4R2V0dGVy
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQnVpbHRpbk1hdHJp
eEdldHRlci5qczsgcGF0aCA9IC4uLy4uLy4uL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MjFENjM1MjEzOEMwMjYwMDc3NTA5OSAvKiBCdWls
dGluTWF0cml4U2V0dGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gQnVpbHRpbk1hdHJpeFNldHRlci5qczsgcGF0aCA9IC4uLy4uLy4uL0J1aWx0aW5NYXRyaXhT
ZXR0ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5Mjc4OUFCMjEzRjMzNjQw
MDFFQTczRSAvKiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBNU0xGdW5jdGlvbkRlZmluaXRpb24uanM7IHBhdGggPSAuLi8uLi9NU0xGdW5jdGlvbkRlZmlu
aXRpb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5Mjc4OUFDMjEzRjMzNjQw
MDFFQTczRSAvKiBNU0xGdW5jdGlvbkRlY2xhcmF0aW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gTVNMRnVuY3Rpb25EZWNsYXJhdGlvbi5qczsgcGF0aCA9IC4uLy4uL01TTEZ1bmN0aW9uRGVj
bGFyYXRpb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5Mjc4OUIwMjEzRjMz
NjQwMDFFQTczRSAvKiBUeXBlT2YuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBUeXBlT2YuanM7
IHBhdGggPSAuLi8uLi9UeXBlT2YuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
MkQwRkU0MjBGNTZEREQwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gSW50TGl0ZXJhbC5qczsgcGF0aCA9IC4uLy4uLy4uL0lu
dExpdGVyYWwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkU1MjBGNTZE
REQwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsVHlwZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IEludExpdGVyYWxUeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4vSW50TGl0
ZXJhbFR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkU3MjBGNTZE
REQwMEQ3NzZCMiAvKiBJbnRyaW5zaWNzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBuYW1lID0gSW50cmluc2ljcy5qczsgcGF0aCA9IC4uLy4uLy4uL0ludHJpbnNpY3MuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkU4MjBGNTZEREQwMEQ3NzZCMiAv
KiBJbmxpbmVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gSW5s
aW5lci5qczsgcGF0aCA9IC4uLy4uLy4uL0lubGluZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQwRkVFMjBGNTZERUIwMEQ3NzZCMiAvKiBMb2dpY2FsRXhwcmVzc2lvbi5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IExvZ2ljYWxFeHByZXNz
aW9uLmpzOyBwYXRoID0gLi4vLi4vLi4vTG9naWNhbEV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkVGMjBGNTZERUIwMEQ3NzZCMiAvKiBMb2dpY2FsTm90
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTG9naWNhbE5vdC5q
czsgcGF0aCA9IC4uLy4uLy4uL0xvZ2ljYWxOb3QuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5MkQwRkYwMjBGNTZERUIwMEQ3NzZCMiAvKiBMZXhlclRva2VuLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTGV4ZXJUb2tlbi5qczsgcGF0aCA9IC4u
Ly4uLy4uL0xleGVyVG9rZW4uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQw
RkYxMjBGNTZERUMwMEQ3NzZCMiAvKiBMZXhlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IExleGVyLmpzOyBwYXRoID0gLi4vLi4vLi4vTGV4ZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkYyMjBGNTZERUMwMEQ3NzZCMiAvKiBMaXRl
cmFsVHlwZUNoZWNrZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBMaXRlcmFsVHlwZUNoZWNrZXIuanM7IHBhdGggPSAuLi8uLi8uLi9MaXRlcmFsVHlwZUNoZWNr
ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkY4MjBGNTZERkEwMEQ3
NzZCMiAvKiBOYW1lQ29udGV4dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
bmFtZSA9IE5hbWVDb250ZXh0LmpzOyBwYXRoID0gLi4vLi4vLi4vTmFtZUNvbnRleHQuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkY5MjBGNTZERkEwMEQ3NzZCMiAvKiBN
YWtlUHRyRXhwcmVzc2lvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFt
ZSA9IE1ha2VQdHJFeHByZXNzaW9uLmpzOyBwYXRoID0gLi4vLi4vLi4vTWFrZVB0ckV4cHJlc3Np
b24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkZBMjBGNTZERkIwMEQ3
NzZCMiAvKiBOYW1lRmluZGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBu
YW1lID0gTmFtZUZpbmRlci5qczsgcGF0aCA9IC4uLy4uLy4uL05hbWVGaW5kZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQwRkZCMjBGNTZERkIwMEQ3NzZCMiAvKiBMb29w
Q2hlY2tlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IExvb3BD
aGVja2VyLmpzOyBwYXRoID0gLi4vLi4vLi4vTG9vcENoZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkQwRkZDMjBGNTZERkIwMEQ3NzZCMiAvKiBNYWtlQXJyYXlSZWZF
eHByZXNzaW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTWFr
ZUFycmF5UmVmRXhwcmVzc2lvbi5qczsgcGF0aCA9IC4uLy4uLy4uL01ha2VBcnJheVJlZkV4cHJl
c3Npb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDAzMjBGNTZFMDkw
MEQ3NzZCMiAvKiBOYW1lUmVzb2x2ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBOYW1lUmVzb2x2ZXIuanM7IHBhdGggPSAuLi8uLi8uLi9OYW1lUmVzb2x2ZXIu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDA1MjBGNTZFMDkwMEQ3NzZC
MiAvKiBOYXRpdmVGdW5jLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gTmF0aXZlRnVuYy5qczsgcGF0aCA9IC4uLy4uLy4uL05hdGl2ZUZ1bmMuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDA2MjBGNTZFMDkwMEQ3NzZCMiAvKiBOYXRpdmVU
eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTmF0aXZlVHlw
ZS5qczsgcGF0aCA9IC4uLy4uLy4uL05hdGl2ZVR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQxMDBDMjBGNTZFMTUwMEQ3NzZCMiAvKiBOdWxsTGl0ZXJhbC5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE51bGxMaXRlcmFsLmpzOyBwYXRo
ID0gLi4vLi4vLi4vTnVsbExpdGVyYWwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5MkQxMDBEMjBGNTZFMTUwMEQ3NzZCMiAvKiBOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTm9ybWFsVXNlUHJvcGVy
dHlSZXNvbHZlci5qczsgcGF0aCA9IC4uLy4uLy4uL05vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDBFMjBGNTZFMTUwMEQ3NzZC
MiAvKiBPcmlnaW5LaW5kLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gT3JpZ2luS2luZC5qczsgcGF0aCA9IC4uLy4uLy4uL09yaWdpbktpbmQuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDBGMjBGNTZFMTUwMEQ3NzZCMiAvKiBOb2RlLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTm9kZS5qczsgcGF0aCA9
IC4uLy4uLy4uL05vZGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDEw
MjBGNTZFMTUwMEQ3NzZCMiAvKiBOdWxsVHlwZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IE51bGxUeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4vTnVsbFR5cGUuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDE2MjBGNTZFMjEwMEQ3NzZCMiAv
KiBQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1v
dmVkLmpzOyBwYXRoID0gLi4vLi4vLi4vUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92
ZWQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDE3MjBGNTZFMjIwMEQ3
NzZCMiAvKiBQYXJzZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IFBhcnNlLmpzOyBwYXRoID0gLi4vLi4vLi4vUGFyc2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQxMDE4MjBGNTZFMjIwMEQ3NzZCMiAvKiBQcmVwYXJlLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUHJlcGFyZS5qczsgcGF0aCA9IC4uLy4u
Ly4uL1ByZXBhcmUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDE5MjBG
NTZFMjIwMEQ3NzZCMiAvKiBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5q
czsgcGF0aCA9IC4uLy4uLy4uL092ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDFBMjBGNTZFMjIwMEQ3NzZCMiAvKiBQcm9ncmFt
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUHJvZ3JhbS5qczsg
cGF0aCA9IC4uLy4uLy4uL1Byb2dyYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5MkQxMDIwMjBGNTZFMkYwMEQ3NzZCMiAvKiBQcm9wZXJ0eVJlc29sdmVyLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUHJvcGVydHlSZXNvbHZlci5qczsgcGF0
aCA9IC4uLy4uLy4uL1Byb3BlcnR5UmVzb2x2ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5MkQxMDIzMjBGNTZFMkYwMEQ3NzZCMiAvKiBQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Np
b24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBQcm9wZXJ0eUFj
Y2Vzc0V4cHJlc3Npb24uanM7IHBhdGggPSAuLi8uLi8uLi9Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Np
b24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDJBMjBGNTZFM0YwMEQ3
NzZCMiAvKiBSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qczsgcGF0aCA9
IC4uLy4uLy4uL1JlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkQxMDJCMjBGNTZFM0YwMEQ3NzZCMiAvKiBQdHJUeXBlLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUHRyVHlwZS5qczsgcGF0aCA9IC4u
Ly4uLy4uL1B0clR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDJD
MjBGNTZFM0YwMEQ3NzZCMiAvKiBSZWN1cnNpb25DaGVja2VyLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmVjdXJzaW9uQ2hlY2tlci5qczsgcGF0aCA9IC4uLy4u
Ly4uL1JlY3Vyc2lvbkNoZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
MkQxMDJFMjBGNTZFNDAwMEQ3NzZCMiAvKiBSZWN1cnNpdmVUeXBlQ2hlY2tlci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlY3Vyc2l2ZVR5cGVDaGVja2VyLmpz
OyBwYXRoID0gLi4vLi4vLi4vUmVjdXJzaXZlVHlwZUNoZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkQxMDM0MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZXNvbHZlTmFtZXMu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBSZXNvbHZlTmFtZXMu
anM7IHBhdGggPSAuLi8uLi8uLi9SZXNvbHZlTmFtZXMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQxMDM1MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZWZlcmVuY2VUeXBlLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmVmZXJlbmNlVHlwZS5qczsg
cGF0aCA9IC4uLy4uLy4uL1JlZmVyZW5jZVR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5MkQxMDM2MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZXNvbHZlUHJvcGVydGllcy5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlc29sdmVQcm9wZXJ0aWVz
LmpzOyBwYXRoID0gLi4vLi4vLi4vUmVzb2x2ZVByb3BlcnRpZXMuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkQxMDM3MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZXNvbHZlVHlwZURl
ZnMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBSZXNvbHZlVHlw
ZURlZnMuanM7IHBhdGggPSAuLi8uLi8uLi9SZXNvbHZlVHlwZURlZnMuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDM4MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZXNvbHZlT3Zl
cmxvYWRJbXBsLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmVz
b2x2ZU92ZXJsb2FkSW1wbC5qczsgcGF0aCA9IC4uLy4uLy4uL1Jlc29sdmVPdmVybG9hZEltcGwu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDNFMjBGNTZFNjEwMEQ3NzZC
MiAvKiBSZXR1cm4uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBS
ZXR1cm4uanM7IHBhdGggPSAuLi8uLi8uLi9SZXR1cm4uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQxMDNGMjBGNTZFNjIwMEQ3NzZCMiAvKiBTdGFuZGFyZExpYnJhcnkuanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBTdGFuZGFyZExpYnJhcnku
anM7IHBhdGggPSAuLi8uLi8uLi9TdGFuZGFyZExpYnJhcnkuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkQxMDQwMjBGNTZFNjIwMEQ3NzZCMiAvKiBSZXR1cm5DaGVja2VyLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmV0dXJuQ2hlY2tlci5q
czsgcGF0aCA9IC4uLy4uLy4uL1JldHVybkNoZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQxMDQxMjBGNTZFNjIwMEQ3NzZCMiAvKiBSZXdyaXRlci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJld3JpdGVyLmpzOyBwYXRoID0gLi4v
Li4vLi4vUmV3cml0ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDQy
MjBGNTZFNjIwMEQ3NzZCMiAvKiBSZXR1cm5FeGNlcHRpb24uanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBSZXR1cm5FeGNlcHRpb24uanM7IHBhdGggPSAuLi8uLi8u
Li9SZXR1cm5FeGNlcHRpb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQx
MDQ4MjBGNTZFNzMwMEQ3NzZCMiAvKiBTdGF0ZW1lbnRDbG9uZXIuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBTdGF0ZW1lbnRDbG9uZXIuanM7IHBhdGggPSAuLi8u
Li8uLi9TdGF0ZW1lbnRDbG9uZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
MkQxMDQ5MjBGNTZFNzMwMEQ3NzZCMiAvKiBTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3RydWN0TGF5b3V0QnVpbGRlci5qczsg
cGF0aCA9IC4uLy4uLy4uL1N0cnVjdExheW91dEJ1aWxkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkQxMDRBMjBGNTZFNzMwMEQ3NzZCMiAvKiBTdHJ1Y3RUeXBlLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3RydWN0VHlwZS5qczsgcGF0
aCA9IC4uLy4uLy4uL1N0cnVjdFR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5MkQxMDRCMjBGNTZFNzMwMEQ3NzZCMiAvKiBTd2l0Y2hDYXNlLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3dpdGNoQ2FzZS5qczsgcGF0aCA9IC4uLy4uLy4u
L1N3aXRjaENhc2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDUyMjBG
NTZFODQwMEQ3NzZCMiAvKiBTd2l0Y2hTdGF0ZW1lbnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IG5hbWUgPSBTd2l0Y2hTdGF0ZW1lbnQuanM7IHBhdGggPSAuLi8uLi8uLi9T
d2l0Y2hTdGF0ZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDUz
MjBGNTZFODQwMEQ3NzZCMiAvKiBTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29y
cy5qczsgcGF0aCA9IC4uLy4uLy4uL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDU0MjBGNTZFODUwMEQ3NzZCMiAvKiBTeW50
aGVzaXplRW51bUZ1bmN0aW9ucy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
bmFtZSA9IFN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzOyBwYXRoID0gLi4vLi4vLi4vU3ludGhl
c2l6ZUVudW1GdW5jdGlvbnMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQx
MDU1MjBGNTZFODUwMEQ3NzZCMiAvKiBUeXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBuYW1lID0gVHlwZS5qczsgcGF0aCA9IC4uLy4uLy4uL1R5cGUuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDU2MjBGNTZFODUwMEQ3NzZCMiAvKiBUcmFwU3Rh
dGVtZW50LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHJhcFN0
YXRlbWVudC5qczsgcGF0aCA9IC4uLy4uLy4uL1RyYXBTdGF0ZW1lbnQuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDVFMjBGNTZFOTUwMEQ3NzZCMiAvKiBUeXBlRGVmUmVz
b2x2ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBUeXBlRGVm
UmVzb2x2ZXIuanM7IHBhdGggPSAuLi8uLi8uLi9UeXBlRGVmUmVzb2x2ZXIuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDVGMjBGNTZFOTUwMEQ3NzZCMiAvKiBUeXBlRGVm
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHlwZURlZi5qczsg
cGF0aCA9IC4uLy4uLy4uL1R5cGVEZWYuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5MkQxMDYwMjBGNTZFOTUwMEQ3NzZCMiAvKiBUeXBlZFZhbHVlLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHlwZWRWYWx1ZS5qczsgcGF0aCA9IC4uLy4uLy4u
L1R5cGVkVmFsdWUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDY2MjBG
NTZFQTQwMEQ3NzZCMiAvKiBUeXBlUmVmLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBuYW1lID0gVHlwZVJlZi5qczsgcGF0aCA9IC4uLy4uLy4uL1R5cGVSZWYuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDY3MjBGNTZFQTQwMEQ3NzZCMiAvKiBVaW50
TGl0ZXJhbFR5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBV
aW50TGl0ZXJhbFR5cGUuanM7IHBhdGggPSAuLi8uLi8uLi9VaW50TGl0ZXJhbFR5cGUuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDY4MjBGNTZFQTQwMEQ3NzZCMiAvKiBV
aW50TGl0ZXJhbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFVp
bnRMaXRlcmFsLmpzOyBwYXRoID0gLi4vLi4vLi4vVWludExpdGVyYWwuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDcwMjBGNTZFQkIwMEQ3NzZCMiAvKiBWYXJpYWJsZURl
Y2wuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBWYXJpYWJsZURl
Y2wuanM7IHBhdGggPSAuLi8uLi8uLi9WYXJpYWJsZURlY2wuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkQxMDcxMjBGNTZFQkIwMEQ3NzZCMiAvKiBWYXJpYWJsZVJlZi5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFZhcmlhYmxlUmVmLmpzOyBw
YXRoID0gLi4vLi4vLi4vVmFyaWFibGVSZWYuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUU5MkQxMDcyMjBGNTZFQkIwMEQ3NzZCMiAvKiBVbmlmaWNhdGlvbkNvbnRleHQuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBVbmlmaWNhdGlvbkNvbnRleHQu
anM7IHBhdGggPSAuLi8uLi8uLi9VbmlmaWNhdGlvbkNvbnRleHQuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkQxMDczMjBGNTZFQkMwMEQ3NzZCMiAvKiBVbnJlYWNoYWJsZUNv
ZGVDaGVja2VyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVW5y
ZWFjaGFibGVDb2RlQ2hlY2tlci5qczsgcGF0aCA9IC4uLy4uLy4uL1VucmVhY2hhYmxlQ29kZUNo
ZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDc0MjBGNTZFQkMw
MEQ3NzZCMiAvKiBWYWx1ZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFt
ZSA9IFZhbHVlLmpzOyBwYXRoID0gLi4vLi4vLi4vVmFsdWUuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkQxMDdBMjBGNTZFQ0YwMEQ3NzZCMiAvKiBWaXNpdG9yLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVmlzaXRvci5qczsgcGF0aCA9IC4u
Ly4uLy4uL1Zpc2l0b3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDdC
MjBGNTZFQ0YwMEQ3NzZCMiAvKiBXcmFwQ2hlY2tlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IFdyYXBDaGVja2VyLmpzOyBwYXRoID0gLi4vLi4vLi4vV3JhcENo
ZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDdDMjBGNTZFQ0Yw
MEQ3NzZCMiAvKiBWaXNpdGluZ1NldC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IFZpc2l0aW5nU2V0LmpzOyBwYXRoID0gLi4vLi4vLi4vVmlzaXRpbmdTZXQuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDdEMjBGNTZFQ0YwMEQ3NzZCMiAv
KiBXaGlsZUxvb3AuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBX
aGlsZUxvb3AuanM7IHBhdGggPSAuLi8uLi8uLi9XaGlsZUxvb3AuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkQxMDgyMjBGNTZFREUwMEQ3NzZCMiAvKiBXU3ludGF4RXJyb3Iu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBXU3ludGF4RXJyb3Iu
anM7IHBhdGggPSAuLi8uLi8uLi9XU3ludGF4RXJyb3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5MkQxMDgzMjBGNTZFREUwMEQ3NzZCMiAvKiBXVHlwZUVycm9yLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gV1R5cGVFcnJvci5qczsgcGF0aCA9
IC4uLy4uLy4uL1dUeXBlRXJyb3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
MkQxMDg0MjBGNTZFREUwMEQ3NzZCMiAvKiBXVHJhcEVycm9yLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gV1RyYXBFcnJvci5qczsgcGF0aCA9IC4uLy4uLy4uL1dU
cmFwRXJyb3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMDg4MjBGNTZG
MDYwMEQ3NzZCMiAvKiBDb21waWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21waWxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTJEMTA4OTIwRjU2RjA2MDBENzc2QjIgLyogQ29t
cGlsZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gQ29tcGlsZXIubTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTkyRDEwOEMyMEY1NkY0NTAwRDc3NkIyIC8qIE1ldGFsS2l0LmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gTWV0YWxLaXQuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9NZXRhbEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09U
OyB9OwotCQlFOTJEMTA4RTIwRjU2RjRGMDBENzc2QjIgLyogTWV0YWwuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IG5hbWUgPSBNZXRhbC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL01ldGFsLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07Ci0JCUU5MkQx
MDkwMjBGNTZGNTcwMEQ3NzZCMiAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgbmFtZSA9IEphdmFTY3JpcHRDb3JlLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9P
VDsgfTsKLQkJRTkyRDEwOTIyMEY1NzM0OTAwRDc3NkIyIC8qIERlZmF1bHQud2hsc2wgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RGVmYXVsdC53aGxzbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTkyRDEwQUQyMEY1
N0M5RjAwRDc3NkIyIC8qIE9uc2NyZWVuUmVuZGVyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT25zY3Jl
ZW5SZW5kZXJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTJEMTBBRTIwRjU3
QzlGMDBENzc2QjIgLyogT25zY3JlZW5SZW5kZXJlci5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBPbnNj
cmVlblJlbmRlcmVyLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkQxMTEzMjBG
NkZGQjYwMEQ3NzZCMiAvKiBSZW5kZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTJEMTExNDIwRjZGRkI2MDBENzc2QjIgLyog
UmVuZGVyZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gUmVuZGVyZXIubTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTkyRDExQUIyMEY3MDgxNTAwRDc3NkIyIC8qIE9mZnNjcmVlblJlbmRl
cmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9mZnNjcmVlblJlbmRlcmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkQxMUFDMjBGNzA4MTUwMEQ3NzZCMiAvKiBPZmZzY3JlZW5SZW5k
ZXJlci5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLm9iamM7IHBhdGggPSBPZmZzY3JlZW5SZW5kZXJlci5tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFOTJEMTFCOTIwRjdGNjczMDBENzc2QjIgLyogQ29tcGlsZVJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb21waWxlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkQxMUJBMjBGN0Y2NzMwMEQ3NzZCMiAvKiBDb21waWxlUmVzdWx0Lm0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMub2JqYzsgcGF0aCA9IENvbXBpbGVSZXN1bHQubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTkyRURGRjUyMTE1NDZBNDAwNDJGOTYwIC8qIEFwcERlbGVnYXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkVERkY2MjExNTQ2QTQwMDQyRjk2MCAvKiBDdXN0b21NZXRhbFZp
ZXcubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gQ3VzdG9tTWV0YWxWaWV3
Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkVERkY3MjExNTQ2QTQwMDQyRjk2
MCAvKiBBcHBEZWxlZ2F0ZS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBB
cHBEZWxlZ2F0ZS5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTJFREZGODIxMTU0
NkE0MDA0MkY5NjAgLyogQ3VzdG9tTWV0YWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1c3RvbU1ldGFsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFOTJFREZGOTIxMTU0NkE0MDA0MkY5NjAgLyogVmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTkyRURGRkEyMTE1NDZBNDAwNDJGOTYwIC8qIFZpZXdDb250cm9sbGVy
Lm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFZpZXdDb250cm9sbGVyLm07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkVERkZGMjExNTQ2QUIwMDQyRjk2MCAv
KiBCYXNlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
ZmlsZS5zdG9yeWJvYXJkOyBuYW1lID0gQmFzZTsgcGF0aCA9IEJhc2UubHByb2ovTWFpbi5zdG9y
eWJvYXJkOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTJFRTAwMjIxMTU0OUM1MDA0
MkY5NjAgLyogVGVzdENhbGxBcmd1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0Q2FsbEFyZ3Vt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5MkVFMDAzMjExNTQ5QzUwMDQy
Rjk2MCAvKiBUZXN0Q2FsbEFyZ3VtZW50Lm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFRlc3RDYWxsQXJn
dW1lbnQubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTkyRUUwMDUyMTE1NEFDNDAw
NDJGOTYwIC8qIFRlc3RGYW1pbHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdEZhbWlseS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTJFRTAwNjIxMTU0QUM0MDA0MkY5NjAgLyogVGVz
dEZhbWlseS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBUZXN0RmFtaWx5Lm07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5MkVFMDA4MjExNTRCNUEwMDQyRjk2MCAvKiBUZXN0RGVzY3JpcHRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdERlc2NyaXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkVFMDA5MjExNTRCNUEwMDQyRjk2MCAvKiBUZXN0RGVzY3JpcHRpb24u
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5vYmpjOyBwYXRoID0gVGVzdERlc2NyaXB0aW9uLm07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5MkVFMDBCMjExNTU0OTgwMDQyRjk2MCAvKiBfU2hhcmVkTWV0YWwudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IF9TaGFyZWRNZXRhbC50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
MkVFMDBEMjExNTYzMzAwMDQyRjk2MCAvKiBUZXN0RmFtaWx5UnVubmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRlc3RGYW1pbHlSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTky
RUUwMEUyMTE1NjMzMDAwNDJGOTYwIC8qIFRlc3RGYW1pbHlSdW5uZXIubSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBw
YXRoID0gVGVzdEZhbWlseVJ1bm5lci5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
OTQxQUNBRTIxMzRBNUJBMDAzOTJCQTkgLyogQ2hlY2tUeXBlc1dpdGhBcmd1bWVudHMuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDaGVja1R5cGVzV2l0aEFyZ3Vt
ZW50cy5qczsgcGF0aCA9IC4uLy4uLy4uL0NoZWNrVHlwZXNXaXRoQXJndW1lbnRzLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTQxQUNBRjIxMzRBNUJBMDAzOTJCQTkgLyogU3lu
dGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBuYW1lID0gU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOyBw
YXRoID0gLi4vLi4vLi4vU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTQxQUNCMzIxMzRBNUJCMDAzOTJCQTkgLyogU3lu
dGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzOyBwYXRoID0gLi4vLi4vLi4vU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTQxQUNCNTIxMzRBNUJCMDAzOTJC
QTkgLyogVGVybmFyeUV4cHJlc3Npb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBUZXJuYXJ5RXhwcmVzc2lvbi5qczsgcGF0aCA9IC4uLy4uLy4uL1Rlcm5hcnlF
eHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTQxQUNCNjIxMzRB
NUJCMDAzOTJCQTkgLyogT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE9wZXJhdG9yQXJyYXlSZWZMZW5ndGguanM7IHBhdGgg
PSAuLi8uLi8uLi9PcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFOTQxQUNCNzIxMzRBNUJCMDAzOTJCQTkgLyogU3ludGhlc2l6ZUFycmF5T3Bl
cmF0b3JMZW5ndGguanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBT
eW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qczsgcGF0aCA9IC4uLy4uLy4uL1N5bnRoZXNp
emVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
OTQxQUNCOTIxMzRBNUJCMDAzOTJCQTkgLyogQnVpbHRpblZlY3RvckdldHRlci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEJ1aWx0aW5WZWN0b3JHZXR0ZXIuanM7
IHBhdGggPSAuLi8uLi8uLi9CdWlsdGluVmVjdG9yR2V0dGVyLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlFOTQxQUNCQTIxMzRBNUJCMDAzOTJCQTkgLyogVHlwZU92ZXJsb2FkUmVz
b2x1dGlvbkZhaWx1cmUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBUeXBlT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qczsgcGF0aCA9IC4uLy4uLy4uL1R5cGVP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFOTQxQUNCQjIxMzRBNUJCMDAzOTJCQTkgLyogVmVjdG9yVHlwZS5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFZlY3RvclR5cGUuanM7IHBhdGggPSAuLi8uLi8u
Li9WZWN0b3JUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOTQxQUNCQzIx
MzRBNUJCMDAzOTJCQTkgLyogQnVpbHRpblZlY3RvclNldHRlci5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEJ1aWx0aW5WZWN0b3JTZXR0ZXIuanM7IHBhdGggPSAu
Li8uLi8uLi9CdWlsdGluVmVjdG9yU2V0dGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlFOTRDMDZDMDIwRjU2QTQwMDA2NzI5OTIgLyogV0hMU0wgVGVzdHMuYXBwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFwcGxpY2F0
aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSAiV0hMU0wgVGVzdHMuYXBwIjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJRTk0QzA2QzkyMEY1NkE0MjAwNjcyOTky
IC8qIEFzc2V0cy54Y2Fzc2V0cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZvbGRlci5hc3NldGNhdGFsb2c7IHBhdGggPSBBc3NldHMueGNhc3NldHM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEMwNkNFMjBGNTZBNDIwMDY3Mjk5MiAv
KiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlFOTRDMDZDRjIwRjU2QTQyMDA2NzI5OTIgLyogbWFpbi5tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9i
amM7IHBhdGggPSBtYWluLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEMwNkQx
MjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsg
cGF0aCA9IFdITFNMLmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RTk0QzA2RDYyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNMIFRlc3RzVGVzdHMueGN0ZXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVu
ZGxlOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSAiV0hMU0wgVGVzdHNUZXN0cy54Y3Rlc3Qi
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQlFOTRDMDZEQTIwRjU2QTQy
MDA2NzI5OTIgLyogV0hMU0xfVG95VGVzdHMubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV0hMU0xfVG95
VGVzdHMubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTk0QzA2REMyMEY1NkE0MjAw
NjcyOTkyIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEMwNkY5MjBGNTZDQTMwMDY3Mjk5MiAvKiBEZXJlZmVy
ZW5jZUV4cHJlc3Npb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBEZXJlZmVyZW5jZUV4cHJl
c3Npb24uanM7IHBhdGggPSAuLi8uLi8uLi9EZXJlZmVyZW5jZUV4cHJlc3Npb24uanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEMwNkZBMjBGNTZDQTMwMDY3Mjk5MiAvKiBDaGVj
a1JlY3Vyc2lvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENoZWNrUmVjdXJzaW9uLmpzOyBw
YXRoID0gLi4vLi4vLi4vQ2hlY2tSZWN1cnNpb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5NEMwNkZCMjBGNTZDQTMwMDY3Mjk5MiAvKiBIaWdoWm9tYmllRmluZGVyLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gSGlnaFpvbWJpZUZpbmRlci5qczsgcGF0aCA9IC4uLy4uLy4u
L0hpZ2hab21iaWVGaW5kZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEMw
NkZDMjBGNTZDQTMwMDY3Mjk5MiAvKiBCbG9jay5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEJs
b2NrLmpzOyBwYXRoID0gLi4vLi4vLi4vQmxvY2suanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5NEMwNkZEMjBGNTZDQTMwMDY3Mjk5MiAvKiBFbnVtTGl0ZXJhbC5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IEVudW1MaXRlcmFsLmpzOyBwYXRoID0gLi4vLi4vLi4vRW51bUxpdGVy
YWwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEQxMjRFMjExNEJENzYwMEIw
Rjk2NyAvKiBNYW5kZWxicm90LndobHNsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1hbmRlbGJy
b3Qud2hsc2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NEQxMjdFMjExNEM2RkYw
MEIwRjk2NyAvKiBUZXN0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gVGVzdC5qczsgcGF0aCA9IC4uLy4uLy4uL1Rlc3QuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5NTU2OUIwMjBGNTZDRDYwMEY1Q0YzNCAvKiBCcmVhay5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEJyZWFrLmpzOyBwYXRoID0gLi4vLi4vLi4v
QnJlYWsuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUIxMjBGNTZDRDYw
MEY1Q0YzNCAvKiBCb29sTGl0ZXJhbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IEJvb2xMaXRlcmFsLmpzOyBwYXRoID0gLi4vLi4vLi4vQm9vbExpdGVyYWwuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUIyMjBGNTZDRDYwMEY1Q0YzNCAv
KiBDaGVja1JldHVybnMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBDaGVja1JldHVybnMuanM7IHBhdGggPSAuLi8uLi8uLi9DaGVja1JldHVybnMuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUIzMjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVj
a0xvb3BzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ2hlY2tM
b29wcy5qczsgcGF0aCA9IC4uLy4uLy4uL0NoZWNrTG9vcHMuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5NTU2OUI0MjBGNTZDRDYwMEY1Q0YzNCAvKiBBcnJheVR5cGUuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBBcnJheVR5cGUuanM7IHBhdGgg
PSAuLi8uLi8uLi9BcnJheVR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
NTU2OUI1MjBGNTZDRDYwMEY1Q0YzNCAvKiBBcnJheVJlZlR5cGUuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBBcnJheVJlZlR5cGUuanM7IHBhdGggPSAuLi8uLi8u
Li9BcnJheVJlZlR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUI2
MjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja0xpdGVyYWxUeXBlcy5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENoZWNrTGl0ZXJhbFR5cGVzLmpzOyBwYXRoID0gLi4v
Li4vLi4vQ2hlY2tMaXRlcmFsVHlwZXMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5NTU2OUI3MjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja1VucmVhY2hhYmxlQ29kZS5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENoZWNrVW5yZWFjaGFibGVDb2Rl
LmpzOyBwYXRoID0gLi4vLi4vLi4vQ2hlY2tVbnJlYWNoYWJsZUNvZGUuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUI4MjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVjay5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENoZWNrLmpzOyBwYXRoID0g
Li4vLi4vLi4vQ2hlY2suanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUI5
MjBGNTZDRDYwMEY1Q0YzNCAvKiBBc3NpZ25tZW50LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBuYW1lID0gQXNzaWdubWVudC5qczsgcGF0aCA9IC4uLy4uLy4uL0Fzc2lnbm1l
bnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUJBMjBGNTZDRDYwMEY1
Q0YzNCAvKiBBZGRyZXNzU3BhY2UuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBBZGRyZXNzU3BhY2UuanM7IHBhdGggPSAuLi8uLi8uLi9BZGRyZXNzU3BhY2UuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUJCMjBGNTZDRDYwMEY1Q0YzNCAv
KiBDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gQ2hlY2tSZWN1cnNpdmVUeXBlcy5qczsgcGF0aCA9IC4uLy4uLy4uL0NoZWNrUmVj
dXJzaXZlVHlwZXMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUJDMjBG
NTZDRDcwMEY1Q0YzNCAvKiBBbGwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBBbGwuanM7IHBhdGggPSAuLi8uLi8uLi9BbGwuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5NTU2OUJEMjBGNTZDRDcwMEY1Q0YzNCAvKiBBbm9ueW1vdXNWYXJpYWJs
ZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEFub255bW91c1Zh
cmlhYmxlLmpzOyBwYXRoID0gLi4vLi4vLi4vQW5vbnltb3VzVmFyaWFibGUuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUJFMjBGNTZDRDcwMEY1Q0YzNCAvKiBBdXRvV3Jh
cHBlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEF1dG9XcmFw
cGVyLmpzOyBwYXRoID0gLi4vLi4vLi4vQXV0b1dyYXBwZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5NTU2OUJGMjBGNTZDRDcwMEY1Q0YzNCAvKiBDYWxsRXhwcmVzc2lvbi5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENhbGxFeHByZXNzaW9u
LmpzOyBwYXRoID0gLi4vLi4vLi4vQ2FsbEV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5NTU2OUMwMjBGNTZDRDcwMEY1Q0YzNCAvKiBDYWxsRnVuY3Rpb24uanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDYWxsRnVuY3Rpb24uanM7
IHBhdGggPSAuLi8uLi8uLi9DYWxsRnVuY3Rpb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5NTU2OUMxMjBGNTZDRDcwMEY1Q0YzNCAvKiBDaGVja2VyLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ2hlY2tlci5qczsgcGF0aCA9IC4uLy4uLy4u
L0NoZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUQ0MjBGNTZD
RUQwMEY1Q0YzNCAvKiBDaGVja1dyYXBwZWQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBDaGVja1dyYXBwZWQuanM7IHBhdGggPSAuLi8uLi8uLi9DaGVja1dyYXBw
ZWQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUQ1MjBGNTZDRUQwMEY1
Q0YzNCAvKiBDb25zdGV4cHJGb2xkZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBDb25zdGV4cHJGb2xkZXIuanM7IHBhdGggPSAuLi8uLi8uLi9Db25zdGV4cHJG
b2xkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUQ2MjBGNTZDRUQw
MEY1Q0YzNCAvKiBDcmVhdGVMaXRlcmFsVHlwZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IENyZWF0ZUxpdGVyYWxUeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4vQ3Jl
YXRlTGl0ZXJhbFR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUQ3
MjBGNTZDRUQwMEY1Q0YzNCAvKiBDb250aW51ZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IENvbnRpbnVlLmpzOyBwYXRoID0gLi4vLi4vLi4vQ29udGludWUuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUQ4MjBGNTZDRUQwMEY1Q0YzNCAv
KiBDcmVhdGVMaXRlcmFsLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gQ3JlYXRlTGl0ZXJhbC5qczsgcGF0aCA9IC4uLy4uLy4uL0NyZWF0ZUxpdGVyYWwuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUQ5MjBGNTZDRUQwMEY1Q0YzNCAvKiBD
b252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IG5hbWUgPSBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanM7IHBhdGgg
PSAuLi8uLi8uLi9Db252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OURCMjBGNTZDRUUwMEY1Q0YzNCAvKiBDbG9uZVByb2dy
YW0uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDbG9uZVByb2dy
YW0uanM7IHBhdGggPSAuLi8uLi8uLi9DbG9uZVByb2dyYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5NTU2OURDMjBGNTZDRUUwMEY1Q0YzNCAvKiBDb21tYUV4cHJlc3Npb24u
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDb21tYUV4cHJlc3Np
b24uanM7IHBhdGggPSAuLi8uLi8uLi9Db21tYUV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5NTU2OUU2MjBGNTZEMDUwMEY1Q0YzNCAvKiBGdW5jdGlvbkxpa2VC
bG9jay5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZ1bmN0aW9uTGlrZUJsb2NrLmpzOyBwYXRo
ID0gLi4vLi4vLi4vRnVuY3Rpb25MaWtlQmxvY2suanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5NTU2OUU3MjBGNTZEMDUwMEY1Q0YzNCAvKiBFUHRyLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gRVB0ci5qczsgcGF0aCA9IC4uLy4uLy4uL0VQdHIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5NTU2OUU4MjBGNTZEMDUwMEY1Q0YzNCAvKiBGdW5jRGVmLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gRnVuY0RlZi5qczsgcGF0aCA9IC4uLy4uLy4uL0Z1bmNEZWYu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NTU2OUU5MjBGNTZEMDUwMEY1Q0Yz
NCAvKiBGdW5jUGFyYW1ldGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRnVuY1BhcmFtZXRl
ci5qczsgcGF0aCA9IC4uLy4uLy4uL0Z1bmNQYXJhbWV0ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5NTU2OUVBMjBGNTZEMDUwMEY1Q0YzNCAvKiBGbG9hdExpdGVyYWxUeXBl
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRmxvYXRMaXRlcmFsVHlwZS5qczsgcGF0aCA9IC4u
Ly4uLy4uL0Zsb2F0TGl0ZXJhbFR5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5NTU2OUVCMjBGNTZEMDUwMEY1Q0YzNCAvKiBGb2xkQ29uc3RleHBycy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNj
cmlwdDsgbmFtZSA9IEZvbGRDb25zdGV4cHJzLmpzOyBwYXRoID0gLi4vLi4vLi4vRm9sZENvbnN0
ZXhwcnMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NzNFNUM3MjEzRjMzODUw
MDVENzlGQyAvKiBNU0xGdW5jdGlvbkZvcndhcmREZWNsYXJhdGlvbi5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTEZ1bmN0aW9uRm9yd2FyZERlY2xhcmF0aW9u
LmpzOyBwYXRoID0gLi4vLi4vTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24uanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5NzNFNUM4MjEzRjMzODUwMDVENzlGQyAvKiBNU0xT
dGF0ZW1lbnRFbWl0dGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gTVNMU3RhdGVtZW50RW1pdHRlci5qczsgcGF0aCA9IC4uLy4uL01TTFN0YXRlbWVudEVtaXR0
ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5N0VEN0UxMjE0QjgyMjkwMEFE
MTE0MCAvKiBNU0xOYW1lTWFuZ2xlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTE5hbWVN
YW5nbGVyLmpzOyBwYXRoID0gLi4vLi4vTVNMTmFtZU1hbmdsZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5N0VEN0UyMjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xUeXBlQXR0cmli
dXRlc01hcC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTFR5cGVBdHRyaWJ1dGVzTWFwLmpz
OyBwYXRoID0gLi4vLi4vTVNMVHlwZUF0dHJpYnV0ZXNNYXAuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5N0VEN0U0MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xOYXRpdmVGdW5jdGlv
bkNhbGwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBNU0xOYXRpdmVGdW5jdGlvbkNhbGwuanM7
IHBhdGggPSAuLi8uLi9NU0xOYXRpdmVGdW5jdGlvbkNhbGwuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5N0VEN0U1MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xDb2RlZ2VuQWxsLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTVNMQ29kZWdlbkFsbC5qczsgcGF0aCA9IC4uLy4uL01T
TENvZGVnZW5BbGwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5N0VEN0U2MjE0
QjgyMjkwMEFEMTE0MCAvKiBNU0xUeXBlVW5pZmllci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IE1TTFR5cGVVbmlmaWVyLmpzOyBwYXRoID0gLi4vLi4vTVNMVHlwZVVuaWZpZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5N0VEN0U3MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xU
eXBlQXR0cmlidXRlcy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTFR5cGVBdHRyaWJ1dGVz
LmpzOyBwYXRoID0gLi4vLi4vTVNMVHlwZUF0dHJpYnV0ZXMuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5N0VEN0U4MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xDb21waWxlUmVzdWx0
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTVNMQ29tcGlsZVJlc3VsdC5qczsgcGF0aCA9IC4u
Ly4uL01TTENvbXBpbGVSZXN1bHQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
QUQwNzQ2MjBGNTZENUEwMDdGMjQ2NiAvKiBEb1doaWxlTG9vcC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IERvV2hpbGVMb29wLmpzOyBwYXRoID0gLi4vLi4vLi4v
RG9XaGlsZUxvb3AuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzQ4MjBG
NTZENUEwMDdGMjQ2NiAvKiBFQnVmZmVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBuYW1lID0gRUJ1ZmZlci5qczsgcGF0aCA9IC4uLy4uLy4uL0VCdWZmZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzQ5MjBGNTZENUEwMDdGMjQ2NiAvKiBFQXJy
YXlSZWYuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFQXJyYXlS
ZWYuanM7IHBhdGggPSAuLi8uLi8uLi9FQXJyYXlSZWYuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5QUQwNzRBMjBGNTZENUIwMDdGMjQ2NiAvKiBFQnVmZmVyQnVpbGRlci5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVCdWZmZXJCdWlsZGVyLmpz
OyBwYXRoID0gLi4vLi4vLi4vRUJ1ZmZlckJ1aWxkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5QUQwNzRCMjBGNTZENUIwMDdGMjQ2NiAvKiBEb3RFeHByZXNzaW9uLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRG90RXhwcmVzc2lvbi5qczsg
cGF0aCA9IC4uLy4uLy4uL0RvdEV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5QUQwNzUzMjBGNTZENjkwMDdGMjQ2NiAvKiBFdmFsdWF0aW9uQ29tbW9uLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gRXZhbHVhdGlvbkNvbW1vbi5qczsgcGF0aCA9IC4uLy4uLy4u
L0V2YWx1YXRpb25Db21tb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQw
NzU0MjBGNTZENjkwMDdGMjQ2NiAvKiBFeHByZXNzaW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gRXhwcmVzc2lvbi5qczsgcGF0aCA9IC4uLy4uLy4uL0V4cHJlc3Npb24uanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzU1MjBGNTZENjkwMDdGMjQ2NiAvKiBFbnVtTWVt
YmVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRW51bU1lbWJlci5qczsgcGF0aCA9IC4uLy4u
Ly4uL0VudW1NZW1iZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzU2
MjBGNTZENjkwMDdGMjQ2NiAvKiBGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzOyBwYXRo
ID0gLi4vLi4vLi4vRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzU3MjBGNTZENjkwMDdGMjQ2NiAvKiBFdmFsdWF0b3Iu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFdmFsdWF0b3IuanM7IHBhdGggPSAuLi8uLi8uLi9F
dmFsdWF0b3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzU4MjBGNTZE
NjkwMDdGMjQ2NiAvKiBGaW5kSGlnaFpvbWJpZXMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBG
aW5kSGlnaFpvbWJpZXMuanM7IHBhdGggPSAuLi8uLi8uLi9GaW5kSGlnaFpvbWJpZXMuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzU5MjBGNTZENjkwMDdGMjQ2NiAvKiBF
eHByZXNzaW9uRmluZGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRXhwcmVzc2lvbkZpbmRl
ci5qczsgcGF0aCA9IC4uLy4uLy4uL0V4cHJlc3Npb25GaW5kZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5QUQwNzVBMjBGNTZENjkwMDdGMjQ2NiAvKiBFbnVtVHlwZS5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVudW1UeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4vRW51bVR5
cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzVCMjBGNTZENjkwMDdG
MjQ2NiAvKiBFeHRlcm5hbE9yaWdpbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEV4dGVybmFs
T3JpZ2luLmpzOyBwYXRoID0gLi4vLi4vLi4vRXh0ZXJuYWxPcmlnaW4uanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5QUQwNzVDMjBGNTZENjkwMDdGMjQ2NiAvKiBGbG9hdExpdGVy
YWwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBGbG9hdExpdGVyYWwuanM7IHBhdGggPSAuLi8u
Li8uLi9GbG9hdExpdGVyYWwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5QkM1
MEQ5MjE1NUFEMUUwMDA1OTRFOCAvKiBBbGxvY2F0ZUF0RW50cnlQb2ludHMuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBBbGxvY2F0ZUF0RW50cnlQb2ludHMuanM7
IHBhdGggPSAuLi8uLi8uLi9BbGxvY2F0ZUF0RW50cnlQb2ludHMuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5RDdDQjk0MjE0QjgyNDIwMEYxQzkxOCAvKiBXaGxzbFRvTXNsLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gV2hsc2xUb01zbC5qczsg
cGF0aCA9IC4uLy4uL1dobHNsVG9Nc2wuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU5RDdDQjk1MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xCYWNrZW5kLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTVNMQmFja2VuZC5qczsgcGF0aCA9IC4uLy4uL01T
TEJhY2tlbmQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RDdDQjk2MjE0Qjgy
NDIwMEYxQzkxOCAvKiBNU0xDb25zdGV4cHJFbWl0dGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gTVNMQ29uc3RleHByRW1pdHRlci5qczsgcGF0aCA9IC4uLy4u
L01TTENvbnN0ZXhwckVtaXR0ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
RDdDQjlBMjE0QjgyQjcwMEYxQzkxOCAvKiBUZXh0dXJlLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gVGV4dHVyZS5qczsgcGF0aCA9IC4uLy4uLy4uL1RleHR1cmUu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RDdDQjlCMjE0QjgyQjcwMEYxQzkx
OCAvKiBMYXlvdXRCdWZmZXJzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBu
YW1lID0gTGF5b3V0QnVmZmVycy5qczsgcGF0aCA9IC4uLy4uLy4uL0xheW91dEJ1ZmZlcnMuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RDdDQjlDMjE0QjgyQjcwMEYxQzkxOCAv
KiBDYXN0cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENhc3Rz
LmpzOyBwYXRoID0gLi4vLi4vLi4vQ2FzdHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUU5RDdDQjlEMjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU2FtcGxlci5qczsgcGF0aCA9IC4uLy4uLy4uL1Nh
bXBsZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RDdDQjlFMjE0QjgyQjgw
MEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IFRleHR1cmVPcGVyYXRpb25zLmpzOyBwYXRoID0gLi4vLi4vLi4vVGV4
dHVyZU9wZXJhdGlvbnMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RDdDQjlG
MjE0QjgyQjgwMEYxQzkxOCAvKiBXTGV4aWNhbEVycm9yLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gV0xleGljYWxFcnJvci5qczsgcGF0aCA9IC4uLy4uLy4uL1dM
ZXhpY2FsRXJyb3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RkNFQjU1MjBG
NTZEOTIwMDlCMzYyOSAvKiBGdW5jLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gRnVuYy5qczsgcGF0aCA9IC4uLy4uLy4uL0Z1bmMuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU5RkNFQjU3MjBGNTZEOTMwMDlCMzYyOSAvKiBJZlN0YXRlbWVudC5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IElmU3RhdGVtZW50Lmpz
OyBwYXRoID0gLi4vLi4vLi4vSWZTdGF0ZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUU5RkNFQjU4MjBGNTZEOTMwMDlCMzYyOSAvKiBJZGVudGl0eUV4cHJlc3Npb24uanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBJZGVudGl0eUV4cHJlc3Np
b24uanM7IHBhdGggPSAuLi8uLi8uLi9JZGVudGl0eUV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUU5RkNFQjVBMjBGNTZEOTMwMDlCMzYyOSAvKiBGb3JMb29wLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRm9yTG9vcC5qczsgcGF0
aCA9IC4uLy4uLy4uL0Zvckxvb3AuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5
RkNFQjVCMjBGNTZEOTMwMDlCMzYyOSAvKiBGaWVsZC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IEZpZWxkLmpzOyBwYXRoID0gLi4vLi4vLi4vRmllbGQuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RkNFQjYzMjBGNTZEQTQwMDlCMzYyOSAvKiBJ
bmRleEV4cHJlc3Npb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBJbmRleEV4cHJlc3Npb24u
anM7IHBhdGggPSAuLi8uLi8uLi9JbmRleEV4cHJlc3Npb24uanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUU5RkNFQjY1MjBGNTZEQTUwMDlCMzYyOSAvKiBJbmZlclR5cGVzRm9yQ2Fs
bC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEluZmVyVHlwZXNGb3JDYWxsLmpzOyBwYXRoID0g
Li4vLi4vLi4vSW5mZXJUeXBlc0ZvckNhbGwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUU5RkNFQjY2MjBGNTZEQTUwMDlCMzYyOSAvKiBJbmxpbmUuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBJbmxpbmUuanM7IHBhdGggPSAuLi8uLi8uLi9JbmxpbmUuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0vKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCi0KLS8q
IEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJRTk0QzA2QkQyMEY1
NkE0MDAwNjcyOTkyIC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhGcmFtZXdvcmtz
QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9
ICgKLQkJCQlFOTJEMTA5MTIwRjU2RjU3MDBENzc2QjIgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJRTkyRDEwOEYyMEY1NkY0RjAwRDc3NkIyIC8qIE1l
dGFsLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCUU5MkQxMDhEMjBGNTZGNDUwMEQ3
NzZCMiAvKiBNZXRhbEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCSk7Ci0JCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKLQkJRTk0QzA2RDMy
MEY1NkE0MjAwNjcyOTkyIC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhGcmFtZXdv
cmtzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxl
cyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
LQkJfTsKLS8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCi0KLS8qIEJl
Z2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KLQkJRTkwNkIwNEEyMTE0QkQxRDAwQUQxQzVFIC8qIERl
bW8gc2hhZGVycyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkJRTkyRDEwOTIyMEY1NzM0OTAwRDc3NkIyIC8qIERlZmF1bHQud2hsc2wgKi8sCi0JCQkJRTkw
NkIwNDUyMTEzOUI3NzAwQUQxQzVFIC8qIEp1bGlhLndobHNsICovLAotCQkJCUU5NEQxMjRFMjEx
NEJENzYwMEIwRjk2NyAvKiBNYW5kZWxicm90LndobHNsICovLAotCQkJKTsKLQkJCXBhdGggPSAi
RGVtbyBzaGFkZXJzIjsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUU5MkQx
MDhCMjBGNTZGNDQwMEQ3NzZCMiAvKiBGcmFtZXdvcmtzICovID0gewotCQkJaXNhID0gUEJYR3Jv
dXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlFOTJEMTA5MDIwRjU2RjU3MDBENzc2QjIgLyogSmF2
YVNjcmlwdENvcmUuZnJhbWV3b3JrICovLAotCQkJCUU5MkQxMDhFMjBGNTZGNEYwMEQ3NzZCMiAv
KiBNZXRhbC5mcmFtZXdvcmsgKi8sCi0JCQkJRTkyRDEwOEMyMEY1NkY0NTAwRDc3NkIyIC8qIE1l
dGFsS2l0LmZyYW1ld29yayAqLywKLQkJCSk7Ci0JCQluYW1lID0gRnJhbWV3b3JrczsKLQkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUU5MkQxMUFFMjBGNzBCQUUwMEQ3NzZCMiAv
KiBSZW5kZXJlciAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkJRTkyRDExQUIyMEY3MDgxNTAwRDc3NkIyIC8qIE9mZnNjcmVlblJlbmRlcmVyLmggKi8sCi0J
CQkJRTkyRDExQUMyMEY3MDgxNTAwRDc3NkIyIC8qIE9mZnNjcmVlblJlbmRlcmVyLm0gKi8sCi0J
CQkJRTkyRDEwQUQyMEY1N0M5RjAwRDc3NkIyIC8qIE9uc2NyZWVuUmVuZGVyZXIuaCAqLywKLQkJ
CQlFOTJEMTBBRTIwRjU3QzlGMDBENzc2QjIgLyogT25zY3JlZW5SZW5kZXJlci5tICovLAotCQkJ
CUU5MkQxMTEzMjBGNkZGQjYwMEQ3NzZCMiAvKiBSZW5kZXJlci5oICovLAotCQkJCUU5MkQxMTE0
MjBGNkZGQjYwMEQ3NzZCMiAvKiBSZW5kZXJlci5tICovLAotCQkJKTsKLQkJCXBhdGggPSBSZW5k
ZXJlcjsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUU5MkVERkY0MjExNTQ2
OTEwMDQyRjk2MCAvKiBBcHAgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVu
ID0gKAotCQkJCUU5MkVERkY1MjExNTQ2QTQwMDQyRjk2MCAvKiBBcHBEZWxlZ2F0ZS5oICovLAot
CQkJCUU5MkVERkY3MjExNTQ2QTQwMDQyRjk2MCAvKiBBcHBEZWxlZ2F0ZS5tICovLAotCQkJCUU5
MkVERkY4MjExNTQ2QTQwMDQyRjk2MCAvKiBDdXN0b21NZXRhbFZpZXcuaCAqLywKLQkJCQlFOTJF
REZGNjIxMTU0NkE0MDA0MkY5NjAgLyogQ3VzdG9tTWV0YWxWaWV3Lm0gKi8sCi0JCQkJRTkyRURG
RkUyMTE1NDZBQjAwNDJGOTYwIC8qIE1haW4uc3Rvcnlib2FyZCAqLywKLQkJCQlFOTJFREZGOTIx
MTU0NkE0MDA0MkY5NjAgLyogVmlld0NvbnRyb2xsZXIuaCAqLywKLQkJCQlFOTJFREZGQTIxMTU0
NkE0MDA0MkY5NjAgLyogVmlld0NvbnRyb2xsZXIubSAqLywKLQkJCSk7Ci0JCQluYW1lID0gQXBw
OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJRTkyRUUwMDEyMTE1NDk5RTAw
NDJGOTYwIC8qIFRlc3QgZXhlY3V0aW9uICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQlj
aGlsZHJlbiA9ICgKLQkJCQlFOTJFRTAwQjIxMTU1NDk4MDA0MkY5NjAgLyogX1NoYXJlZE1ldGFs
LnR4dCAqLywKLQkJCQlFOTJFRTAwMjIxMTU0OUM1MDA0MkY5NjAgLyogVGVzdENhbGxBcmd1bWVu
dC5oICovLAotCQkJCUU5MkVFMDAzMjExNTQ5QzUwMDQyRjk2MCAvKiBUZXN0Q2FsbEFyZ3VtZW50
Lm0gKi8sCi0JCQkJRTkyRUUwMDgyMTE1NEI1QTAwNDJGOTYwIC8qIFRlc3REZXNjcmlwdGlvbi5o
ICovLAotCQkJCUU5MkVFMDA5MjExNTRCNUEwMDQyRjk2MCAvKiBUZXN0RGVzY3JpcHRpb24ubSAq
LywKLQkJCQlFOTJFRTAwNTIxMTU0QUM0MDA0MkY5NjAgLyogVGVzdEZhbWlseS5oICovLAotCQkJ
CUU5MkVFMDA2MjExNTRBQzQwMDQyRjk2MCAvKiBUZXN0RmFtaWx5Lm0gKi8sCi0JCQkJRTkyRUUw
MEQyMTE1NjMzMDAwNDJGOTYwIC8qIFRlc3RGYW1pbHlSdW5uZXIuaCAqLywKLQkJCQlFOTJFRTAw
RTIxMTU2MzMwMDA0MkY5NjAgLyogVGVzdEZhbWlseVJ1bm5lci5tICovLAotCQkJKTsKLQkJCW5h
bWUgPSAiVGVzdCBleGVjdXRpb24iOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsK
LQkJRTk0QzA2QjcyMEY1NkE0MDAwNjcyOTkyID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQlj
aGlsZHJlbiA9ICgKLQkJCQlFOTRDMDZDMjIwRjU2QTQwMDA2NzI5OTIgLyogQ29yZSAqLywKLQkJ
CQlFOTJEMTA4QjIwRjU2RjQ0MDBENzc2QjIgLyogRnJhbWV3b3JrcyAqLywKLQkJCQlFOTRDMDZD
MTIwRjU2QTQwMDA2NzI5OTIgLyogUHJvZHVjdHMgKi8sCi0JCQkJRTk0QzA2RDkyMEY1NkE0MjAw
NjcyOTkyIC8qIFdITFNMIFRlc3RzICovLAotCQkJKTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7Ci0JCX07Ci0JCUU5NEMwNkMxMjBGNTZBNDAwMDY3Mjk5MiAvKiBQcm9kdWN0cyAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJRTk0QzA2QzAyMEY1NkE0
MDAwNjcyOTkyIC8qIFdITFNMIFRlc3RzLmFwcCAqLywKLQkJCQlFOTRDMDZENjIwRjU2QTQyMDA2
NzI5OTIgLyogV0hMU0wgVGVzdHNUZXN0cy54Y3Rlc3QgKi8sCi0JCQkpOwotCQkJbmFtZSA9IFBy
b2R1Y3RzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJRTk0QzA2QzIyMEY1
NkE0MDAwNjcyOTkyIC8qIENvcmUgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxk
cmVuID0gKAotCQkJCUU5MkVERkY0MjExNTQ2OTEwMDQyRjk2MCAvKiBBcHAgKi8sCi0JCQkJRTkw
NkIwNEEyMTE0QkQxRDAwQUQxQzVFIC8qIERlbW8gc2hhZGVycyAqLywKLQkJCQlFOTJEMTFBRTIw
RjcwQkFFMDBENzc2QjIgLyogUmVuZGVyZXIgKi8sCi0JCQkJRTk0QzA2RjYyMEY1NkM0RjAwNjcy
OTkyIC8qIFNjcmlwdHMgKi8sCi0JCQkJRTkyRUUwMDEyMTE1NDk5RTAwNDJGOTYwIC8qIFRlc3Qg
ZXhlY3V0aW9uICovLAotCQkJCUU5NEMwNkM5MjBGNTZBNDIwMDY3Mjk5MiAvKiBBc3NldHMueGNh
c3NldHMgKi8sCi0JCQkJRTkyRDEwODgyMEY1NkYwNjAwRDc3NkIyIC8qIENvbXBpbGVyLmggKi8s
Ci0JCQkJRTkyRDEwODkyMEY1NkYwNjAwRDc3NkIyIC8qIENvbXBpbGVyLm0gKi8sCi0JCQkJRTky
RDExQjkyMEY3RjY3MzAwRDc3NkIyIC8qIENvbXBpbGVSZXN1bHQuaCAqLywKLQkJCQlFOTJEMTFC
QTIwRjdGNjczMDBENzc2QjIgLyogQ29tcGlsZVJlc3VsdC5tICovLAotCQkJCUU5NEMwNkNFMjBG
NTZBNDIwMDY3Mjk5MiAvKiBJbmZvLnBsaXN0ICovLAotCQkJCUU5NEMwNkNGMjBGNTZBNDIwMDY3
Mjk5MiAvKiBtYWluLm0gKi8sCi0JCQkJRTk0QzA2RDEyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNM
LmVudGl0bGVtZW50cyAqLywKLQkJCSk7Ci0JCQlwYXRoID0gQ29yZTsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUU5NEMwNkQ5MjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTCBU
ZXN0cyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJRTk0
QzA2REMyMEY1NkE0MjAwNjcyOTkyIC8qIEluZm8ucGxpc3QgKi8sCi0JCQkJRTk0QzA2REEyMEY1
NkE0MjAwNjcyOTkyIC8qIFdITFNMX1RveVRlc3RzLm0gKi8sCi0JCQkpOwotCQkJbmFtZSA9ICJX
SExTTCBUZXN0cyI7Ci0JCQlwYXRoID0gIldITFNMIFRveVRlc3RzIjsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUU5NEMwNkY2MjBGNTZDNEYwMDY3Mjk5MiAvKiBTY3JpcHRz
ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlFOTU1NjlC
QTIwRjU2Q0Q2MDBGNUNGMzQgLyogQWRkcmVzc1NwYWNlLmpzICovLAotCQkJCUU5NTU2OUJDMjBG
NTZDRDcwMEY1Q0YzNCAvKiBBbGwuanMgKi8sCi0JCQkJRTlCQzUwRDkyMTU1QUQxRTAwMDU5NEU4
IC8qIEFsbG9jYXRlQXRFbnRyeVBvaW50cy5qcyAqLywKLQkJCQlFOTU1NjlCRDIwRjU2Q0Q3MDBG
NUNGMzQgLyogQW5vbnltb3VzVmFyaWFibGUuanMgKi8sCi0JCQkJRTk1NTY5QjUyMEY1NkNENjAw
RjVDRjM0IC8qIEFycmF5UmVmVHlwZS5qcyAqLywKLQkJCQlFOTU1NjlCNDIwRjU2Q0Q2MDBGNUNG
MzQgLyogQXJyYXlUeXBlLmpzICovLAotCQkJCUU5NTU2OUI5MjBGNTZDRDYwMEY1Q0YzNCAvKiBB
c3NpZ25tZW50LmpzICovLAotCQkJCUU5NTU2OUJFMjBGNTZDRDcwMEY1Q0YzNCAvKiBBdXRvV3Jh
cHBlci5qcyAqLywKLQkJCQlFOTRDMDZGQzIwRjU2Q0EzMDA2NzI5OTIgLyogQmxvY2suanMgKi8s
Ci0JCQkJRTk1NTY5QjEyMEY1NkNENjAwRjVDRjM0IC8qIEJvb2xMaXRlcmFsLmpzICovLAotCQkJ
CUU5NTU2OUIwMjBGNTZDRDYwMEY1Q0YzNCAvKiBCcmVhay5qcyAqLywKLQkJCQlFOTIxRDYzNDIx
MzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeEdldHRlci5qcyAqLywKLQkJCQlFOTIxRDYz
NTIxMzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeFNldHRlci5qcyAqLywKLQkJCQkzMUYx
MTZDNTIxNkJGRTkwMDA5QTM2RDUgLyogQnVpbHRJblNlbWFudGljLmpzICovLAotCQkJCUU5NDFB
Q0I5MjEzNEE1QkIwMDM5MkJBOSAvKiBCdWlsdGluVmVjdG9yR2V0dGVyLmpzICovLAotCQkJCUU5
NDFBQ0JDMjEzNEE1QkIwMDM5MkJBOSAvKiBCdWlsdGluVmVjdG9yU2V0dGVyLmpzICovLAotCQkJ
CUU5NTU2OUJGMjBGNTZDRDcwMEY1Q0YzNCAvKiBDYWxsRXhwcmVzc2lvbi5qcyAqLywKLQkJCQlF
OTU1NjlDMDIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2FsbEZ1bmN0aW9uLmpzICovLAotCQkJCUU5RDdD
QjlDMjE0QjgyQjcwMEYxQzkxOCAvKiBDYXN0cy5qcyAqLywKLQkJCQlFOTU1NjlCODIwRjU2Q0Q2
MDBGNUNGMzQgLyogQ2hlY2suanMgKi8sCi0JCQkJRTk1NTY5QzEyMEY1NkNENzAwRjVDRjM0IC8q
IENoZWNrZXIuanMgKi8sCi0JCQkJRTk1NTY5QjYyMEY1NkNENjAwRjVDRjM0IC8qIENoZWNrTGl0
ZXJhbFR5cGVzLmpzICovLAotCQkJCUU5NTU2OUIzMjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja0xv
b3BzLmpzICovLAotCQkJCTMxRjExNzA3MjE2QkZFOTIwMDlBMzZENSAvKiBDaGVja05hdGl2ZUZ1
bmNTdGFnZXMuanMgKi8sCi0JCQkJRTk0QzA2RkEyMEY1NkNBMzAwNjcyOTkyIC8qIENoZWNrUmVj
dXJzaW9uLmpzICovLAotCQkJCUU5NTU2OUJCMjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja1JlY3Vy
c2l2ZVR5cGVzLmpzICovLAotCQkJCUU5NTU2OUIyMjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja1Jl
dHVybnMuanMgKi8sCi0JCQkJRTk0MUFDQUUyMTM0QTVCQTAwMzkyQkE5IC8qIENoZWNrVHlwZXNX
aXRoQXJndW1lbnRzLmpzICovLAotCQkJCUU5NTU2OUI3MjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVj
a1VucmVhY2hhYmxlQ29kZS5qcyAqLywKLQkJCQlFOTU1NjlENDIwRjU2Q0VEMDBGNUNGMzQgLyog
Q2hlY2tXcmFwcGVkLmpzICovLAotCQkJCUU5NTU2OURCMjBGNTZDRUUwMEY1Q0YzNCAvKiBDbG9u
ZVByb2dyYW0uanMgKi8sCi0JCQkJRTk1NTY5REMyMEY1NkNFRTAwRjVDRjM0IC8qIENvbW1hRXhw
cmVzc2lvbi5qcyAqLywKLQkJCQlFOTU1NjlENTIwRjU2Q0VEMDBGNUNGMzQgLyogQ29uc3RleHBy
Rm9sZGVyLmpzICovLAotCQkJCUU5NTU2OUQ3MjBGNTZDRUQwMEY1Q0YzNCAvKiBDb250aW51ZS5q
cyAqLywKLQkJCQlFOTU1NjlEOTIwRjU2Q0VEMDBGNUNGMzQgLyogQ29udmVydFB0clRvQXJyYXlS
ZWZFeHByZXNzaW9uLmpzICovLAotCQkJCUU5NTU2OUQ4MjBGNTZDRUQwMEY1Q0YzNCAvKiBDcmVh
dGVMaXRlcmFsLmpzICovLAotCQkJCUU5NTU2OUQ2MjBGNTZDRUQwMEY1Q0YzNCAvKiBDcmVhdGVM
aXRlcmFsVHlwZS5qcyAqLywKLQkJCQlFOTRDMDZGOTIwRjU2Q0EzMDA2NzI5OTIgLyogRGVyZWZl
cmVuY2VFeHByZXNzaW9uLmpzICovLAotCQkJCUU5QUQwNzRCMjBGNTZENUIwMDdGMjQ2NiAvKiBE
b3RFeHByZXNzaW9uLmpzICovLAotCQkJCUU5QUQwNzQ2MjBGNTZENUEwMDdGMjQ2NiAvKiBEb1do
aWxlTG9vcC5qcyAqLywKLQkJCQlFOUFEMDc0OTIwRjU2RDVBMDA3RjI0NjYgLyogRUFycmF5UmVm
LmpzICovLAotCQkJCUU5QUQwNzQ4MjBGNTZENUEwMDdGMjQ2NiAvKiBFQnVmZmVyLmpzICovLAot
CQkJCUU5QUQwNzRBMjBGNTZENUIwMDdGMjQ2NiAvKiBFQnVmZmVyQnVpbGRlci5qcyAqLywKLQkJ
CQlFOTRDMDZGRDIwRjU2Q0EzMDA2NzI5OTIgLyogRW51bUxpdGVyYWwuanMgKi8sCi0JCQkJRTlB
RDA3NTUyMEY1NkQ2OTAwN0YyNDY2IC8qIEVudW1NZW1iZXIuanMgKi8sCi0JCQkJRTlBRDA3NUEy
MEY1NkQ2OTAwN0YyNDY2IC8qIEVudW1UeXBlLmpzICovLAotCQkJCUU5NTU2OUU3MjBGNTZEMDUw
MEY1Q0YzNCAvKiBFUHRyLmpzICovLAotCQkJCUU5QUQwNzUzMjBGNTZENjkwMDdGMjQ2NiAvKiBF
dmFsdWF0aW9uQ29tbW9uLmpzICovLAotCQkJCUU5QUQwNzU3MjBGNTZENjkwMDdGMjQ2NiAvKiBF
dmFsdWF0b3IuanMgKi8sCi0JCQkJRTlBRDA3NTQyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4cHJlc3Np
b24uanMgKi8sCi0JCQkJRTlBRDA3NTkyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4cHJlc3Npb25GaW5k
ZXIuanMgKi8sCi0JCQkJRTlBRDA3NUIyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4dGVybmFsT3JpZ2lu
LmpzICovLAotCQkJCUU5RkNFQjVCMjBGNTZEOTMwMDlCMzYyOSAvKiBGaWVsZC5qcyAqLywKLQkJ
CQlFOUFEMDc1ODIwRjU2RDY5MDA3RjI0NjYgLyogRmluZEhpZ2hab21iaWVzLmpzICovLAotCQkJ
CUU5QUQwNzU2MjBGNTZENjkwMDdGMjQ2NiAvKiBGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJl
ci5qcyAqLywKLQkJCQlFOUFEMDc1QzIwRjU2RDY5MDA3RjI0NjYgLyogRmxvYXRMaXRlcmFsLmpz
ICovLAotCQkJCUU5NTU2OUVBMjBGNTZEMDUwMEY1Q0YzNCAvKiBGbG9hdExpdGVyYWxUeXBlLmpz
ICovLAotCQkJCUU5NTU2OUVCMjBGNTZEMDUwMEY1Q0YzNCAvKiBGb2xkQ29uc3RleHBycy5qcyAq
LywKLQkJCQlFOUZDRUI1QTIwRjU2RDkzMDA5QjM2MjkgLyogRm9yTG9vcC5qcyAqLywKLQkJCQlF
OUZDRUI1NTIwRjU2RDkyMDA5QjM2MjkgLyogRnVuYy5qcyAqLywKLQkJCQkzMUYxMTZDNDIxNkJG
RTkwMDA5QTM2RDUgLyogRnVuY0F0dHJpYnV0ZS5qcyAqLywKLQkJCQlFOTU1NjlFODIwRjU2RDA1
MDBGNUNGMzQgLyogRnVuY0RlZi5qcyAqLywKLQkJCQkzMUYxMTcwNTIxNkJGRTkxMDA5QTM2RDUg
LyogRnVuY051bVRocmVhZHNBdHRyaWJ1dGUuanMgKi8sCi0JCQkJRTk1NTY5RTkyMEY1NkQwNTAw
RjVDRjM0IC8qIEZ1bmNQYXJhbWV0ZXIuanMgKi8sCi0JCQkJRTk1NTY5RTYyMEY1NkQwNTAwRjVD
RjM0IC8qIEZ1bmN0aW9uTGlrZUJsb2NrLmpzICovLAotCQkJCUU5NEMwNkZCMjBGNTZDQTMwMDY3
Mjk5MiAvKiBIaWdoWm9tYmllRmluZGVyLmpzICovLAotCQkJCUU5RkNFQjU4MjBGNTZEOTMwMDlC
MzYyOSAvKiBJZGVudGl0eUV4cHJlc3Npb24uanMgKi8sCi0JCQkJRTlGQ0VCNTcyMEY1NkQ5MzAw
OUIzNjI5IC8qIElmU3RhdGVtZW50LmpzICovLAotCQkJCUU5RkNFQjYzMjBGNTZEQTQwMDlCMzYy
OSAvKiBJbmRleEV4cHJlc3Npb24uanMgKi8sCi0JCQkJRTlGQ0VCNjUyMEY1NkRBNTAwOUIzNjI5
IC8qIEluZmVyVHlwZXNGb3JDYWxsLmpzICovLAotCQkJCUU5RkNFQjY2MjBGNTZEQTUwMDlCMzYy
OSAvKiBJbmxpbmUuanMgKi8sCi0JCQkJRTkyRDBGRTgyMEY1NkRERDAwRDc3NkIyIC8qIElubGlu
ZXIuanMgKi8sCi0JCQkJRTkyRDBGRTQyMEY1NkRERDAwRDc3NkIyIC8qIEludExpdGVyYWwuanMg
Ki8sCi0JCQkJRTkyRDBGRTUyMEY1NkRERDAwRDc3NkIyIC8qIEludExpdGVyYWxUeXBlLmpzICov
LAotCQkJCUU5MkQwRkU3MjBGNTZEREQwMEQ3NzZCMiAvKiBJbnRyaW5zaWNzLmpzICovLAotCQkJ
CUU5RDdDQjlCMjE0QjgyQjcwMEYxQzkxOCAvKiBMYXlvdXRCdWZmZXJzLmpzICovLAotCQkJCUU5
MkQwRkYxMjBGNTZERUMwMEQ3NzZCMiAvKiBMZXhlci5qcyAqLywKLQkJCQlFOTJEMEZGMDIwRjU2
REVCMDBENzc2QjIgLyogTGV4ZXJUb2tlbi5qcyAqLywKLQkJCQlFOTJEMEZGMjIwRjU2REVDMDBE
Nzc2QjIgLyogTGl0ZXJhbFR5cGVDaGVja2VyLmpzICovLAotCQkJCUU5MkQwRkVFMjBGNTZERUIw
MEQ3NzZCMiAvKiBMb2dpY2FsRXhwcmVzc2lvbi5qcyAqLywKLQkJCQlFOTJEMEZFRjIwRjU2REVC
MDBENzc2QjIgLyogTG9naWNhbE5vdC5qcyAqLywKLQkJCQlFOTJEMEZGQjIwRjU2REZCMDBENzc2
QjIgLyogTG9vcENoZWNrZXIuanMgKi8sCi0JCQkJRTkyRDBGRkMyMEY1NkRGQjAwRDc3NkIyIC8q
IE1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMgKi8sCi0JCQkJRTkyRDBGRjkyMEY1NkRGQTAwRDc3
NkIyIC8qIE1ha2VQdHJFeHByZXNzaW9uLmpzICovLAotCQkJCUU5MjFENjMzMjEzOEMwMjYwMDc3
NTA5OSAvKiBNYXRyaXhUeXBlLmpzICovLAotCQkJCUU5RDdDQjk1MjE0QjgyNDIwMEYxQzkxOCAv
KiBNU0xCYWNrZW5kLmpzICovLAotCQkJCUU5N0VEN0U1MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xD
b2RlZ2VuQWxsLmpzICovLAotCQkJCUU5N0VEN0U4MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xDb21w
aWxlUmVzdWx0LmpzICovLAotCQkJCUU5RDdDQjk2MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xDb25z
dGV4cHJFbWl0dGVyLmpzICovLAotCQkJCUU5Mjc4OUFDMjEzRjMzNjQwMDFFQTczRSAvKiBNU0xG
dW5jdGlvbkRlY2xhcmF0aW9uLmpzICovLAotCQkJCUU5Mjc4OUFCMjEzRjMzNjQwMDFFQTczRSAv
KiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgKi8sCi0JCQkJRTk3M0U1QzcyMTNGMzM4NTAwNUQ3
OUZDIC8qIE1TTEZ1bmN0aW9uRm9yd2FyZERlY2xhcmF0aW9uLmpzICovLAotCQkJCTMxRjExNzlF
MjE2QkZGMDcwMDlBMzZENSAvKiBNU0xJbnNlcnRUcmFwUGFyYW1ldGVyLmpzICovLAotCQkJCUU5
N0VEN0UxMjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xOYW1lTWFuZ2xlci5qcyAqLywKLQkJCQlFOTdF
RDdFNDIxNEI4MjI5MDBBRDExNDAgLyogTVNMTmF0aXZlRnVuY3Rpb25DYWxsLmpzICovLAotCQkJ
CUU5NzNFNUM4MjEzRjMzODUwMDVENzlGQyAvKiBNU0xTdGF0ZW1lbnRFbWl0dGVyLmpzICovLAot
CQkJCUU5N0VEN0U3MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xUeXBlQXR0cmlidXRlcy5qcyAqLywK
LQkJCQlFOTdFRDdFMjIxNEI4MjI5MDBBRDExNDAgLyogTVNMVHlwZUF0dHJpYnV0ZXNNYXAuanMg
Ki8sCi0JCQkJRTk3RUQ3RTYyMTRCODIyOTAwQUQxMTQwIC8qIE1TTFR5cGVVbmlmaWVyLmpzICov
LAotCQkJCUU5MkQwRkY4MjBGNTZERkEwMEQ3NzZCMiAvKiBOYW1lQ29udGV4dC5qcyAqLywKLQkJ
CQlFOTJEMEZGQTIwRjU2REZCMDBENzc2QjIgLyogTmFtZUZpbmRlci5qcyAqLywKLQkJCQlFOTJE
MTAwMzIwRjU2RTA5MDBENzc2QjIgLyogTmFtZVJlc29sdmVyLmpzICovLAotCQkJCUU5MkQxMDA1
MjBGNTZFMDkwMEQ3NzZCMiAvKiBOYXRpdmVGdW5jLmpzICovLAotCQkJCUU5MkQxMDA2MjBGNTZF
MDkwMEQ3NzZCMiAvKiBOYXRpdmVUeXBlLmpzICovLAotCQkJCUU5MkQxMDBGMjBGNTZFMTUwMEQ3
NzZCMiAvKiBOb2RlLmpzICovLAotCQkJCUU5MkQxMDBEMjBGNTZFMTUwMEQ3NzZCMiAvKiBOb3Jt
YWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzICovLAotCQkJCUU5MkQxMDBDMjBGNTZFMTUwMEQ3NzZC
MiAvKiBOdWxsTGl0ZXJhbC5qcyAqLywKLQkJCQlFOTJEMTAxMDIwRjU2RTE1MDBENzc2QjIgLyog
TnVsbFR5cGUuanMgKi8sCi0JCQkJRTkyMUQ2MzIyMTM4QzAyNjAwNzc1MDk5IC8qIE9wZXJhdG9y
QW5kZXJJbmRleGVyLmpzICovLAotCQkJCUU5NDFBQ0I2MjEzNEE1QkIwMDM5MkJBOSAvKiBPcGVy
YXRvckFycmF5UmVmTGVuZ3RoLmpzICovLAotCQkJCUU5MkQxMDBFMjBGNTZFMTUwMEQ3NzZCMiAv
KiBPcmlnaW5LaW5kLmpzICovLAotCQkJCUU5MkQxMDE5MjBGNTZFMjIwMEQ3NzZCMiAvKiBPdmVy
bG9hZFJlc29sdXRpb25GYWlsdXJlLmpzICovLAotCQkJCUU5MkQxMDE3MjBGNTZFMjIwMEQ3NzZC
MiAvKiBQYXJzZS5qcyAqLywKLQkJCQlFOTJEMTAxODIwRjU2RTIyMDBENzc2QjIgLyogUHJlcGFy
ZS5qcyAqLywKLQkJCQlFOTJEMTAxQTIwRjU2RTIyMDBENzc2QjIgLyogUHJvZ3JhbS5qcyAqLywK
LQkJCQlFOTJEMTAxNjIwRjU2RTIxMDBENzc2QjIgLyogUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRo
aW5nc1JlbW92ZWQuanMgKi8sCi0JCQkJRTkyRDEwMjMyMEY1NkUyRjAwRDc3NkIyIC8qIFByb3Bl
cnR5QWNjZXNzRXhwcmVzc2lvbi5qcyAqLywKLQkJCQlFOTJEMTAyMDIwRjU2RTJGMDBENzc2QjIg
LyogUHJvcGVydHlSZXNvbHZlci5qcyAqLywKLQkJCQlFOTJEMTAyQjIwRjU2RTNGMDBENzc2QjIg
LyogUHRyVHlwZS5qcyAqLywKLQkJCQlFOTJEMTAyQTIwRjU2RTNGMDBENzc2QjIgLyogUmVhZE1v
ZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyAqLywKLQkJCQlFOTJEMTAyQzIwRjU2RTNGMDBENzc2QjIg
LyogUmVjdXJzaW9uQ2hlY2tlci5qcyAqLywKLQkJCQlFOTJEMTAyRTIwRjU2RTQwMDBENzc2QjIg
LyogUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMgKi8sCi0JCQkJRTkyRDEwMzUyMEY1NkU0RjAwRDc3
NkIyIC8qIFJlZmVyZW5jZVR5cGUuanMgKi8sCi0JCQkJRTkyRDEwMzQyMEY1NkU0RjAwRDc3NkIy
IC8qIFJlc29sdmVOYW1lcy5qcyAqLywKLQkJCQlFOTJEMTAzODIwRjU2RTRGMDBENzc2QjIgLyog
UmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyAqLywKLQkJCQlFOTJEMTAzNjIwRjU2RTRGMDBENzc2QjIg
LyogUmVzb2x2ZVByb3BlcnRpZXMuanMgKi8sCi0JCQkJRTkyRDEwMzcyMEY1NkU0RjAwRDc3NkIy
IC8qIFJlc29sdmVUeXBlRGVmcy5qcyAqLywKLQkJCQkzMUYxMTcwNDIxNkJGRTkwMDA5QTM2RDUg
LyogUmVzb3VyY2VTZW1hbnRpYy5qcyAqLywKLQkJCQlFOTJEMTAzRTIwRjU2RTYxMDBENzc2QjIg
LyogUmV0dXJuLmpzICovLAotCQkJCUU5MkQxMDQwMjBGNTZFNjIwMEQ3NzZCMiAvKiBSZXR1cm5D
aGVja2VyLmpzICovLAotCQkJCUU5MkQxMDQyMjBGNTZFNjIwMEQ3NzZCMiAvKiBSZXR1cm5FeGNl
cHRpb24uanMgKi8sCi0JCQkJRTkyRDEwNDEyMEY1NkU2MjAwRDc3NkIyIC8qIFJld3JpdGVyLmpz
ICovLAotCQkJCUU5RDdDQjlEMjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzICovLAotCQkJ
CTMxRjExNzA2MjE2QkZFOTEwMDlBMzZENSAvKiBTZW1hbnRpYy5qcyAqLywKLQkJCQkzMUYxMTcw
ODIxNkJGRTkyMDA5QTM2RDUgLyogU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzICov
LAotCQkJCTMxRjExNzM3MjE2QkZFRUIwMDlBMzZENSAvKiBTdGFnZUluT3V0U2VtYW50aWMuanMg
Ki8sCi0JCQkJRTkyRDEwM0YyMEY1NkU2MjAwRDc3NkIyIC8qIFN0YW5kYXJkTGlicmFyeS5qcyAq
LywKLQkJCQlFOTJEMTA0ODIwRjU2RTczMDBENzc2QjIgLyogU3RhdGVtZW50Q2xvbmVyLmpzICov
LAotCQkJCUU5MkQxMDQ5MjBGNTZFNzMwMEQ3NzZCMiAvKiBTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpz
ICovLAotCQkJCUU5MkQxMDRBMjBGNTZFNzMwMEQ3NzZCMiAvKiBTdHJ1Y3RUeXBlLmpzICovLAot
CQkJCUU5MkQxMDRCMjBGNTZFNzMwMEQ3NzZCMiAvKiBTd2l0Y2hDYXNlLmpzICovLAotCQkJCUU5
MkQxMDUyMjBGNTZFODQwMEQ3NzZCMiAvKiBTd2l0Y2hTdGF0ZW1lbnQuanMgKi8sCi0JCQkJRTk0
MUFDQjcyMTM0QTVCQjAwMzkyQkE5IC8qIFN5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpz
ICovLAotCQkJCUU5NDFBQ0FGMjEzNEE1QkEwMDM5MkJBOSAvKiBTeW50aGVzaXplQ29weUNvbnN0
cnVjdG9yT3BlcmF0b3IuanMgKi8sCi0JCQkJRTk0MUFDQjMyMTM0QTVCQjAwMzkyQkE5IC8qIFN5
bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyAqLywKLQkJCQlFOTJEMTA1NDIw
RjU2RTg1MDBENzc2QjIgLyogU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMgKi8sCi0JCQkJRTky
RDEwNTMyMEY1NkU4NDAwRDc3NkIyIC8qIFN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgKi8s
Ci0JCQkJRTk0MUFDQjUyMTM0QTVCQjAwMzkyQkE5IC8qIFRlcm5hcnlFeHByZXNzaW9uLmpzICov
LAotCQkJCUU5NEQxMjdFMjExNEM2RkYwMEIwRjk2NyAvKiBUZXN0LmpzICovLAotCQkJCUU5RDdD
QjlBMjE0QjgyQjcwMEYxQzkxOCAvKiBUZXh0dXJlLmpzICovLAotCQkJCUU5RDdDQjlFMjE0Qjgy
QjgwMEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyAqLywKLQkJCQlFOTJEMTA1NjIwRjU2
RTg1MDBENzc2QjIgLyogVHJhcFN0YXRlbWVudC5qcyAqLywKLQkJCQlFOTJEMTA1NTIwRjU2RTg1
MDBENzc2QjIgLyogVHlwZS5qcyAqLywKLQkJCQlFOTJEMTA1RjIwRjU2RTk1MDBENzc2QjIgLyog
VHlwZURlZi5qcyAqLywKLQkJCQlFOTJEMTA1RTIwRjU2RTk1MDBENzc2QjIgLyogVHlwZURlZlJl
c29sdmVyLmpzICovLAotCQkJCUU5MkQxMDYwMjBGNTZFOTUwMEQ3NzZCMiAvKiBUeXBlZFZhbHVl
LmpzICovLAotCQkJCUU5Mjc4OUIwMjEzRjMzNjQwMDFFQTczRSAvKiBUeXBlT2YuanMgKi8sCi0J
CQkJRTk0MUFDQkEyMTM0QTVCQjAwMzkyQkE5IC8qIFR5cGVPdmVybG9hZFJlc29sdXRpb25GYWls
dXJlLmpzICovLAotCQkJCUU5MkQxMDY2MjBGNTZFQTQwMEQ3NzZCMiAvKiBUeXBlUmVmLmpzICov
LAotCQkJCUU5MkQxMDY4MjBGNTZFQTQwMEQ3NzZCMiAvKiBVaW50TGl0ZXJhbC5qcyAqLywKLQkJ
CQlFOTJEMTA2NzIwRjU2RUE0MDBENzc2QjIgLyogVWludExpdGVyYWxUeXBlLmpzICovLAotCQkJ
CUU5MkQxMDcyMjBGNTZFQkIwMEQ3NzZCMiAvKiBVbmlmaWNhdGlvbkNvbnRleHQuanMgKi8sCi0J
CQkJRTkyRDEwNzMyMEY1NkVCQzAwRDc3NkIyIC8qIFVucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMg
Ki8sCi0JCQkJRTkyRDEwNzQyMEY1NkVCQzAwRDc3NkIyIC8qIFZhbHVlLmpzICovLAotCQkJCUU5
MkQxMDcwMjBGNTZFQkIwMEQ3NzZCMiAvKiBWYXJpYWJsZURlY2wuanMgKi8sCi0JCQkJRTkyRDEw
NzEyMEY1NkVCQjAwRDc3NkIyIC8qIFZhcmlhYmxlUmVmLmpzICovLAotCQkJCUU5NDFBQ0JCMjEz
NEE1QkIwMDM5MkJBOSAvKiBWZWN0b3JUeXBlLmpzICovLAotCQkJCUU5MkQxMDdDMjBGNTZFQ0Yw
MEQ3NzZCMiAvKiBWaXNpdGluZ1NldC5qcyAqLywKLQkJCQlFOTJEMTA3QTIwRjU2RUNGMDBENzc2
QjIgLyogVmlzaXRvci5qcyAqLywKLQkJCQlFOTJEMTA3RDIwRjU2RUNGMDBENzc2QjIgLyogV2hp
bGVMb29wLmpzICovLAotCQkJCUU5RDdDQjk0MjE0QjgyNDIwMEYxQzkxOCAvKiBXaGxzbFRvTXNs
LmpzICovLAotCQkJCUU5RDdDQjlGMjE0QjgyQjgwMEYxQzkxOCAvKiBXTGV4aWNhbEVycm9yLmpz
ICovLAotCQkJCUU5MkQxMDdCMjBGNTZFQ0YwMEQ3NzZCMiAvKiBXcmFwQ2hlY2tlci5qcyAqLywK
LQkJCQlFOTJEMTA4MjIwRjU2RURFMDBENzc2QjIgLyogV1N5bnRheEVycm9yLmpzICovLAotCQkJ
CUU5MkQxMDg0MjBGNTZFREUwMEQ3NzZCMiAvKiBXVHJhcEVycm9yLmpzICovLAotCQkJCUU5MkQx
MDgzMjBGNTZFREUwMEQ3NzZCMiAvKiBXVHlwZUVycm9yLmpzICovLAotCQkJKTsKLQkJCW5hbWUg
PSBTY3JpcHRzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLS8qIEVuZCBQQlhH
cm91cCBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCi0J
CUU5NEMwNkJGMjBGNTZBNDAwMDY3Mjk5MiAvKiBXSExTTCBUZXN0cyAqLyA9IHsKLQkJCWlzYSA9
IFBCWE5hdGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBFOTRDMDZFQTIw
RjU2QTQyMDA2NzI5OTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVU
YXJnZXQgIldITFNMIFRlc3RzIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCUU5NEMwNkJD
MjBGNTZBNDAwMDY3Mjk5MiAvKiBTb3VyY2VzICovLAotCQkJCUU5NEMwNkJEMjBGNTZBNDAwMDY3
Mjk5MiAvKiBGcmFtZXdvcmtzICovLAotCQkJCUU5NEMwNkJFMjBGNTZBNDAwMDY3Mjk5MiAvKiBS
ZXNvdXJjZXMgKi8sCi0JCQkpOwotCQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRl
bmNpZXMgPSAoCi0JCQkpOwotCQkJbmFtZSA9ICJXSExTTCBUZXN0cyI7Ci0JCQlwcm9kdWN0TmFt
ZSA9ICJXSExTTCBUb3kiOwotCQkJcHJvZHVjdFJlZmVyZW5jZSA9IEU5NEMwNkMwMjBGNTZBNDAw
MDY3Mjk5MiAvKiBXSExTTCBUZXN0cy5hcHAgKi87Ci0JCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBw
bGUucHJvZHVjdC10eXBlLmFwcGxpY2F0aW9uIjsKLQkJfTsKLQkJRTk0QzA2RDUyMEY1NkE0MjAw
NjcyOTkyIC8qIFdITFNMIFRlc3RzVGVzdHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJn
ZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gRTk0QzA2RUQyMEY1NkE0MjAwNjcyOTky
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXSExTTCBU
ZXN0c1Rlc3RzIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCUU5NEMwNkQyMjBGNTZBNDIw
MDY3Mjk5MiAvKiBTb3VyY2VzICovLAotCQkJCUU5NEMwNkQzMjBGNTZBNDIwMDY3Mjk5MiAvKiBG
cmFtZXdvcmtzICovLAotCQkJCUU5NEMwNkQ0MjBGNTZBNDIwMDY3Mjk5MiAvKiBSZXNvdXJjZXMg
Ki8sCi0JCQkpOwotCQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAo
Ci0JCQkJRTk0QzA2RDgyMEY1NkE0MjAwNjcyOTkyIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8s
Ci0JCQkpOwotCQkJbmFtZSA9ICJXSExTTCBUZXN0c1Rlc3RzIjsKLQkJCXByb2R1Y3ROYW1lID0g
IldITFNMIFRveVRlc3RzIjsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSBFOTRDMDZENjIwRjU2QTQy
MDA2NzI5OTIgLyogV0hMU0wgVGVzdHNUZXN0cy54Y3Rlc3QgKi87Ci0JCQlwcm9kdWN0VHlwZSA9
ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmJ1bmRsZS51bml0LXRlc3QiOwotCQl9OwotLyogRW5k
IFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWFByb2plY3Qgc2VjdGlv
biAqLwotCQlFOTRDMDZCODIwRjU2QTQwMDA2NzI5OTIgLyogUHJvamVjdCBvYmplY3QgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhQcm9qZWN0OwotCQkJYXR0cmlidXRlcyA9IHsKLQkJCQlMYXN0VXBncmFk
ZUNoZWNrID0gMTAwMDsKLQkJCQlPUkdBTklaQVRJT05OQU1FID0gIkFwcGxlLCBJbmMuIjsKLQkJ
CQlUYXJnZXRBdHRyaWJ1dGVzID0gewotCQkJCQlFOTRDMDZCRjIwRjU2QTQwMDA2NzI5OTIgPSB7
Ci0JCQkJCQlDcmVhdGVkT25Ub29sc1ZlcnNpb24gPSAxMC4wOwotCQkJCQl9OwotCQkJCQlFOTRD
MDZENTIwRjU2QTQyMDA2NzI5OTIgPSB7Ci0JCQkJCQlDcmVhdGVkT25Ub29sc1ZlcnNpb24gPSAx
MC4wOwotCQkJCQkJVGVzdFRhcmdldElEID0gRTk0QzA2QkYyMEY1NkE0MDAwNjcyOTkyOwotCQkJ
CQl9OwotCQkJCX07Ci0JCQl9OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEU5NEMwNkJC
MjBGNTZBNDAwMDY3Mjk5MiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2pl
Y3QgIldITFNMIFRlc3RzIiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDku
MyI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7Ci0JCQloYXNTY2FubmVkRm9yRW5j
b2RpbmdzID0gMDsKLQkJCWtub3duUmVnaW9ucyA9ICgKLQkJCQllbiwKLQkJCQlCYXNlLAotCQkJ
KTsKLQkJCW1haW5Hcm91cCA9IEU5NEMwNkI3MjBGNTZBNDAwMDY3Mjk5MjsKLQkJCXByb2R1Y3RS
ZWZHcm91cCA9IEU5NEMwNkMxMjBGNTZBNDAwMDY3Mjk5MiAvKiBQcm9kdWN0cyAqLzsKLQkJCXBy
b2plY3REaXJQYXRoID0gIiI7Ci0JCQlwcm9qZWN0Um9vdCA9ICIiOwotCQkJdGFyZ2V0cyA9ICgK
LQkJCQlFOTRDMDZCRjIwRjU2QTQwMDA2NzI5OTIgLyogV0hMU0wgVGVzdHMgKi8sCi0JCQkJRTk0
QzA2RDUyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNMIFRlc3RzVGVzdHMgKi8sCi0JCQkpOwotCQl9
OwotLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhSZXNvdXJjZXNC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJRTk0QzA2QkUyMEY1NkE0MDAwNjcyOTkyIC8qIFJlc291
cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJRTkyRUUwMEMyMTE1NTQ5
ODAwNDJGOTYwIC8qIF9TaGFyZWRNZXRhbC50eHQgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQx
MTE2MjBGNzA2MEUwMEQ3NzZCMiAvKiBBZGRyZXNzU3BhY2UuanMgaW4gUmVzb3VyY2VzICovLAot
CQkJCUU5MkQxMTE3MjBGNzA2MEUwMEQ3NzZCMiAvKiBBbGwuanMgaW4gUmVzb3VyY2VzICovLAot
CQkJCUU5QkM1MERBMjE1NUFEMUUwMDA1OTRFOCAvKiBBbGxvY2F0ZUF0RW50cnlQb2ludHMuanMg
aW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTE4MjBGNzA2MEUwMEQ3NzZCMiAvKiBBbm9ueW1v
dXNWYXJpYWJsZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMTkyMEY3MDYwRTAwRDc3
NkIyIC8qIEFycmF5UmVmVHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMUEyMEY3
MDYwRTAwRDc3NkIyIC8qIEFycmF5VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTk0QzA2
Q0EyMEY1NkE0MjAwNjcyOTkyIC8qIEFzc2V0cy54Y2Fzc2V0cyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExMUIyMEY3MDYwRTAwRDc3NkIyIC8qIEFzc2lnbm1lbnQuanMgaW4gUmVzb3VyY2Vz
ICovLAotCQkJCUU5MkQxMTFDMjBGNzA2MEUwMEQ3NzZCMiAvKiBBdXRvV3JhcHBlci5qcyBpbiBS
ZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMUQyMEY3MDYwRTAwRDc3NkIyIC8qIEJsb2NrLmpzIGlu
IFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTExRTIwRjcwNjBFMDBENzc2QjIgLyogQm9vbExpdGVy
YWwuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTFGMjBGNzA2MEUwMEQ3NzZCMiAvKiBC
cmVhay5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyMUQ2MzgyMTM4QzAyNjAwNzc1MDk5IC8q
IEJ1aWx0aW5NYXRyaXhHZXR0ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MjFENjM5MjEz
OEMwMjYwMDc3NTA5OSAvKiBCdWlsdGluTWF0cml4U2V0dGVyLmpzIGluIFJlc291cmNlcyAqLywK
LQkJCQkzMUYxMTcwQTIxNkJGRTkyMDA5QTM2RDUgLyogQnVpbHRJblNlbWFudGljLmpzIGluIFJl
c291cmNlcyAqLywKLQkJCQlFOTQxQUNDQTIxMzRBNUJDMDAzOTJCQTkgLyogQnVpbHRpblZlY3Rv
ckdldHRlci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTk0MUFDQ0QyMTM0QTVCQzAwMzkyQkE5
IC8qIEJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTIw
MjBGNzA2MEUwMEQ3NzZCMiAvKiBDYWxsRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExMjEyMEY3MDYwRTAwRDc3NkIyIC8qIENhbGxGdW5jdGlvbi5qcyBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJRTlEN0NCQTIyMTRCODJCODAwRjFDOTE4IC8qIENhc3RzLmpzIGluIFJlc291
cmNlcyAqLywKLQkJCQlFOTJEMTEyMjIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2suanMgaW4gUmVz
b3VyY2VzICovLAotCQkJCUU5MkQxMTIzMjBGNzA2MEUwMEQ3NzZCMiAvKiBDaGVja2VyLmpzIGlu
IFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTEyNDIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tMaXRl
cmFsVHlwZXMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTI1MjBGNzA2MEUwMEQ3NzZC
MiAvKiBDaGVja0xvb3BzLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQkzMUYxMTczNTIxNkJGRTkz
MDA5QTM2RDUgLyogQ2hlY2tOYXRpdmVGdW5jU3RhZ2VzLmpzIGluIFJlc291cmNlcyAqLywKLQkJ
CQlFOTJEMTEyNjIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tSZWN1cnNpb24uanMgaW4gUmVzb3Vy
Y2VzICovLAotCQkJCUU5MkQxMTI3MjBGNzA2MEUwMEQ3NzZCMiAvKiBDaGVja1JlY3Vyc2l2ZVR5
cGVzLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTEyODIwRjcwNjBFMDBENzc2QjIgLyog
Q2hlY2tSZXR1cm5zLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTQxQUNCRjIxMzRBNUJDMDAz
OTJCQTkgLyogQ2hlY2tUeXBlc1dpdGhBcmd1bWVudHMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJ
CUU5MkQxMTI5MjBGNzA2MEUwMEQ3NzZCMiAvKiBDaGVja1VucmVhY2hhYmxlQ29kZS5qcyBpbiBS
ZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMkEyMEY3MDYwRTAwRDc3NkIyIC8qIENoZWNrV3JhcHBl
ZC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMkIyMEY3MDYwRTAwRDc3NkIyIC8qIENs
b25lUHJvZ3JhbS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMkMyMEY3MDYwRTAwRDc3
NkIyIC8qIENvbW1hRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMkUy
MEY3MDYwRTAwRDc3NkIyIC8qIENvbnN0ZXhwckZvbGRlci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExMzAyMEY3MDYwRTAwRDc3NkIyIC8qIENvbnRpbnVlLmpzIGluIFJlc291cmNlcyAq
LywKLQkJCQlFOTJEMTEzMTIwRjcwNjBFMDBENzc2QjIgLyogQ29udmVydFB0clRvQXJyYXlSZWZF
eHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTEzMjIwRjcwNjBFMDBENzc2
QjIgLyogQ3JlYXRlTGl0ZXJhbC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMzMyMEY3
MDYwRTAwRDc3NkIyIC8qIENyZWF0ZUxpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLywKLQkJ
CQlFOTJEMTA5MzIwRjU3MzQ5MDBENzc2QjIgLyogRGVmYXVsdC53aGxzbCBpbiBSZXNvdXJjZXMg
Ki8sCi0JCQkJRTkyRDExMzQyMEY3MDYwRTAwRDc3NkIyIC8qIERlcmVmZXJlbmNlRXhwcmVzc2lv
bi5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMzUyMEY3MDYwRTAwRDc3NkIyIC8qIERv
dEV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTM4MjBGNzA2MEUwMEQ3
NzZCMiAvKiBEb1doaWxlTG9vcC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMzkyMEY3
MDYwRTAwRDc3NkIyIC8qIEVBcnJheVJlZi5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDEx
M0EyMEY3MDYwRTAwRDc3NkIyIC8qIEVCdWZmZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5
MkQxMTNCMjBGNzA2MEUwMEQ3NzZCMiAvKiBFQnVmZmVyQnVpbGRlci5qcyBpbiBSZXNvdXJjZXMg
Ki8sCi0JCQkJRTkyRDExM0MyMEY3MDYwRTAwRDc3NkIyIC8qIEVudW1MaXRlcmFsLmpzIGluIFJl
c291cmNlcyAqLywKLQkJCQlFOTJEMTEzRDIwRjcwNjBFMDBENzc2QjIgLyogRW51bU1lbWJlci5q
cyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExM0UyMEY3MDYwRTAwRDc3NkIyIC8qIEVudW1U
eXBlLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTEzRjIwRjcwNjBFMDBENzc2QjIgLyog
RVB0ci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNDAyMEY3MDYwRTAwRDc3NkIyIC8q
IEV2YWx1YXRpb25Db21tb24uanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTQxMjBGNzA2
MEUwMEQ3NzZCMiAvKiBFdmFsdWF0b3IuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTQy
MjBGNzA2MEUwMEQ3NzZCMiAvKiBFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlF
OTJEMTE0MzIwRjcwNjBFMDBENzc2QjIgLyogRXhwcmVzc2lvbkZpbmRlci5qcyBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJRTkyRDExNDQyMEY3MDYwRTAwRDc3NkIyIC8qIEV4dGVybmFsT3JpZ2luLmpz
IGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE0NTIwRjcwNjBFMDBENzc2QjIgLyogRmllbGQu
anMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTQ2MjBGNzA2MEUwMEQ3NzZCMiAvKiBGaW5k
SGlnaFpvbWJpZXMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTQ3MjBGNzA2MEUwMEQ3
NzZCMiAvKiBGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyBpbiBSZXNvdXJjZXMgKi8s
Ci0JCQkJRTkyRDExNDkyMEY3MDYwRTAwRDc3NkIyIC8qIEZsb2F0TGl0ZXJhbC5qcyBpbiBSZXNv
dXJjZXMgKi8sCi0JCQkJRTkyRDExNEEyMEY3MDYwRTAwRDc3NkIyIC8qIEZsb2F0TGl0ZXJhbFR5
cGUuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTRCMjBGNzA2MEUwMEQ3NzZCMiAvKiBG
b2xkQ29uc3RleHBycy5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNEMyMEY3MDYwRTAw
RDc3NkIyIC8qIEZvckxvb3AuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTREMjBGNzA2
MEUwMEQ3NzZCMiAvKiBGdW5jLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQkzMUYxMTcwOTIxNkJG
RTkyMDA5QTM2RDUgLyogRnVuY0F0dHJpYnV0ZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTky
RDExNEUyMEY3MDYwRTAwRDc3NkIyIC8qIEZ1bmNEZWYuanMgaW4gUmVzb3VyY2VzICovLAotCQkJ
CTMxRjExNzMzMjE2QkZFOTMwMDlBMzZENSAvKiBGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qcyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNTAyMEY3MDYwRTAwRDc3NkIyIC8qIEZ1bmNQYXJh
bWV0ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTUxMjBGNzA2MEUwMEQ3NzZCMiAv
KiBGdW5jdGlvbkxpa2VCbG9jay5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNTIyMEY3
MDYwRTAwRDc3NkIyIC8qIEhpZ2hab21iaWVGaW5kZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJ
CUU5MkQxMTUzMjBGNzA2MEUwMEQ3NzZCMiAvKiBJZGVudGl0eUV4cHJlc3Npb24uanMgaW4gUmVz
b3VyY2VzICovLAotCQkJCUU5MkQxMTU0MjBGNzA2MEUwMEQ3NzZCMiAvKiBJZlN0YXRlbWVudC5q
cyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNTUyMEY3MDYwRTAwRDc3NkIyIC8qIEluZGV4
RXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNTYyMEY3MDYwRTAwRDc3
NkIyIC8qIEluZmVyVHlwZXNGb3JDYWxsLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE1
NzIwRjcwNjBFMDBENzc2QjIgLyogSW5saW5lLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJE
MTE1ODIwRjcwNjBFMDBENzc2QjIgLyogSW5saW5lci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJ
RTkyRDExNUEyMEY3MDYwRTAwRDc3NkIyIC8qIEludExpdGVyYWwuanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMTVCMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsVHlwZS5qcyBpbiBS
ZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNUMyMEY3MDYwRTAwRDc3NkIyIC8qIEludHJpbnNpY3Mu
anMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MDZCMDQ2MjExMzlCNzcwMEFEMUM1RSAvKiBKdWxp
YS53aGxzbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTlEN0NCQTEyMTRCODJCODAwRjFDOTE4IC8q
IExheW91dEJ1ZmZlcnMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTVFMjBGNzA2MEUw
MEQ3NzZCMiAvKiBMZXhlci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNUYyMEY3MDYw
RTAwRDc3NkIyIC8qIExleGVyVG9rZW4uanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTYw
MjBGNzA2MEUwMEQ3NzZCMiAvKiBMaXRlcmFsVHlwZUNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMTYxMjBGNzA2MEUwMEQ3NzZCMiAvKiBMb2dpY2FsRXhwcmVzc2lvbi5qcyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNjIyMEY3MDYwRTAwRDc3NkIyIC8qIExvZ2ljYWxO
b3QuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTYzMjBGNzA2MEUwMEQ3NzZCMiAvKiBM
b29wQ2hlY2tlci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRUUwMDAyMTE1NDZBQjAwNDJG
OTYwIC8qIE1haW4uc3Rvcnlib2FyZCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNjQyMEY3
MDYwRTAwRDc3NkIyIC8qIE1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMTY1MjBGNzA2MEUwMEQ3NzZCMiAvKiBNYWtlUHRyRXhwcmVzc2lvbi5qcyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJRTk0RDEyNEYyMTE0QkQ3NjAwQjBGOTY3IC8qIE1hbmRlbGJy
b3Qud2hsc2wgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MjFENjM3MjEzOEMwMjYwMDc3NTA5OSAv
KiBNYXRyaXhUeXBlLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOUQ3Q0I5ODIxNEI4MjQyMDBG
MUM5MTggLyogTVNMQmFja2VuZC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTlEN0NCQTYyMTRC
OUU1RjAwRjFDOTE4IC8qIE1TTENvZGVnZW5BbGwuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5
RDdDQkE3MjE0QjlFNUYwMEYxQzkxOCAvKiBNU0xDb21waWxlUmVzdWx0LmpzIGluIFJlc291cmNl
cyAqLywKLQkJCQlFOUQ3Q0I5OTIxNEI4MjQyMDBGMUM5MTggLyogTVNMQ29uc3RleHByRW1pdHRl
ci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTk3M0U1REUyMTNGMzQxRDAwNUQ3OUZDIC8qIE1T
TEZ1bmN0aW9uRGVjbGFyYXRpb24uanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5NzNFNURGMjEz
RjM0MUQwMDVENzlGQyAvKiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5NzNFNUNFMjEzRjMzODUwMDVENzlGQyAvKiBNU0xGdW5jdGlvbkZvcndhcmREZWNs
YXJhdGlvbi5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFGMTE3OUYyMTZCRkYwNzAwOUEzNkQ1
IC8qIE1TTEluc2VydFRyYXBQYXJhbWV0ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5RDdD
QkE4MjE0QjlFNUYwMEYxQzkxOCAvKiBNU0xOYW1lTWFuZ2xlci5qcyBpbiBSZXNvdXJjZXMgKi8s
Ci0JCQkJRTlEN0NCQTkyMTRCOUU1RjAwRjFDOTE4IC8qIE1TTE5hdGl2ZUZ1bmN0aW9uQ2FsbC5q
cyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTk3M0U1Q0YyMTNGMzM4NTAwNUQ3OUZDIC8qIE1TTFN0
YXRlbWVudEVtaXR0ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5RDdDQkFBMjE0QjlFNUYw
MEYxQzkxOCAvKiBNU0xUeXBlQXR0cmlidXRlcy5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTlE
N0NCQUIyMTRCOUU1RjAwRjFDOTE4IC8qIE1TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzIGluIFJlc291
cmNlcyAqLywKLQkJCQlFOUQ3Q0JBQzIxNEI5RTVGMDBGMUM5MTggLyogTVNMVHlwZVVuaWZpZXIu
anMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTY2MjBGNzA2MEUwMEQ3NzZCMiAvKiBOYW1l
Q29udGV4dC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNjcyMEY3MDYwRTAwRDc3NkIy
IC8qIE5hbWVGaW5kZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTY4MjBGNzA2MEUw
MEQ3NzZCMiAvKiBOYW1lUmVzb2x2ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTY5
MjBGNzA2MEUwMEQ3NzZCMiAvKiBOYXRpdmVGdW5jLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlF
OTJEMTE2QjIwRjcwNjBFMDBENzc2QjIgLyogTmF0aXZlVHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8s
Ci0JCQkJRTkyRDExNkQyMEY3MDYwRTAwRDc3NkIyIC8qIE5vZGUuanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMTZFMjBGNzA2MEUwMEQ3NzZCMiAvKiBOb3JtYWxVc2VQcm9wZXJ0eVJlc29s
dmVyLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE2RjIwRjcwNjBFMDBENzc2QjIgLyog
TnVsbExpdGVyYWwuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTcwMjBGNzA2MEUwMEQ3
NzZCMiAvKiBOdWxsVHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyMUQ2MzYyMTM4QzAy
NjAwNzc1MDk5IC8qIE9wZXJhdG9yQW5kZXJJbmRleGVyLmpzIGluIFJlc291cmNlcyAqLywKLQkJ
CQlFOTQxQUNDNzIxMzRBNUJDMDAzOTJCQTkgLyogT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExNzEyMEY3MDYwRTAwRDc3NkIyIC8qIE9yaWdpbktp
bmQuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTcyMjBGNzA2MEUwMEQ3NzZCMiAvKiBP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE3
MzIwRjcwNjBFMDBENzc2QjIgLyogUGFyc2UuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQx
MTc0MjBGNzA2MEUwMEQ3NzZCMiAvKiBQcmVwYXJlLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlF
OTJEMTE3NTIwRjcwNjBFMDBENzc2QjIgLyogUHJvZ3JhbS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExNzYyMEY3MDYwRTAwRDc3NkIyIC8qIFByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGlu
Z3NSZW1vdmVkLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE3NzIwRjcwNjBFMDBENzc2
QjIgLyogUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlF
OTJEMTE3ODIwRjcwNjBFMDBENzc2QjIgLyogUHJvcGVydHlSZXNvbHZlci5qcyBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJRTkyRDExN0QyMEY3MDYwRTAwRDc3NkIyIC8qIFB0clR5cGUuanMgaW4gUmVz
b3VyY2VzICovLAotCQkJCUU5MkQxMTdFMjBGNzA2MEUwMEQ3NzZCMiAvKiBSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE3RjIwRjcwNjBFMDBE
Nzc2QjIgLyogUmVjdXJzaW9uQ2hlY2tlci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDEx
ODAyMEY3MDYwRTAwRDc3NkIyIC8qIFJlY3Vyc2l2ZVR5cGVDaGVja2VyLmpzIGluIFJlc291cmNl
cyAqLywKLQkJCQlFOTJEMTE4MTIwRjcwNjBFMDBENzc2QjIgLyogUmVmZXJlbmNlVHlwZS5qcyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExODIyMEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVO
YW1lcy5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExODMyMEY3MDYwRTAwRDc3NkIyIC8q
IFJlc29sdmVPdmVybG9hZEltcGwuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTg0MjBG
NzA2MEUwMEQ3NzZCMiAvKiBSZXNvbHZlUHJvcGVydGllcy5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExODUyMEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVUeXBlRGVmcy5qcyBpbiBSZXNv
dXJjZXMgKi8sCi0JCQkJMzFGMTE3MzIyMTZCRkU5MzAwOUEzNkQ1IC8qIFJlc291cmNlU2VtYW50
aWMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTg2MjBGNzA2MEUwMEQ3NzZCMiAvKiBS
ZXR1cm4uanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTg3MjBGNzA2MEUwMEQ3NzZCMiAv
KiBSZXR1cm5DaGVja2VyLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE4ODIwRjcwNjBF
MDBENzc2QjIgLyogUmV0dXJuRXhjZXB0aW9uLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJE
MTE4OTIwRjcwNjBFMDBENzc2QjIgLyogUmV3cml0ZXIuanMgaW4gUmVzb3VyY2VzICovLAotCQkJ
CUU5RDdDQkEzMjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzIGluIFJlc291cmNlcyAqLywK
LQkJCQkzMUYxMTczNDIxNkJGRTkzMDA5QTM2RDUgLyogU2VtYW50aWMuanMgaW4gUmVzb3VyY2Vz
ICovLAotCQkJCTMxRjExNzM2MjE2QkZFOTMwMDlBMzZENSAvKiBTcGVjaWFsaXphdGlvbkNvbnN0
YW50U2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxRjExNzc2MjE2QkZFRUMwMDlB
MzZENSAvKiBTdGFnZUluT3V0U2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQx
MThBMjBGNzA2MEUwMEQ3NzZCMiAvKiBTdGFuZGFyZExpYnJhcnkuanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMThCMjBGNzA2MEUwMEQ3NzZCMiAvKiBTdGF0ZW1lbnRDbG9uZXIuanMgaW4g
UmVzb3VyY2VzICovLAotCQkJCUU5MkQxMThDMjBGNzA2MEUwMEQ3NzZCMiAvKiBTdHJ1Y3RMYXlv
dXRCdWlsZGVyLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE4RDIwRjcwNjBFMDBENzc2
QjIgLyogU3RydWN0VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExOEYyMEY3MDYw
RTAwRDc3NkIyIC8qIFN3aXRjaENhc2UuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMTkw
MjBGNzA2MEUwMEQ3NzZCMiAvKiBTd2l0Y2hTdGF0ZW1lbnQuanMgaW4gUmVzb3VyY2VzICovLAot
CQkJCUU5NDFBQ0M4MjEzNEE1QkMwMDM5MkJBOSAvKiBTeW50aGVzaXplQXJyYXlPcGVyYXRvckxl
bmd0aC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTk0MUFDQzAyMTM0QTVCQzAwMzkyQkE5IC8q
IFN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTk0MUFDQzQyMTM0QTVCQzAwMzkyQkE5IC8qIFN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0
b3JPcGVyYXRvci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExOTEyMEY3MDYwRTAwRDc3
NkIyIC8qIFN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlF
OTJEMTE5MjIwRjcwNjBFMDBENzc2QjIgLyogU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJRTk0MUFDQzYyMTM0QTVCQzAwMzkyQkE5IC8qIFRlcm5hcnlF
eHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTREMTI3RjIxMTRDNkZGMDBCMEY5
NjcgLyogVGVzdC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTlEN0NCQTAyMTRCODJCODAwRjFD
OTE4IC8qIFRleHR1cmUuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5RDdDQkE0MjE0QjgyQjgw
MEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTky
RDExOTMyMEY3MDYwRTAwRDc3NkIyIC8qIFRyYXBTdGF0ZW1lbnQuanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMTk0MjBGNzA2MEUwMEQ3NzZCMiAvKiBUeXBlLmpzIGluIFJlc291cmNlcyAq
LywKLQkJCQlFOTJEMTE5NTIwRjcwNjBFMDBENzc2QjIgLyogVHlwZURlZi5qcyBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJRTkyRDExOTYyMEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVEZWZSZXNvbHZlci5q
cyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExOTcyMEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVk
VmFsdWUuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5NzNFNUUzMjEzRjM0MUQwMDVENzlGQyAv
KiBUeXBlT2YuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5NDFBQ0NCMjEzNEE1QkMwMDM5MkJB
OSAvKiBUeXBlT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExOUEyMEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVSZWYuanMgaW4gUmVzb3VyY2VzICov
LAotCQkJCUU5MkQxMTlEMjBGNzA2MEUwMEQ3NzZCMiAvKiBVaW50TGl0ZXJhbC5qcyBpbiBSZXNv
dXJjZXMgKi8sCi0JCQkJRTkyRDExOUUyMEY3MDYwRTAwRDc3NkIyIC8qIFVpbnRMaXRlcmFsVHlw
ZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExOUYyMEY3MDYwRTAwRDc3NkIyIC8qIFVu
aWZpY2F0aW9uQ29udGV4dC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExQTAyMEY3MDYw
RTAwRDc3NkIyIC8qIFVucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovLAot
CQkJCUU5MkQxMUExMjBGNzA2MEUwMEQ3NzZCMiAvKiBWYWx1ZS5qcyBpbiBSZXNvdXJjZXMgKi8s
Ci0JCQkJRTkyRDExQTIyMEY3MDYwRTAwRDc3NkIyIC8qIFZhcmlhYmxlRGVjbC5qcyBpbiBSZXNv
dXJjZXMgKi8sCi0JCQkJRTkyRDExQTMyMEY3MDYwRTAwRDc3NkIyIC8qIFZhcmlhYmxlUmVmLmpz
IGluIFJlc291cmNlcyAqLywKLQkJCQlFOTQxQUNDQzIxMzRBNUJDMDAzOTJCQTkgLyogVmVjdG9y
VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExQTQyMEY3MDYwRTAwRDc3NkIyIC8q
IFZpc2l0aW5nU2V0LmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTFBNTIwRjcwNjBFMDBE
Nzc2QjIgLyogVmlzaXRvci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTkyRDExQTYyMEY3MDYw
RTAwRDc3NkIyIC8qIFdoaWxlTG9vcC5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRTlEN0NCOTcy
MTRCODI0MjAwRjFDOTE4IC8qIFdobHNsVG9Nc2wuanMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5
RDdDQkE1MjE0QjgyQjgwMEYxQzkxOCAvKiBXTGV4aWNhbEVycm9yLmpzIGluIFJlc291cmNlcyAq
LywKLQkJCQlFOTJEMTFBNzIwRjcwNjBFMDBENzc2QjIgLyogV3JhcENoZWNrZXIuanMgaW4gUmVz
b3VyY2VzICovLAotCQkJCUU5MkQxMUE4MjBGNzA2MEUwMEQ3NzZCMiAvKiBXU3ludGF4RXJyb3Iu
anMgaW4gUmVzb3VyY2VzICovLAotCQkJCUU5MkQxMUE5MjBGNzA2MEUwMEQ3NzZCMiAvKiBXVHJh
cEVycm9yLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTFBQTIwRjcwNjBFMDBENzc2QjIg
LyogV1R5cGVFcnJvci5qcyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07Ci0JCUU5NEMwNkQ0MjBGNTZBNDIwMDY3
Mjk5MiAvKiBSZXNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNl
OwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJKTsK
LQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotLyogRW5k
IFBCWFJlc291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhTb3VyY2Vz
QnVpbGRQaGFzZSBzZWN0aW9uICovCi0JCUU5NEMwNkJDMjBGNTZBNDAwMDY3Mjk5MiAvKiBTb3Vy
Y2VzICovID0gewotCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJRTkyRURGRkMyMTE1NDZBNDAw
NDJGOTYwIC8qIEFwcERlbGVnYXRlLm0gaW4gU291cmNlcyAqLywKLQkJCQlFOTJEMTA4QTIwRjU2
RjA2MDBENzc2QjIgLyogQ29tcGlsZXIubSBpbiBTb3VyY2VzICovLAotCQkJCUU5MkQxMUJCMjBG
N0Y2NzMwMEQ3NzZCMiAvKiBDb21waWxlUmVzdWx0Lm0gaW4gU291cmNlcyAqLywKLQkJCQlFOTJF
REZGQjIxMTU0NkE0MDA0MkY5NjAgLyogQ3VzdG9tTWV0YWxWaWV3Lm0gaW4gU291cmNlcyAqLywK
LQkJCQlFOTRDMDZEMDIwRjU2QTQyMDA2NzI5OTIgLyogbWFpbi5tIGluIFNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExQUQyMEY3MDgxNTAwRDc3NkIyIC8qIE9mZnNjcmVlblJlbmRlcmVyLm0gaW4gU291
cmNlcyAqLywKLQkJCQlFOTJEMTBBRjIwRjU3QzlGMDBENzc2QjIgLyogT25zY3JlZW5SZW5kZXJl
ci5tIGluIFNvdXJjZXMgKi8sCi0JCQkJRTkyRDExMTUyMEY2RkZCNjAwRDc3NkIyIC8qIFJlbmRl
cmVyLm0gaW4gU291cmNlcyAqLywKLQkJCQlFOTJFRTAwNDIxMTU0OUM1MDA0MkY5NjAgLyogVGVz
dENhbGxBcmd1bWVudC5tIGluIFNvdXJjZXMgKi8sCi0JCQkJRTkyRUUwMEEyMTE1NEI1QTAwNDJG
OTYwIC8qIFRlc3REZXNjcmlwdGlvbi5tIGluIFNvdXJjZXMgKi8sCi0JCQkJRTkyRUUwMDcyMTE1
NEFDNDAwNDJGOTYwIC8qIFRlc3RGYW1pbHkubSBpbiBTb3VyY2VzICovLAotCQkJCUU5MkVFMDBG
MjExNTYzMzAwMDQyRjk2MCAvKiBUZXN0RmFtaWx5UnVubmVyLm0gaW4gU291cmNlcyAqLywKLQkJ
CQlFOTJFREZGRDIxMTU0NkE0MDA0MkY5NjAgLyogVmlld0NvbnRyb2xsZXIubSBpbiBTb3VyY2Vz
ICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwot
CQl9OwotCQlFOTRDMDZEMjIwRjU2QTQyMDA2NzI5OTIgLyogU291cmNlcyAqLyA9IHsKLQkJCWlz
YSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKLQkJCWZpbGVzID0gKAotCQkJCUU5NEMwNkRCMjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTF9U
b3lUZXN0cy5tIGluIFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07Ci0vKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwotCi0vKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5IHNlY3Rpb24gKi8KLQkJRTk0
QzA2RDgyMEY1NkE0MjAwNjcyOTkyIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlp
c2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gRTk0QzA2QkYyMEY1NkE0MDAw
NjcyOTkyIC8qIFdITFNMIFRlc3RzICovOwotCQkJdGFyZ2V0UHJveHkgPSBFOTRDMDZENzIwRjU2
QTQyMDA2NzI5OTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwotCQl9OwotLyogRW5kIFBC
WFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhWYXJpYW50R3JvdXAg
c2VjdGlvbiAqLwotCQlFOTJFREZGRTIxMTU0NkFCMDA0MkY5NjAgLyogTWFpbi5zdG9yeWJvYXJk
ICovID0gewotCQkJaXNhID0gUEJYVmFyaWFudEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
RTkyRURGRkYyMTE1NDZBQjAwNDJGOTYwIC8qIEJhc2UgKi8sCi0JCQkpOwotCQkJbmFtZSA9IE1h
aW4uc3Rvcnlib2FyZDsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0vKiBFbmQg
UEJYVmFyaWFudEdyb3VwIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gWENCdWlsZENvbmZpZ3VyYXRp
b24gc2VjdGlvbiAqLwotCQlFOTRDMDZFODIwRjU2QTQyMDA2NzI5OTIgLyogRGVidWcgKi8gPSB7
Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0J
CQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87Ci0JCQkJQ0xBTkdfQU5BTFlaRVJfTk9O
TlVMTCA9IFlFUzsKLQkJCQlDTEFOR19BTkFMWVpFUl9OVU1CRVJfT0JKRUNUX0NPTlZFUlNJT04g
PSBZRVNfQUdHUkVTU0lWRTsKLQkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251
KysxNCI7Ci0JCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKLQkJCQlDTEFOR19FTkFC
TEVfTU9EVUxFUyA9IFlFUzsKLQkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7Ci0JCQkJ
Q0xBTkdfRU5BQkxFX09CSkNfV0VBSyA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0JMT0NLX0NBUFRV
UkVfQVVUT1JFTEVBU0lORyA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9
IFlFUzsKLQkJCQlDTEFOR19XQVJOX0NPTU1BID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fQ09OU1RB
TlRfQ09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0RFUFJFQ0FURURfT0JKQ19JTVBM
RU1FTlRBVElPTlMgPSBZRVM7Ci0JCQkJQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0Ug
PSBZRVNfRVJST1I7Ci0JCQkJQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVT
OwotCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0VOVU1f
Q09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0lORklOSVRFX1JFQ1VSU0lPTiA9IFlF
UzsKLQkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5f
Tk9OX0xJVEVSQUxfTlVMTF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fT0JKQ19J
TVBMSUNJVF9SRVRBSU5fU0VMRiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX09CSkNfTElURVJBTF9D
T05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VS
Uk9SOwotCQkJCUNMQU5HX1dBUk5fUkFOR0VfTE9PUF9BTkFMWVNJUyA9IFlFUzsKLQkJCQlDTEFO
R19XQVJOX1NUUklDVF9QUk9UT1RZUEVTID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fU1VTUElDSU9V
U19NT1ZFID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fVU5HVUFSREVEX0FWQUlMQUJJTElUWSA9IFlF
U19BR0dSRVNTSVZFOwotCQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKLQkJ
CQlDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOwotCQkJCUNPREVfU0lH
Tl9JREVOVElUWSA9ICJNYWMgRGV2ZWxvcGVyIjsKLQkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87
Ci0JCQkJREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gZHdhcmY7Ci0JCQkJRU5BQkxFX1NUUklD
VF9PQkpDX01TR1NFTkQgPSBZRVM7Ci0JCQkJRU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOwotCQkJ
CUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251MTE7Ci0JCQkJR0NDX0RZTkFNSUNfTk9fUElD
ID0gTk87Ci0JCQkJR0NDX05PX0NPTU1PTl9CTE9DS1MgPSBZRVM7Ci0JCQkJR0NDX09QVElNSVpB
VElPTl9MRVZFTCA9IDA7Ci0JCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKLQkJ
CQkJIkRFQlVHPTEiLAotCQkJCQkiJChpbmhlcml0ZWQpIiwKLQkJCQkpOwotCQkJCUdDQ19XQVJO
XzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVS
Tl9UWVBFID0gWUVTX0VSUk9SOwotCQkJCUdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZ
RVM7Ci0JCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFU19BR0dSRVNTSVZFOwot
CQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKLQkJCQlHQ0NfV0FSTl9VTlVTRURf
VkFSSUFCTEUgPSBZRVM7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTQ7Ci0J
CQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gSU5DTFVERV9TT1VSQ0U7Ci0JCQkJT05MWV9BQ1RJ
VkVfQVJDSCA9IFlFUzsKLQkJCQlTREtST09UID0gbWFjb3N4OwotCQkJfTsKLQkJCW5hbWUgPSBE
ZWJ1ZzsKLQkJfTsKLQkJRTk0QzA2RTkyMEY1NkE0MjAwNjcyOTkyIC8qIFJlbGVhc2UgKi8gPSB7
Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0J
CQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87Ci0JCQkJQ0xBTkdfQU5BTFlaRVJfTk9O
TlVMTCA9IFlFUzsKLQkJCQlDTEFOR19BTkFMWVpFUl9OVU1CRVJfT0JKRUNUX0NPTlZFUlNJT04g
PSBZRVNfQUdHUkVTU0lWRTsKLQkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251
KysxNCI7Ci0JCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKLQkJCQlDTEFOR19FTkFC
TEVfTU9EVUxFUyA9IFlFUzsKLQkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7Ci0JCQkJ
Q0xBTkdfRU5BQkxFX09CSkNfV0VBSyA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0JMT0NLX0NBUFRV
UkVfQVVUT1JFTEVBU0lORyA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9
IFlFUzsKLQkJCQlDTEFOR19XQVJOX0NPTU1BID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fQ09OU1RB
TlRfQ09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0RFUFJFQ0FURURfT0JKQ19JTVBM
RU1FTlRBVElPTlMgPSBZRVM7Ci0JCQkJQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0Ug
PSBZRVNfRVJST1I7Ci0JCQkJQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVT
OwotCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0VOVU1f
Q09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0lORklOSVRFX1JFQ1VSU0lPTiA9IFlF
UzsKLQkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5f
Tk9OX0xJVEVSQUxfTlVMTF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fT0JKQ19J
TVBMSUNJVF9SRVRBSU5fU0VMRiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX09CSkNfTElURVJBTF9D
T05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VS
Uk9SOwotCQkJCUNMQU5HX1dBUk5fUkFOR0VfTE9PUF9BTkFMWVNJUyA9IFlFUzsKLQkJCQlDTEFO
R19XQVJOX1NUUklDVF9QUk9UT1RZUEVTID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fU1VTUElDSU9V
U19NT1ZFID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fVU5HVUFSREVEX0FWQUlMQUJJTElUWSA9IFlF
U19BR0dSRVNTSVZFOwotCQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKLQkJ
CQlDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOwotCQkJCUNPREVfU0lH
Tl9JREVOVElUWSA9ICJNYWMgRGV2ZWxvcGVyIjsKLQkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87
Ci0JCQkJREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gImR3YXJmLXdpdGgtZHN5bSI7Ci0JCQkJ
RU5BQkxFX05TX0FTU0VSVElPTlMgPSBOTzsKLQkJCQlFTkFCTEVfU1RSSUNUX09CSkNfTVNHU0VO
RCA9IFlFUzsKLQkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTExOwotCQkJCUdDQ19O
T19DT01NT05fQkxPQ0tTID0gWUVTOwotCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJT
SU9OID0gWUVTOwotCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOwot
CQkJCUdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7Ci0JCQkJR0NDX1dBUk5fVU5J
TklUSUFMSVpFRF9BVVRPUyA9IFlFU19BR0dSRVNTSVZFOwotCQkJCUdDQ19XQVJOX1VOVVNFRF9G
VU5DVElPTiA9IFlFUzsKLQkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7Ci0JCQkJ
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTQ7Ci0JCQkJTVRMX0VOQUJMRV9ERUJVR19J
TkZPID0gTk87Ci0JCQkJU0RLUk9PVCA9IG1hY29zeDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFz
ZTsKLQkJfTsKLQkJRTk0QzA2RUIyMEY1NkE0MjAwNjcyOTkyIC8qIERlYnVnICovID0gewotCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUFT
U0VUQ0FUQUxPR19DT01QSUxFUl9BUFBJQ09OX05BTUUgPSBBcHBJY29uOwotCQkJCUNPREVfU0lH
Tl9FTlRJVExFTUVOVFMgPSBDb3JlL1dITFNMLmVudGl0bGVtZW50czsKLQkJCQlDT0RFX1NJR05f
SURFTlRJVFkgPSAiLSI7Ci0JCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwotCQkJCUNP
TUJJTkVfSElEUElfSU1BR0VTID0gWUVTOwotCQkJCURFVkVMT1BNRU5UX1RFQU0gPSAiIjsKLQkJ
CQlJTkZPUExJU1RfRklMRSA9IENvcmUvSW5mby5wbGlzdDsKLQkJCQlMRF9SVU5QQVRIX1NFQVJD
SF9QQVRIUyA9ICgKLQkJCQkJIiQoaW5oZXJpdGVkKSIsCi0JCQkJCSJAZXhlY3V0YWJsZV9wYXRo
Ly4uL0ZyYW1ld29ya3MiLAotCQkJCSk7Ci0JCQkJUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9
ICJjb20uYXBwbGUuV0hMU0wtVG95IjsKLQkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFN
RSkiOwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJRTk0QzA2RUMyMEY1NkE0MjAw
NjcyOTkyIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
LQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJQVNTRVRDQVRBTE9HX0NPTVBJTEVSX0FQUElDT05f
TkFNRSA9IEFwcEljb247Ci0JCQkJQ09ERV9TSUdOX0VOVElUTEVNRU5UUyA9IENvcmUvV0hMU0wu
ZW50aXRsZW1lbnRzOwotCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICItIjsKLQkJCQlDT0RFX1NJ
R05fU1RZTEUgPSBBdXRvbWF0aWM7Ci0JCQkJQ09NQklORV9ISURQSV9JTUFHRVMgPSBZRVM7Ci0J
CQkJREVWRUxPUE1FTlRfVEVBTSA9ICIiOwotCQkJCUlORk9QTElTVF9GSUxFID0gQ29yZS9JbmZv
LnBsaXN0OwotCQkJCUxEX1JVTlBBVEhfU0VBUkNIX1BBVEhTID0gKAotCQkJCQkiJChpbmhlcml0
ZWQpIiwKLQkJCQkJIkBleGVjdXRhYmxlX3BhdGgvLi4vRnJhbWV3b3JrcyIsCi0JCQkJKTsKLQkJ
CQlQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gImNvbS5hcHBsZS5XSExTTC1Ub3kiOwotCQkJ
CVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVh
c2U7Ci0JCX07Ci0JCUU5NEMwNkVFMjBGNTZBNDIwMDY3Mjk5MiAvKiBEZWJ1ZyAqLyA9IHsKLQkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlC
VU5ETEVfTE9BREVSID0gIiQoVEVTVF9IT1NUKSI7Ci0JCQkJQ09ERV9TSUdOX0lERU5USVRZID0g
Ii0iOwotCQkJCUNPREVfU0lHTl9TVFlMRSA9IEF1dG9tYXRpYzsKLQkJCQlDT01CSU5FX0hJRFBJ
X0lNQUdFUyA9IFlFUzsKLQkJCQlERVZFTE9QTUVOVF9URUFNID0gIiI7Ci0JCQkJSU5GT1BMSVNU
X0ZJTEUgPSAiV0hMU0wgVG95VGVzdHMvSW5mby5wbGlzdCI7Ci0JCQkJTERfUlVOUEFUSF9TRUFS
Q0hfUEFUSFMgPSAoCi0JCQkJCSIkKGluaGVyaXRlZCkiLAotCQkJCQkiQGV4ZWN1dGFibGVfcGF0
aC8uLi9GcmFtZXdvcmtzIiwKLQkJCQkJIkBsb2FkZXJfcGF0aC8uLi9GcmFtZXdvcmtzIiwKLQkJ
CQkpOwotCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAiY29tLmFwcGxlLldITFNMLVRv
eVRlc3RzIjsKLQkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwotCQkJCVRFU1Rf
SE9TVCA9ICIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV0hMU0wgVGVzdHMuYXBwL0NvbnRlbnRzL01h
Y09TL1dITFNMIFRlc3RzIjsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCUU5NEMw
NkVGMjBGNTZBNDIwMDY3Mjk5MiAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWlsZENv
bmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUJVTkRMRV9MT0FERVIgPSAi
JChURVNUX0hPU1QpIjsKLQkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7Ci0JCQkJQ09ERV9T
SUdOX1NUWUxFID0gQXV0b21hdGljOwotCQkJCUNPTUJJTkVfSElEUElfSU1BR0VTID0gWUVTOwot
CQkJCURFVkVMT1BNRU5UX1RFQU0gPSAiIjsKLQkJCQlJTkZPUExJU1RfRklMRSA9ICJXSExTTCBU
b3lUZXN0cy9JbmZvLnBsaXN0IjsKLQkJCQlMRF9SVU5QQVRIX1NFQVJDSF9QQVRIUyA9ICgKLQkJ
CQkJIiQoaW5oZXJpdGVkKSIsCi0JCQkJCSJAZXhlY3V0YWJsZV9wYXRoLy4uL0ZyYW1ld29ya3Mi
LAotCQkJCQkiQGxvYWRlcl9wYXRoLy4uL0ZyYW1ld29ya3MiLAotCQkJCSk7Ci0JCQkJUFJPRFVD
VF9CVU5ETEVfSURFTlRJRklFUiA9ICJjb20uYXBwbGUuV0hMU0wtVG95VGVzdHMiOwotCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7Ci0JCQkJVEVTVF9IT1NUID0gIiQoQlVJTFRf
UFJPRFVDVFNfRElSKS9XSExTTCBUZXN0cy5hcHAvQ29udGVudHMvTWFjT1MvV0hMU0wgVGVzdHMi
OwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotLyogRW5kIFhDQnVpbGRDb25maWd1
cmF0aW9uIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9u
ICovCi0JCUU5NEMwNkJCMjBGNTZBNDAwMDY3Mjk5MiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgIldITFNMIFRlc3RzIiAqLyA9IHsKLQkJCWlzYSA9IFhDQ29uZmln
dXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCUU5NEMwNkU4MjBG
NTZBNDIwMDY3Mjk5MiAvKiBEZWJ1ZyAqLywKLQkJCQlFOTRDMDZFOTIwRjU2QTQyMDA2NzI5OTIg
LyogUmVsZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9
IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQlFOTRD
MDZFQTIwRjU2QTQyMDA2NzI5OTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhO
YXRpdmVUYXJnZXQgIldITFNMIFRlc3RzIiAqLyA9IHsKLQkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCUU5NEMwNkVCMjBGNTZBNDIw
MDY3Mjk5MiAvKiBEZWJ1ZyAqLywKLQkJCQlFOTRDMDZFQzIwRjU2QTQyMDA2NzI5OTIgLyogUmVs
ZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7Ci0J
CQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQlFOTRDMDZFRDIw
RjU2QTQyMDA2NzI5OTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVU
YXJnZXQgIldITFNMIFRlc3RzVGVzdHMiICovID0gewotCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJRTk0QzA2RUUyMEY1NkE0MjAw
NjcyOTkyIC8qIERlYnVnICovLAotCQkJCUU5NEMwNkVGMjBGNTZBNDIwMDY3Mjk5MiAvKiBSZWxl
YXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0vKiBFbmQgWENDb25m
aWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCi0JfTsKLQlyb290T2JqZWN0ID0gRTk0QzA2QjgyMEY1
NkE0MDAwNjcyOTkyIC8qIFByb2plY3Qgb2JqZWN0ICovOwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvV0hMU0wgVG95VGVzdHMv
SW5mby5wbGlzdCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRl
c3RzL1dITFNMIFRveVRlc3RzL0luZm8ucGxpc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZjNDBhNmNkMGM0Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0cy9JbmZvLnBsaXN0CQorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEu
MC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4K
LTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50
UmVnaW9uPC9rZXk+Ci0JPHN0cmluZz4kKERFVkVMT1BNRU5UX0xBTkdVQUdFKTwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4kKEVYRUNVVEFCTEVfTkFN
RSk8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+JChQ
Uk9EVUNUX0JVTkRMRV9JREVOVElGSUVSKTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZvRGlj
dGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5k
bGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4kKFBST0RVQ1RfTkFNRSk8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPkJOREw8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4xLjA8L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+MTwvc3RyaW5nPgotPC9kaWN0Pgot
PC9wbGlzdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL1dITFNMIFRveVRlc3RzL1dITFNMX1RveVRlc3RzLm0gYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0cy9XSExT
TF9Ub3lUZXN0cy5tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjcxMjM4ZGYzMi4u
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hM
U0wgVGVzdHMvV0hMU0wgVG95VGVzdHMvV0hMU0xfVG95VGVzdHMubQkKKysrIC9kZXYvbnVsbApA
QCAtMSw4NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCA8WENUZXN0L1hDVGVzdC5oPgotCi0jaW1wb3J0ICJUZXN0RmFtaWx5Lmgi
Ci0jaW1wb3J0ICJUZXN0RmFtaWx5UnVubmVyLmgiCi0KLS8vLyBUaGUgYWN0dWFsIGltcGxlbWVu
dGF0aW9uIG9mIHRlc3RzIGlzIGluIFRlc3QuaC9tCi1AaW50ZXJmYWNlIFdITFNMU2hhZGVyVGVz
dCA6IFhDVGVzdENhc2UKLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0hMU0xTaGFkZXJUZXN0
Ci0KLSsgKFdITFNMU2hhZGVyVGVzdCopdGVzdENhc2VJbnN0YW5jZUZyb21JbXBsZW1lbnRhdGlv
bjooVGVzdEZhbWlseSopdGVzdAotewotICAgIE5TTWV0aG9kU2lnbmF0dXJlICp0ZXN0U2lnbmF0
dXJlID0gW1dITFNMU2hhZGVyVGVzdCBpbnN0YW5jZU1ldGhvZFNpZ25hdHVyZUZvclNlbGVjdG9y
OkBzZWxlY3Rvcih0ZXN0U2hhZGVyQ29tcGlsYXRpb25BbmRFeGVjdXRpb246KV07Ci0gICAgTlNJ
bnZvY2F0aW9uICp0ZXN0SW52b2NhdGlvbiA9IFtOU0ludm9jYXRpb24gaW52b2NhdGlvbldpdGhN
ZXRob2RTaWduYXR1cmU6dGVzdFNpZ25hdHVyZV07Ci0gICAgdGVzdEludm9jYXRpb24uc2VsZWN0
b3IgPSBAc2VsZWN0b3IodGVzdFNoYWRlckNvbXBpbGF0aW9uQW5kRXhlY3V0aW9uOik7Ci0gICAg
W3Rlc3RJbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZ0ZXN0IGF0SW5kZXg6Ml07Ci0gICAgW3Rlc3RJ
bnZvY2F0aW9uIHJldGFpbkFyZ3VtZW50c107Ci0KLSAgICBXSExTTFNoYWRlclRlc3QgKnRlc3RD
YXNlID0gW1tXSExTTFNoYWRlclRlc3QgYWxsb2NdIGluaXRXaXRoSW52b2NhdGlvbjp0ZXN0SW52
b2NhdGlvbl07Ci0gICAgcmV0dXJuIHRlc3RDYXNlOwotfQotCi0tICh2b2lkKXRlc3RTaGFkZXJD
b21waWxhdGlvbkFuZEV4ZWN1dGlvbjooVGVzdEZhbWlseSopdGVzdCB7Ci0gICAgVGVzdEZhbWls
eVJ1bm5lciogcnVubmVyID0gW1tUZXN0RmFtaWx5UnVubmVyIGFsbG9jXSBpbml0V2l0aFRlc3RG
YW1pbHk6dGVzdF07Ci0gICAgQk9PTCByZXN1bHQgPSBbcnVubmVyIGV4ZWN1dGVBbGxUZXN0c107
Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgTlNMb2coQCJcdTI3MDUgJUAiLCB0ZXN0Lm5hbWUp
OwotICAgIFhDVEFzc2VydChyZXN1bHQsIEAiJUAiLCB0ZXN0Lm5hbWUpOwotICAgIE5TTG9nKEAi
VG90YWwgdGVzdCBjYXNlIGNvdW50OiAlbHUiLCBbVGVzdEZhbWlseVJ1bm5lciBleGVjdXRpb25D
b3VudF0pOwotfQotCi1AZW5kCi0KLUBpbnRlcmZhY2UgV0hMU0xfVG95VGVzdHMgOiBYQ1Rlc3RD
YXNlCi0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdITFNMX1RveVRlc3RzCi0KLSsgKFhDVGVz
dFN1aXRlKilkZWZhdWx0VGVzdFN1aXRlCi17Ci0gICAgWENUZXN0U3VpdGUqIHN1aXRlID0gW1hD
VGVzdFN1aXRlIHRlc3RTdWl0ZVdpdGhOYW1lOkAiV0hMU0wgdGVzdHMiXTsKLSAgICBOU0FycmF5
PFRlc3RGYW1pbHkqPiogdGVzdERlc2NyaXB0aW9ucyA9IFtUZXN0RmFtaWx5IGFsbFRlc3RzXTsK
LSAgICBOU1JlZ3VsYXJFeHByZXNzaW9uKiB0ZXN0RmlsdGVyID0gW05TUmVndWxhckV4cHJlc3Np
b24gcmVndWxhckV4cHJlc3Npb25XaXRoUGF0dGVybjpAIi4qIiBvcHRpb25zOjAgZXJyb3I6bmls
XTsKLSAgICBOU1VJbnRlZ2VyIHRlc3RDYXNlQ291bnQgPSAwOwotICAgIGZvciAoVGVzdEZhbWls
eSogdGVzdCBpbiB0ZXN0RGVzY3JpcHRpb25zKSB7Ci0gICAgICAgIGlmIChbdGVzdEZpbHRlciBm
aXJzdE1hdGNoSW5TdHJpbmc6dGVzdC5uYW1lIG9wdGlvbnM6MCByYW5nZTpOU01ha2VSYW5nZSgw
LCB0ZXN0Lm5hbWUubGVuZ3RoKV0pIHsKLSAgICAgICAgICAgIFtzdWl0ZSBhZGRUZXN0OltXSExT
TFNoYWRlclRlc3QgdGVzdENhc2VJbnN0YW5jZUZyb21JbXBsZW1lbnRhdGlvbjp0ZXN0XV07Ci0g
ICAgICAgICAgICB0ZXN0Q2FzZUNvdW50ICs9IHRlc3QudG90YWxUZXN0Q2FzZUNvdW50OwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgTlNMb2coQCJXaWxsIGV4ZWN1dGUgJWxkIHRlc3RzICglbGQg
dGVzdCBjYXNlcykiLCBzdWl0ZS50ZXN0cy5jb3VudCwgdGVzdENhc2VDb3VudCk7Ci0KLSAgICBy
ZXR1cm4gc3VpdGU7Ci19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dobHNsVG9Nc2wuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dobHNsVG9Nc2wuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2YxMDJlNTI2NzguLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dobHNsVG9Nc2wuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgotYm9keSB7Ci0gICAgcGFkZGluZzogMDsKLSAgICBtYXJnaW46IDA7Ci0gICAgZm9udC1m
YW1pbHk6IC1hcHBsZS1zeXN0ZW07Ci19Ci1oMSB7Ci0gICAgcGFkZGluZzogMjBweCAyMHB4Owot
ICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICBmb250LXNpemU6IDUwcHg7Ci19Ci1tYWluIHsK
LSAgICBtYXJnaW46IDAgYXV0bzsKLSAgICBwYWRkaW5nOiAyMHB4OwotICAgIGRpc3BsYXk6IGdy
aWQ7Ci0gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0NSUgNDUlOwotICAgIGdyaWQtY29sdW1u
LWdhcDogMTBweDsKLSAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gNTAwcHggYXV0bzsKLSAg
ICBncmlkLXJvdy1nYXA6IDEwcHg7Ci0gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ci19Ci10
ZXh0YXJlYSB7Ci0gICAgcGFkZGluZzogNXB4OwotICAgIG1hcmdpbjogMDsKLSAgICBmb250LWZh
bWlseTogbW9ub3NwYWNlOwotICAgIGZvbnQtc2l6ZTogMjBweDsKLSAgICBvdmVyZmxvdzogc2Ny
b2xsOwotfQotI291dHB1dCB7Ci0gICAgcGFkZGluZzogNXB4OwotICAgIG1hcmdpbjogMDsKLSAg
ICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgIG92ZXJmbG93OiBzY3JvbGw7Ci0gICAgYm9y
ZGVyOiAxcHggc29saWQgIzg4ODsKLSAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIGZv
bnQtc2l6ZTogMjBweDsKLX0KLSNjb250cm9scyB7Ci0gICAgcGFkZGluZzogNXB4OwotICAgIG1h
cmdpbjogMDsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci1idXR0b24gewotICAgIHdpZHRo
OiAyMDBweDsKLSAgICBmb250LXNpemU6IDIwcHg7Ci0gICAgYmFja2dyb3VuZDogbGluZWFyLWdy
YWRpZW50KHRvIGJvdHRvbSwgI2FhZSwgI2FhZik7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgI2Nj
ZDsKLSAgICBib3JkZXItcmFkaXVzOiAzcHg7Ci19Ci1idXR0b246YWN0aXZlIHsKLSAgICBiYWNr
Z3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGRlLCAjZWVmKTsKLSAgICBjb2xv
cjogYmxhY2s7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uL05vZGUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL1R5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1Jl
ZmVyZW5jZVR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1ZhbHVlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9FeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9SZXdyaXRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vVmlzaXRvci5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vQ3JlYXRlTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vQ3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vU2VtYW50
aWMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0FkZHJlc3NTcGFjZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9Bbm9ueW1vdXNWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vQXJyYXlSZWZUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9BcnJh
eVR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0Fzc2lnbm1lbnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL0F1dG9XcmFwcGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9CbG9jay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vQm9vbExpdGVyYWwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0JyZWFrLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9CdWlsdEluU2VtYW50aWMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0J1aWx0
aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0J1aWx0aW5WZWN0
b3JHZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0J1aWx0aW5WZWN0b3JTZXR0
ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0NhbGxFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9DYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL0Nhc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9DaGVjay5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL0NoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL0NoZWNrTmF0aXZlRnVuY1N0YWdlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Q2hlY2tSZWN1cnNpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0NoZWNrUmVjdXJz
aXZlVHlwZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0NoZWNrUmV0dXJucy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vQ2hlY2tUeXBlc1dpdGhBcmd1bWVudHMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0NoZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9DaGVja1dyYXBwZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL0NoZWNrZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0Nsb25lUHJvZ3Jh
bS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vQ29tbWFFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9Db25zdGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL0NvbnRpbnVlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9Db252
ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L0RvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9Eb3RFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9EZXJlZmVyZW5jZUV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0VBcnJheVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vRUJ1ZmZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vRUJ1ZmZl
ckJ1aWxkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0VQdHIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL0VudW1MaXRlcmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9FbnVtTWVtYmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9FbnVtVHlwZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vRXZhbHVhdGlvbkNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vRXZhbHVhdG9yLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9FeHByZXNzaW9uRmluZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9FeHRl
cm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vRmllbGQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL0ZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL0Zsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vRm9sZENv
bnN0ZXhwcnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0Zvckxvb3AuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL0Z1bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L0Z1bmNBdHRyaWJ1dGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0Z1bmNEZWYuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0Z1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9GdW5jUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9GdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vSWRl
bnRpdHlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9JZlN0YXRlbWVu
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vSW5kZXhFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9JbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vSW5saW5lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9Jbmxp
bmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9JbnRMaXRlcmFsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9JbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vTGF5b3V0
QnVmZmVycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vTGV4ZXIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL0xleGVyVG9rZW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL0xpdGVyYWxUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vTG9n
aWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0xvZ2ljYWxOb3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL0xvb3BDaGVja2VyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9NYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9NYWtlUHRyRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vTWF0cml4VHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vTmFtZUNvbnRl
eHQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL05hbWVGaW5kZXIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL05hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vTm9ybWFsVXNl
UHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vTnVsbExpdGVy
YWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL051bGxUeXBlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9PcGVyYXRvckFuZGVySW5kZXhlci5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vT3JpZ2luS2luZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vT3Zlcmxv
YWRSZXNvbHV0aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vUGFyc2Uu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1ByZXBhcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL1Byb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL1Byb2dyYW0uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1Byb2dyYW1XaXRoVW5u
ZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9QdHJU
eXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9SZWFkTW9kaWZ5V3JpdGVFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9SZWN1cnNpb25DaGVja2VyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9SZWN1cnNpdmVUeXBlQ2hlY2tlci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vUmVzb2x2ZU5hbWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9SZXNvbHZlUHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vUmVzb2x2
ZVR5cGVEZWZzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9SZXNvdXJjZVNlbWFudGlj
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9SZXR1cm4uanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL1JldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L1JldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vU2FtcGxlci5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFu
dGljLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9TdGFnZUluT3V0U2VtYW50aWMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1N0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9TdHJ1Y3RUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9Td2l0Y2hDYXNlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9Td2l0Y2hTdGF0ZW1lbnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL1N5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9TeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9y
T3BlcmF0b3IuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1Rlcm5hcnlFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9UZXh0dXJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9UZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vVHlwZURl
Zi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vVHlwZURlZlJlc29sdmVyLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9UeXBlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9UeXBlT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vVWludExp
dGVyYWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL1VpbnRMaXRlcmFsVHlwZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vVW5pZmljYXRpb25Db250ZXh0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9VbnJlYWNoYWJsZUNvZGVDaGVja2VyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9WYXJpYWJsZURlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL1ZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9WZWN0b3JUeXBl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9WaXNpdGluZ1NldC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vV0xleGljYWxFcnJvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vV1N5bnRheEVycm9yLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9XVHJhcEVy
cm9yLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9XVHlwZUVycm9yLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL1dyYXBDaGVja2VyLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ik1TTEJhY2tlbmQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik1TTENvbXBpbGVSZXN1bHQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ik1TTENvbnN0ZXhwckVtaXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ik1TTEZ1bmN0aW9uRGVjbGFyYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ik1TTEZ1bmN0aW9uRGVmaW5pdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTVNMRnVu
Y3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik1TTElu
c2VydFRyYXBQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik1TTE5hbWVNYW5n
bGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJNU0xOYXRpdmVGdW5jdGlvbkNhbGwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik1TTFN0YXRlbWVudEVtaXR0ZXIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ik1TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJNU0xUeXBlQXR0cmlidXRlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTVNM
VHlwZVVuaWZpZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVPZi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iV2hsc2xUb01zbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gaW5pdCgpIHsKLSAgICBsZXQgYiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
biIpOwotICAgIGIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBjb21waWxlKTsKLX0KLQotZnVu
Y3Rpb24gY29tcGlsZSgpIHsKLSAgICBsZXQgc291cmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigidGV4dGFyZWEiKS52YWx1ZTsKLSAgICBsZXQgb3V0cHV0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiI291dHB1dCIpOwotICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICJDb21waWxpbmcuLi4i
OwotICAgIGxldCByZXN1bHQgPSB3aGxzbFRvTXNsKHNvdXJjZSk7Ci0gICAgaWYgKCFyZXN1bHQu
X2Vycm9yKSB7Ci0gICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IHJlc3VsdC5fbWV0YWxTaGFk
ZXJMYW5ndWFnZVNvdXJjZTsKLSAgICB9IGVsc2UgewotICAgICAgICBvdXRwdXQudGV4dENvbnRl
bnQgPSBgRXJyb3I6ICR7cmVzdWx0Ll9lcnJvci5vcmlnaW5TdHJpbmd9XG4ke3Jlc3VsdC5fZXJy
b3Iuc3ludGF4RXJyb3JNZXNzYWdlfWA7Ci0gICAgfQotfQotCi13aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGluaXQsIGZhbHNlKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
aGVhZGVyPgotPGgxPldITFNMIHRvIE1TTDwvaDE+ICAgCi08L2hlYWRlcj4KLTxtYWluPgotPGgy
PldIU0wgU291cmNlPC9oMj4KLTxoMj5Db21waWxlZCBPdXRwdXQ8L2gyPgotPHRleHRhcmVhIGlk
PSJzb3VyY2UiPgotc3RydWN0IFZlcnRleElucHV0IHsKLSAgICBmbG9hdDIgcG9zaXRpb24gOiBh
dHRyaWJ1dGUoMCk7Ci0gICAgZmxvYXQyIHV2IDogYXR0cmlidXRlKDEpOwotfQotCi1zdHJ1Y3Qg
VmVydGV4T3V0cHV0IHsKLSAgICBmbG9hdDQgcG9zaXRpb24gOiBTVl9Qb3NpdGlvbjsKLSAgICBm
bG9hdDQgY29sb3IgOiBhdHRyaWJ1dGUoMCk7Ci19Ci0KLXN0cnVjdCBGcmFnbWVudElucHV0IHsK
LSAgICBmbG9hdDQgY29sb3IgOiBhdHRyaWJ1dGUoMCk7Ci19Ci0KLXN0cnVjdCBGcmFnbWVudE91
dHB1dCB7Ci0gICAgZmxvYXQ0IGNvbG9yIDogU1ZfVGFyZ2V0MDsKLX0KLQotdmVydGV4IFZlcnRl
eE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQgdmVydGV4SW5wdXQpIHsKLSAgICBWZXJ0
ZXhPdXRwdXQgcmVzdWx0OwotICAgIHJlc3VsdC5wb3NpdGlvbiA9IGZsb2F0NCh2ZXJ0ZXhJbnB1
dC5wb3NpdGlvbiwgMC4sIDEuKTsKLSAgICByZXN1bHQuY29sb3IgPSBmbG9hdDQodmVydGV4SW5w
dXQudXYsIDAuMCwgMS4wKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1mcmFnbWVudCBGcmFn
bWVudE91dHB1dCBmcmFnbWVudFNoYWRlcihGcmFnbWVudElucHV0IGZyYWdtZW50SW5wdXQpIHsK
LSAgICBGcmFnbWVudE91dHB1dCByZXN1bHQ7Ci0gICAgcmVzdWx0LmNvbG9yID0gZnJhZ21lbnRJ
bnB1dC5jb2xvcjsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotPC90ZXh0YXJlYT4KLTxwcmUgaWQ9
Im91dHB1dCI+Ci1ObyBjb21waWxlZCBvdXRwdXQuCi08L3ByZT4KLTxkaXYgaWQ9ImNvbnRyb2xz
Ij4KLTxidXR0b24+Q29tcGlsZTwvYnV0dG9uPgotPC9kaXY+Ci08L21haW4+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV2hsc2xUb01zbC5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL1dobHNsVG9Nc2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVjODVmMmI0OWIyLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NZXRhbC9XaGxzbFRvTXNsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8v
IE1haW4gd3JhcHBlciBmb3IgdGhlIGNvbXBpbGVyLiBDbGllbnRzIHNob3VsZCB1c2UgdGhpcyBm
dW5jdGlvbiB0byBjb21waWxlIFdITFNMLgotZnVuY3Rpb24gd2hsc2xUb01zbChzcmMpCi17Ci0g
ICAgbGV0IHBhcnNlZFByb2dyYW07Ci0gICAgdHJ5IHsKLSAgICAgICAgcGFyc2VkUHJvZ3JhbSA9
IHByZXBhcmUoIi9pbnRlcm5hbC90ZXN0IiwgMCwgc3JjKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgIHJldHVybiBuZXcgTVNMQ29tcGlsZVJlc3VsdChudWxsLCBlLCBudWxsLCBudWxsKTsK
LSAgICB9Ci0KLSAgICBpZiAoIShwYXJzZWRQcm9ncmFtIGluc3RhbmNlb2YgUHJvZ3JhbSkpCi0g
ICAgICAgIHJldHVybiBuZXcgTVNMQ29tcGlsZVJlc3VsdChudWxsLCBuZXcgRXJyb3IoIkNvbXBp
bGF0aW9uIGZhaWxlZCIpLCBudWxsLCBudWxsKTsKLQotICAgIGNvbnN0IGNvbXBpbGVyID0gbmV3
IE1TTEJhY2tlbmQocGFyc2VkUHJvZ3JhbSk7Ci0gICAgcmV0dXJuIGNvbXBpbGVyLmNvbXBpbGUo
KTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
ODk5NjhjNzc5Ni4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUNvbnRleHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1j
b25zdCBBbnl0aGluZyA9IFN5bWJvbCgpOwotCi1mdW5jdGlvbiBpc1dpbGRjYXJkS2luZChraW5k
KQotewotICAgIHJldHVybiBraW5kID09IEFueXRoaW5nOwotfQotCi1jbGFzcyBOYW1lQ29udGV4
dCB7Ci0gICAgY29uc3RydWN0b3IoZGVsZWdhdGUpCi0gICAgewotICAgICAgICB0aGlzLl9tYXAg
PSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX3NldCA9IG5ldyBTZXQoKTsKLSAgICAgICAgdGhp
cy5fY3VycmVudFN0YXRlbWVudCA9IG51bGw7Ci0gICAgICAgIHRoaXMuX2RlbGVnYXRlID0gZGVs
ZWdhdGU7Ci0gICAgICAgIHRoaXMuX2ludHJpbnNpY3MgPSBudWxsOwotICAgICAgICB0aGlzLl9w
cm9ncmFtID0gbnVsbDsKLSAgICB9Ci0gICAgCi0gICAgYWRkKHRoaW5nKQotICAgIHsKLSAgICAg
ICAgaWYgKCF0aGluZy5uYW1lKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoIXRo
aW5nLm9yaWdpbikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVGhpbmcgZG9lcyBub3Qg
aGF2ZSBvcmlnaW46ICIgKyB0aGluZyk7Ci0KLSAgICAgICAgaWYgKHRoaW5nLmlzTmF0aXZlICYm
ICF0aGluZy5pbXBsZW1lbnRhdGlvbikgewotICAgICAgICAgICAgaWYgKCF0aGlzLl9pbnRyaW5z
aWNzKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTmF0aXZlIGZ1bmN0aW9uIGlu
IGEgc2NvcGUgdGhhdCBkb2VzIG5vdCByZWNvZ25pemUgaW50cmluc2ljcyIpOwotICAgICAgICAg
ICAgdGhpcy5faW50cmluc2ljcy5hZGQodGhpbmcpOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBpZiAodGhpbmcua2luZCA9PSBGdW5jKSB7Ci0gICAgICAgICAgICB0aGlzLl9zZXQuYWRk
KHRoaW5nKTsKLSAgICAgICAgICAgIGxldCBhcnJheSA9IHRoaXMuX21hcC5nZXQodGhpbmcubmFt
ZSk7Ci0gICAgICAgICAgICBpZiAoIWFycmF5KSB7Ci0gICAgICAgICAgICAgICAgYXJyYXkgPSBb
XTsKLSAgICAgICAgICAgICAgICBhcnJheS5raW5kID0gRnVuYzsKLSAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KHRoaW5nLm5hbWUsIGFycmF5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChhcnJheS5raW5kICE9IEZ1bmMpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3IodGhpbmcub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCByZXVzZSB0eXBlIG5h
bWUgZm9yIGZ1bmN0aW9uOiAiICsgdGhpbmcubmFtZSk7Ci0gICAgICAgICAgICBhcnJheS5wdXNo
KHRoaW5nKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0
aGluZy5raW5kID09IFR5cGUpIHsKLSAgICAgICAgICAgIHRoaXMuX3NldC5hZGQodGhpbmcpOwot
ICAgICAgICAgICAgaWYgKHRoaW5nLnR5cGVBcmd1bWVudHMgJiYgdGhpbmcudHlwZUFyZ3VtZW50
cy5sZW5ndGggIT0gMCkgewotICAgICAgICAgICAgICAgIGxldCBhcnJheSA9IHRoaXMuX21hcC5n
ZXQodGhpbmcubmFtZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcnJheSkgewotICAgICAgICAg
ICAgICAgICAgICBhcnJheSA9IFtdOwotICAgICAgICAgICAgICAgICAgICBhcnJheS5raW5kID0g
VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCh0aGluZy5uYW1lLCBhcnJh
eSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChhcnJheS5raW5kICE9
IFR5cGUpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaW5nLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJDYW5ub3QgcmV1c2UgdHlwZSBuYW1lIGZvciBmdW5jdGlvbjog
IiArIHRoaW5nLm5hbWUpOwotICAgICAgICAgICAgICAgIGFycmF5LnB1c2godGhpbmcpOwotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHRoaXMuX21hcC5oYXModGhpbmcubmFtZSkpCi0gICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKHRoaW5nLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEdXBsaWNhdGUg
bmFtZTogIiArIHRoaW5nLm5hbWUpOwotICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQodGhp
bmcubmFtZSwgdGhpbmcpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAodGhpcy5fbWFwLmhhcyh0aGluZy5uYW1lKSkK
LSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaW5nLm9yaWdpbi5vcmlnaW5TdHJp
bmcsICJEdXBsaWNhdGUgbmFtZTogIiArIHRoaW5nLm5hbWUpOwotCi0gICAgICAgIHRoaXMuX3Nl
dC5hZGQodGhpbmcpOwotICAgICAgICB0aGlzLl9tYXAuc2V0KHRoaW5nLm5hbWUsIHRoaW5nKTsK
LQotICAgIH0KLSAgICAKLSAgICBnZXQoa2luZCwgbmFtZSkKLSAgICB7Ci0gICAgICAgIGxldCBy
ZXN1bHQgPSB0aGlzLl9tYXAuZ2V0KG5hbWUpOwotICAgICAgICBpZiAoIXJlc3VsdCAmJiB0aGlz
Ll9kZWxlZ2F0ZSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5nZXQoa2luZCwg
bmFtZSk7Ci0gICAgICAgIGlmIChyZXN1bHQgJiYgIWlzV2lsZGNhcmRLaW5kKGtpbmQpICYmIHJl
c3VsdC5raW5kICE9IGtpbmQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdW5kZXJseWluZ1RoaW5ncyhraW5kLCBuYW1l
KQotICAgIHsKLSAgICAgICAgbGV0IHRoaW5ncyA9IHRoaXMuZ2V0KGtpbmQsIG5hbWUpOwotICAg
ICAgICByZXR1cm4gTmFtZUNvbnRleHQudW5kZXJseWluZ1RoaW5ncyh0aGluZ3MpOwotICAgIH0K
LSAgICAKLSAgICBzdGF0aWMgKnVuZGVybHlpbmdUaGluZ3ModGhpbmcpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaW5nKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodGhpbmcua2lu
ZCA9PT0gRnVuYykgewotICAgICAgICAgICAgaWYgKCEodGhpbmcgaW5zdGFuY2VvZiBBcnJheSkp
Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGdW5jIHRoaW5nIGlzIG5vdCBhcnJh
eTogIiArIHRoaW5nKTsKLSAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgdGhpbmcpCi0gICAg
ICAgICAgICAgICAgeWllbGQgZnVuYzsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSBl
bHNlIGlmICh0aGluZy5raW5kID09PSBUeXBlICYmICh0aGluZyBpbnN0YW5jZW9mIEFycmF5KSkg
ewotICAgICAgICAgICAgZm9yIChsZXQgdHlwZSBvZiB0aGluZykKLSAgICAgICAgICAgICAgICB5
aWVsZCB0eXBlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHlpZWxk
IHRoaW5nOwotICAgIH0KLSAgICAKLSAgICByZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQotICAgIHsKLSAg
ICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUpOwotICAgICAgICBpZiAo
IWZ1bmN0aW9ucykKLSAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IFtdfTsKLSAgICAgICAg
Ci0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgYXJndW1lbnRU
eXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50KTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0
IGN1cnJlbnRTdGF0ZW1lbnQoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRTdGF0
ZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFN0YXRlbWVudDsKLSAgICAg
ICAgaWYgKHRoaXMuX2RlbGVnYXRlKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRl
LmN1cnJlbnRTdGF0ZW1lbnQ7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLSAgICAKLSAg
ICBkb1N0YXRlbWVudChzdGF0ZW1lbnQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Y3VycmVudFN0YXRlbWVudCA9IHN0YXRlbWVudDsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICAg
ICAgdGhpcy5fY3VycmVudFN0YXRlbWVudCA9IG51bGw7Ci0gICAgfQotICAgIAotICAgIHJlY29n
bml6ZUludHJpbnNpY3MoKQotICAgIHsKLSAgICAgICAgdGhpcy5faW50cmluc2ljcyA9IG5ldyBJ
bnRyaW5zaWNzKHRoaXMpOwotICAgIH0KLSAgICAKLSAgICBnZXQgaW50cmluc2ljcygpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5faW50cmluc2ljcykKLSAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9pbnRyaW5zaWNzOwotICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUpCi0gICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fZGVsZWdhdGUuaW50cmluc2ljczsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0g
ICAgfQotICAgIAotICAgIHNldCBwcm9ncmFtKHZhbHVlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
cHJvZ3JhbSA9IHZhbHVlOwotICAgIH0KLSAgICAKLSAgICBnZXQgcHJvZ3JhbSgpCi0gICAgewot
ICAgICAgICBpZiAodGhpcy5fcHJvZ3JhbSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9n
cmFtOwotICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUpCi0gICAgICAgICAgICByZXR1cm4gdGhp
cy5fZGVsZWdhdGUucHJvZ3JhbTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotICAgIAot
ICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpCi0gICAgewotICAgICAgICBmb3IgKGxldCB2YWx1ZSBv
ZiB0aGlzLl9tYXAudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9m
IEFycmF5KSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgdGhpbmcgb2YgdmFsdWUpCi0gICAg
ICAgICAgICAgICAgICAgIHlpZWxkIHRoaW5nOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgeWllbGQgdmFsdWU7Ci0gICAgICAgIH0KLSAgICB9
Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVy
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA2MDNkN2E5YzUuLjAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hbWVGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsK
LSAgICBjb25zdHJ1Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlz
Ll9zZXQgPSBuZXcgU2V0KCk7Ci0gICAgICAgIHRoaXMuX3dvcmtsaXN0ID0gW107Ci0gICAgfQot
ICAgIAotICAgIGdldCBzZXQoKSB7IHJldHVybiB0aGlzLl9zZXQ7IH0KLSAgICBnZXQgd29ya2xp
c3QoKSB7IHJldHVybiB0aGlzLl93b3JrbGlzdDsgfQotICAgIAotICAgIGFkZChuYW1lKQotICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX3NldC5oYXMobmFtZSkpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIHRoaXMuX3NldC5hZGQobmFtZSk7Ci0gICAgICAgIHRoaXMuX3dvcmtsaXN0LnB1
c2gobmFtZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAg
ICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlzaXRUeXBlUmVmKG5v
ZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCi0gICAgewotICAg
ICAgICB0aGlzLmFkZChub2RlLm5hbWUpOwotICAgICAgICBzdXBlci52aXNpdFZhcmlhYmxlUmVm
KG5vZGUpOwotICAgIH0KLQotICAgIF9oYW5kbGVQcm9wZXJ0eUFjY2Vzcyhub2RlKQotICAgIHsK
LSAgICAgICAgdGhpcy5hZGQobm9kZS5nZXRGdW5jTmFtZSk7Ci0gICAgICAgIHRoaXMuYWRkKG5v
ZGUuc2V0RnVuY05hbWUpOwotICAgICAgICB0aGlzLmFkZChub2RlLmFuZEZ1bmNOYW1lKTsKLSAg
ICB9Ci0gICAgCi0gICAgdmlzaXREb3RFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICB0
aGlzLl9oYW5kbGVQcm9wZXJ0eUFjY2Vzcyhub2RlKTsKLSAgICAgICAgc3VwZXIudmlzaXREb3RF
eHByZXNzaW9uKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEluZGV4RXhwcmVzc2lvbihu
b2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5faGFuZGxlUHJvcGVydHlBY2Nlc3Mobm9kZSk7Ci0g
ICAgICAgIHN1cGVyLnZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLmFkZChub2Rl
Lm5hbWUpOwotICAgICAgICBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgIH0K
LX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29s
dmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTA5OWY0ODVlNi4uMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjE4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotLy8gVGhpcyBvbmx5IHJlc29sdmVzIG5hbWVz
LiBBZnRlciB0aGlzIHBoYXNlIHJ1bnMsIGFsbCBuYW1lcyB3aWxsIGJlIHJlc29sdmVkLiBUaGlz
IG1lYW5zIHRoYXQgYWxsCi0vLyBYWVpSZWYgb2JqZWN0cyBub3cga25vdyB3aG8gdGhleSByZXNv
bHZlIHRvLiBUaGlzIGRvZXMgbm90IHlldCBhbGxvdyB0eXBlIGFuYWx5c2lzLCBiZWNhdXNlIHRo
ZXJlCi0vLyBhcmUgc3RpbGwgVHlwZURlZnMuIFRoaXMgdGhyb3dzIHR5cGUgZXJyb3JzIGZvciBm
YWlsZWQgbmFtZSByZXNvbHV0aW9ucyBhbmQgZm9yIHRoaW5ncyB0aGF0IGFyZQotLy8gbW9yZSBj
b252ZW5pZW50IHRvIGNoZWNrIGhlcmUgdGhhbiBpbiB0aGUgQ2hlY2tlci4gVGhpcyB1c3VhbGx5
IGludm9sdmVzIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUKLS8vIGNoZWNrZWQgYmVmb3JlIFR5cGVS
ZWZUb1R5cGVEZWZTa2lwcGVyLgotY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7
Ci0gICAgY29uc3RydWN0b3IobmFtZUNvbnRleHQpCi0gICAgewotICAgICAgICBzdXBlcigpOwot
ICAgICAgICB0aGlzLl9uYW1lQ29udGV4dCA9IG5hbWVDb250ZXh0OwotICAgIH0KLQotICAgIGRv
U3RhdGVtZW50KHN0YXRlbWVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX25hbWVDb250ZXh0LmRv
U3RhdGVtZW50KHN0YXRlbWVudCwgKCkgPT4gc3RhdGVtZW50LnZpc2l0KHRoaXMpKTsKLSAgICB9
Ci0gICAgCi0gICAgdmlzaXRGdW5jKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgY2hlY2tlciA9
IG5ldyBOYW1lUmVzb2x2ZXIobmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KSk7Ci0g
ICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyKTsKLSAgICAgICAgZm9yIChsZXQg
cGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKLSAgICAgICAgICAgIHBhcmFtZXRlci52aXNp
dChjaGVja2VyKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRGdW5jRGVmKG5vZGUpCi0gICAgewot
ICAgICAgICBsZXQgZnVuY0RlZk5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25h
bWVDb250ZXh0KTsKLSAgICAgICAgbGV0IGZ1bmNEZWZOYW1lUmVzb2x2ZXIgPSBuZXcgTmFtZVJl
c29sdmVyKGZ1bmNEZWZOYW1lQ29udGV4dCk7Ci0gICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNp
dChmdW5jRGVmTmFtZVJlc29sdmVyKTsKLSAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykgewotICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGZ1bmNEZWZOYW1l
UmVzb2x2ZXIpOwotICAgICAgICAgICAgZnVuY0RlZk5hbWVDb250ZXh0LmFkZChwYXJhbWV0ZXIp
OwotICAgICAgICB9Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdChmdW5jRGVmTmFtZVJlc29sdmVy
KTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRCbG9jayhub2RlKQotICAgIHsKLSAgICAgICAgbGV0
IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29u
dGV4dCkpOwotICAgICAgICBmb3IgKGxldCBzdGF0ZW1lbnQgb2Ygbm9kZS5zdGF0ZW1lbnRzKQot
ICAgICAgICAgICAgc3RhdGVtZW50LnZpc2l0KGNoZWNrZXIpOwotICAgIH0KLQotICAgIHZpc2l0
SWZTdGF0ZW1lbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUuY29uZGl0aW9uYWwudmlzaXQo
dGhpcyk7Ci0gICAgICAgIC8vIFRoZSBib2RpZXMgbWlnaHQgbm90IGJlIEJsb2Nrcywgc28gd2Ug
bmVlZCB0byBleHBsaWNpdGx5IGdpdmUgdGhlbSBhIG5ldyBjb250ZXh0LgotICAgICAgICBub2Rl
LmJvZHkudmlzaXQobmV3IE5hbWVSZXNvbHZlcihuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNv
bnRleHQpKSk7Ci0gICAgICAgIGlmIChub2RlLmVsc2VCb2R5KQotICAgICAgICAgICAgbm9kZS5l
bHNlQm9keS52aXNpdChuZXcgTmFtZVJlc29sdmVyKG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1l
Q29udGV4dCkpKTsKLSAgICB9Ci0KLSAgICB2aXNpdFdoaWxlTG9vcChub2RlKQotICAgIHsKLSAg
ICAgICAgbm9kZS5jb25kaXRpb25hbC52aXNpdCh0aGlzKTsKLSAgICAgICAgLy8gVGhlIGJvZGll
cyBtaWdodCBub3QgYmUgQmxvY2tzLCBzbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgZ2l2ZSB0aGVt
IGEgbmV3IGNvbnRleHQuCi0gICAgICAgIG5vZGUuYm9keS52aXNpdChuZXcgTmFtZVJlc29sdmVy
KG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCkpKTsKLSAgICB9Ci0KLSAgICB2aXNp
dERvV2hpbGVMb29wKG5vZGUpCi0gICAgewotICAgICAgICAvLyBUaGUgYm9kaWVzIG1pZ2h0IG5v
dCBiZSBCbG9ja3MsIHNvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBnaXZlIHRoZW0gYSBuZXcgY29u
dGV4dC4KLSAgICAgICAgbm9kZS5ib2R5LnZpc2l0KG5ldyBOYW1lUmVzb2x2ZXIobmV3IE5hbWVD
b250ZXh0KHRoaXMuX25hbWVDb250ZXh0KSkpOwotICAgICAgICBub2RlLmNvbmRpdGlvbmFsLnZp
c2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0Rm9yTG9vcChub2RlKQotICAgIHsKLSAgICAg
ICAgbGV0IG5ld1Jlc29sdmVyID0gbmV3IE5hbWVSZXNvbHZlcihuZXcgTmFtZUNvbnRleHQodGhp
cy5fbmFtZUNvbnRleHQpKQotICAgICAgICBpZiAobm9kZS5pbml0aWFsaXphdGlvbikKLSAgICAg
ICAgICAgIG5vZGUuaW5pdGlhbGl6YXRpb24udmlzaXQobmV3UmVzb2x2ZXIpOwotICAgICAgICBp
ZiAobm9kZS5jb25kaXRpb24pCi0gICAgICAgICAgICBub2RlLmNvbmRpdGlvbi52aXNpdChuZXdS
ZXNvbHZlcik7Ci0gICAgICAgIGlmIChub2RlLmluY3JlbWVudCkKLSAgICAgICAgICAgIG5vZGUu
aW5jcmVtZW50LnZpc2l0KG5ld1Jlc29sdmVyKTsKLSAgICAgICAgbm9kZS5ib2R5LnZpc2l0KG5l
d1Jlc29sdmVyKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRUeXBlRGVmKG5vZGUpCi0gICAgewot
ICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRl
eHQpOwotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQp
OwotICAgICAgICBub2RlLnR5cGUudmlzaXQoY2hlY2tlcik7Ci0gICAgfQotICAgIAotICAgIHZp
c2l0U3RydWN0VHlwZShub2RlKQotICAgIHsKLSAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3
IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKLSAgICAgICAgbGV0IGNoZWNrZXIgPSBu
ZXcgTmFtZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgZmllbGQgb2Yg
bm9kZS5maWVsZHMpCi0gICAgICAgICAgICBmaWVsZC52aXNpdChjaGVja2VyKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewotICAgICAgICBzdXBlci52aXNpdFR5
cGVSZWYobm9kZSk7Ci0gICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOwotICAgICAgICBpZiAo
IXR5cGUpIHsKLSAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVHlwZSwg
bm9kZS5uYW1lKTsKLSAgICAgICAgICAgIGlmICghdHlwZSkKLSAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmlu
ZCB0eXBlIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICAgICAgaWYgKHR5cGUgaW5zdGFu
Y2VvZiBBcnJheSkgewotICAgICAgICAgICAgICAgIC8vIFR5cGUgdW5pZmljYXRpb24gcmVxdWly
ZXMgdGhlIC50eXBlIHZhbHVlIHRvIGJlIHNldCBhbHJlYWR5LCBzbyB3ZSBjYW4gZWFnZXJseSBz
ZXQgaXQgbm93LgotICAgICAgICAgICAgICAgIGZvciAobGV0IG92ZXJsb2FkIG9mIHR5cGUpCi0g
ICAgICAgICAgICAgICAgICAgIE5vZGUudmlzaXQob3ZlcmxvYWQsIHRoaXMpOwotICAgICAgICAg
ICAgICAgIG5vZGUucmVzb2x2ZSh0eXBlKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgICAgIG5vZGUudHlwZSA9IHR5cGU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdmlz
aXRSZWZlcmVuY2VUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBu
ZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBub2RlLmVsZW1lbnRU
eXBlLnZpc2l0KG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQpKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRWYXJpYWJsZURlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX25hbWVDb250
ZXh0LmFkZChub2RlKTsKLSAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICBp
ZiAobm9kZS5pbml0aWFsaXplcikKLSAgICAgICAgICAgIG5vZGUuaW5pdGlhbGl6ZXIudmlzaXQo
dGhpcyk7Ci0gICAgfQotCi0gICAgdmlzaXRWYXJpYWJsZVJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKG5vZGUudmFyaWFibGUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGxldCBy
ZXN1bHQgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVmFsdWUsIG5vZGUubmFtZSk7Ci0gICAgICAg
IGlmICghcmVzdWx0KQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiQ291bGQgbm90IGZpbmQgdmFyaWFibGUgbmFtZWQgIiArIG5vZGUu
bmFtZSk7Ci0gICAgICAgIG5vZGUudmFyaWFibGUgPSByZXN1bHQ7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0UmV0dXJuKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmZ1bmMgPSB0aGlzLl9uYW1l
Q29udGV4dC5jdXJyZW50U3RhdGVtZW50OwotICAgICAgICBzdXBlci52aXNpdFJldHVybihub2Rl
KTsKLSAgICB9Ci0gICAgCi0gICAgX2hhbmRsZVByb3BlcnR5QWNjZXNzKG5vZGUpCi0gICAgewot
ICAgICAgICBub2RlLnBvc3NpYmxlR2V0T3ZlcmxvYWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0
KEZ1bmMsIG5vZGUuZ2V0RnVuY05hbWUpOwotICAgICAgICBub2RlLnBvc3NpYmxlU2V0T3Zlcmxv
YWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUuc2V0RnVuY05hbWUpOwotICAg
ICAgICBub2RlLnBvc3NpYmxlQW5kT3ZlcmxvYWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1
bmMsIG5vZGUuYW5kRnVuY05hbWUpOwotCi0gICAgICAgIGlmICghbm9kZS5wb3NzaWJsZUdldE92
ZXJsb2FkcyAmJiAhbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcykKLSAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGVp
dGhlciAiICsgbm9kZS5nZXRGdW5jTmFtZSArICIgb3IgIiArIG5vZGUuYW5kRnVuY05hbWUpOwot
ICAgIH0KLSAgICAKLSAgICB2aXNpdERvdEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAg
IC8vIFRoaXMgY291bGQgYmUgYSByZWZlcmVuY2UgdG8gYW4gZW51bS4gTGV0J3MgcmVzb2x2ZSB0
aGF0IG5vdy4KLSAgICAgICAgaWYgKG5vZGUuc3RydWN0IGluc3RhbmNlb2YgVmFyaWFibGVSZWYp
IHsKLSAgICAgICAgICAgIGxldCBlbnVtVHlwZSA9IHRoaXMuX25hbWVDb250ZXh0LmdldChUeXBl
LCBub2RlLnN0cnVjdC5uYW1lKTsKLSAgICAgICAgICAgIGlmIChlbnVtVHlwZSAmJiBlbnVtVHlw
ZSBpbnN0YW5jZW9mIEVudW1UeXBlKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGVudW1NZW1iZXIg
PSBlbnVtVHlwZS5tZW1iZXJCeU5hbWUobm9kZS5maWVsZE5hbWUpOwotICAgICAgICAgICAgICAg
IGlmICghZW51bU1lbWJlcikKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRW51bSAiICsgZW51bVR5cGUubmFtZSArICIg
ZG9lcyBub3QgaGF2ZSBhIG1lbWJlciBuYW1lZCAiICsgbm9kZS5maWVsZE5hbWUpOwotICAgICAg
ICAgICAgICAgIG5vZGUuYmVjb21lKG5ldyBFbnVtTGl0ZXJhbChub2RlLm9yaWdpbiwgZW51bU1l
bWJlcikpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgdGhpcy5faGFuZGxlUHJvcGVydHlBY2Nlc3Mobm9kZSk7Ci0g
ICAgICAgIHN1cGVyLnZpc2l0RG90RXhwcmVzc2lvbihub2RlKTsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2hhbmRsZVBy
b3BlcnR5QWNjZXNzKG5vZGUpOwotICAgICAgICBzdXBlci52aXNpdEluZGV4RXhwcmVzc2lvbihu
b2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgIHsK
LSAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFt
ZSk7Ci0gICAgICAgIGlmIChmdW5jcykKLSAgICAgICAgICAgIG5vZGUucG9zc2libGVPdmVybG9h
ZHMgPSBmdW5jczsKLSAgICAgICAgZWxzZSBpZiAobm9kZS5uYW1lICE9ICJvcGVyYXRvciBjYXN0
Iil7Ci0gICAgICAgICAgICBub2RlLnNldENhc3REYXRhKG5ldyBUeXBlUmVmKG5vZGUub3JpZ2lu
LCBub2RlLm5hbWUpKTsKLSAgICAgICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSB0aGlz
Ll9uYW1lQ29udGV4dC5nZXQoRnVuYywgIm9wZXJhdG9yIGNhc3QiKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmICghbm9kZS5wb3NzaWJsZU92ZXJsb2FkcykKLSAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGFueSBw
b3NzaWJsZSBvdmVybG9hZHMgZm9yICIgKyBub2RlKTsKLSAgICAgICAgCi0gICAgICAgIHN1cGVy
LnZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVmNjllYmVkZGE3Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYXRpdmVGdW5jLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1j
bGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QgPSBmYWxzZSwgc3RhZ2UgPSBudWxs
KQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QpOwotICAgICAgICB0aGlzLl9zdGFnZSA9IHN0YWdlOwotICAgICAgICB0aGlz
LmlzUmVzdHJpY3RlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uID0gbnVs
bDsKLSAgICAgICAgdGhpcy5faW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAgICAgdGhp
cy52aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1lbnRhdGlvbkRhdGEsIHZpc2l0b3Ip
ID0+IG51bGw7Ci0gICAgfQotCi0gICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIGdldCBzdGFnZSgpIHsgcmV0dXJuIHRoaXMuX3N0YWdlOyB9Ci0KLSAgICBnZXQgaW1wbGVt
ZW50YXRpb25EYXRhKCkgeyByZXR1cm4gdGhpcy5faW1wbGVtZW50YXRpb25EYXRhOyB9Ci0gICAg
c2V0IGltcGxlbWVudGF0aW9uRGF0YShuZXdJbXBsRGF0YSkgeyB0aGlzLl9pbXBsZW1lbnRhdGlv
bkRhdGEgPSBuZXdJbXBsRGF0YTsgfQotCi0gICAgdG9EZWNsU3RyaW5nKCkKLSAgICB7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSAibmF0aXZlICI7Ci0gICAgICAgIGlmICh0aGlzLnN0YWdlKQotICAg
ICAgICAgICAgcmVzdWx0ICs9IGAke3RoaXMuc3RhZ2V9IGA7Ci0gICAgICAgIHJlc3VsdCArPSBz
dXBlci50b0RlY2xTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19Ci0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMzY4YTJlOGIyNC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGlm
ICghKHR5cGVBcmd1bWVudHMgaW5zdGFuY2VvZiBBcnJheSkpCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJyYXk6ICIgKyB0eXBlQXJndW1lbnRzKTsK
LSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAg
ICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVB
cmd1bWVudHM7Ci0gICAgICAgIHRoaXMuX2lzTnVtYmVyID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
X2lzSW50ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2lzRmxvYXRpbmcgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy5faXNQcmltaXRpdmUgPSBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdp
bigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhp
cy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFy
Z3VtZW50czsgfQotICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAKLSAg
ICAvLyBXZSBsZXQgSW50cmluc2ljcy5qcyBzZXQgdGhlc2UgYXMgaXQgbGlrZXMuCi0gICAgZ2V0
IGlzTnVtYmVyKCkgeyByZXR1cm4gdGhpcy5faXNOdW1iZXI7IH0KLSAgICBzZXQgaXNOdW1iZXIo
dmFsdWUpIHsgdGhpcy5faXNOdW1iZXIgPSB2YWx1ZTsgfQotICAgIGdldCBpc0ludCgpIHsgcmV0
dXJuIHRoaXMuX2lzSW50OyB9Ci0gICAgc2V0IGlzSW50KHZhbHVlKSB7IHRoaXMuX2lzSW50ID0g
dmFsdWU7IH0KLSAgICBnZXQgaXNGbG9hdGluZygpIHsgcmV0dXJuIHRoaXMuX2lzRmxvYXRpbmc7
IH0KLSAgICBzZXQgaXNGbG9hdGluZyh2YWx1ZSkgeyB0aGlzLl9pc0Zsb2F0aW5nID0gdmFsdWU7
IH0KLSAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc1ByaW1pdGl2ZTsgfQot
ICAgIHNldCBpc1ByaW1pdGl2ZSh2YWx1ZSkgeyB0aGlzLl9pc1ByaW1pdGl2ZSA9IHZhbHVlOyB9
Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IGBuYXRp
dmUgdHlwZWRlZiAke3RoaXMubmFtZX1gOwotICAgICAgICBpZiAodGhpcy50eXBlQXJndW1lbnRz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJlc3VsdCArPSAiPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMu
am9pbigiLCIpICsgIj4iOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAg
ICBzdGF0aWMgY3JlYXRlKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAg
ICAgIGlmIChuYW1lID09ICJ2ZWN0b3IiKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JU
eXBlKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgIGlmIChuYW1lID09ICJt
YXRyaXgiKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBNYXRyaXhUeXBlKG9yaWdpbiwgbmFtZSwg
dHlwZUFyZ3VtZW50cyk7Ci0KLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwg
bmFtZSwgdHlwZUFyZ3VtZW50cyk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTm9kZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRiYTQ4Y2IxNGIuLjAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBOb2RlIHsKLSAgICB2aXNp
dCh2aXNpdG9yKQotICAgIHsKLSAgICAgICAgbGV0IHZpc2l0RnVuYyA9IHZpc2l0b3JbInZpc2l0
IiArIHRoaXMuY29uc3RydWN0b3IubmFtZV07Ci0gICAgICAgIGlmICghdmlzaXRGdW5jKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJObyB2aXNpdCBmdW5jdGlvbiBmb3IgIiArIHRoaXMu
Y29uc3RydWN0b3IubmFtZSArICIgaW4gIiArIHZpc2l0b3IuY29uc3RydWN0b3IubmFtZSk7Ci0g
ICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IHZpc2l0RnVuYy5jYWxsKHZpc2l0b3IsIHRoaXMpOwot
ICAgICAgICBpZiAoInJldHVyblZhbHVlIiBpbiB2aXNpdG9yKQotICAgICAgICAgICAgcmV0dXJu
VmFsdWUgPSB2aXNpdG9yLnJldHVyblZhbHVlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHJl
dHVyblZhbHVlOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgdmlzaXQobm9kZSwgdmlzaXRvcikK
LSAgICB7Ci0gICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgTm9kZSkKLSAgICAgICAgICAgIHJl
dHVybiBub2RlLnZpc2l0KHZpc2l0b3IpOwotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0g
ICAgCi0gICAgdW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAg
IGlmICghb3RoZXIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgb3RoZXIiKTsK
LSAgICAgICAgbGV0IHVuaWZ5VGhpcyA9IHRoaXMudW5pZnlOb2RlOwotICAgICAgICBsZXQgdW5p
ZnlPdGhlciA9IG90aGVyLnVuaWZ5Tm9kZTsKLSAgICAgICAgaWYgKHVuaWZ5VGhpcyA9PSB1bmlm
eU90aGVyKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICh1bmlmeU90aGVy
LnR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgdW5pZnlUaGlzKSkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICByZXR1cm4gdW5pZnlUaGlzLnVuaWZ5SW1wbCh1
bmlmaWNhdGlvbkNvbnRleHQsIHVuaWZ5T3RoZXIpOwotICAgIH0KLSAgICAKLSAgICB1bmlmeUlt
cGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmIChvdGhlci50
eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHRoaXMpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIHJldHVybiB0aGlzID09IG90aGVyOwotICAgIH0KLSAgICAK
LSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKLSAgICBfdHlwZVZhcmlhYmxlVW5p
ZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBsZXQgcmVh
bFRoaXMgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAgaWYgKHJlYWxU
aGlzICE9IHRoaXMpCi0gICAgICAgICAgICByZXR1cm4gcmVhbFRoaXMudW5pZnkodW5pZmljYXRp
b25Db250ZXh0LCBvdGhlcik7Ci0gICAgICAgIAotICAgICAgICB1bmlmaWNhdGlvbkNvbnRleHQu
dW5pb24odGhpcywgb3RoZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0g
ICAgLy8gTW9zdCB0eXBlIHZhcmlhYmxlcyBkb24ndCBjYXJlIGFib3V0IHRoaXMuCi0gICAgcHJl
cGFyZVRvVmVyaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCkgeyB9Ci0gICAgY29tbWl0VW5pZmljYXRp
b24odW5pZmljYXRpb25Db250ZXh0KSB7IH0KLSAgICAKLSAgICBnZXQgdW5pZnlOb2RlKCkgeyBy
ZXR1cm4gdGhpczsgfQotICAgIGdldCBpc1VuaWZpYWJsZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgZ2V0IGlzTGl0ZXJhbCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgZ2V0IGlzTmF0
aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAKLSAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNh
dGlvbkNvbnRleHQpIHsgcmV0dXJuIDA7IH0KLSAgICAKLSAgICBlcXVhbHMob3RoZXIpCi0gICAg
ewotICAgICAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4
dCgpOwotICAgICAgICBpZiAodGhpcy51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKSAm
JiB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCkucmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IHVuaWZpY2F0aW9uQ29udGV4dDsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAK
LSAgICBlcXVhbHNXaXRoQ29tbWl0KG90aGVyKQotICAgIHsKLSAgICAgICAgbGV0IHVuaWZpY2F0
aW9uQ29udGV4dCA9IHRoaXMuZXF1YWxzKG90aGVyKTsKLSAgICAgICAgaWYgKCF1bmlmaWNhdGlv
bkNvbnRleHQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHVuaWZpY2F0aW9u
Q29udGV4dC5jb21taXQoKTsKLSAgICAgICAgcmV0dXJuIHVuaWZpY2F0aW9uQ29udGV4dDsKLSAg
ICB9Ci0gICAgCi0gICAgY29tbWl0KCkKLSAgICB7Ci0gICAgICAgIGxldCB1bmlmaWNhdGlvbkNv
bnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7Ci0gICAgICAgIHVuaWZpY2F0aW9uQ29u
dGV4dC5hZGRFeHRyYU5vZGUodGhpcyk7Ci0gICAgICAgIGxldCByZXN1bHQgPSB1bmlmaWNhdGlv
bkNvbnRleHQudmVyaWZ5KCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAg
ICAgIHRocm93IG5ldyBXRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ291bGQgbm90
IGluZmVyIHR5cGU6ICIgKyByZXN1bHQucmVhc29uKTsKLSAgICAgICAgdW5pZmljYXRpb25Db250
ZXh0LmNvbW1pdCgpOwotICAgICAgICByZXR1cm4gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhp
cyk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Tm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRmNDVkN2U0ZWIxLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Ob3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyIGV4dGVu
ZHMgUmV3cml0ZXIgewotICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHN1cGVyLnZpc2l0RG90RXhwcmVzc2lvbihub2RlKS5yZXdyaXRlQWZ0ZXJDbG9u
aW5nKCk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gc3VwZXIudmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSkucmV3cml0
ZUFmdGVyQ2xvbmluZygpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTnVsbExpdGVyYWwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OdWxsTGl0ZXJhbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA5Yzgz
NzZkZDUuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL051
bGxMaXRlcmFsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBO
dWxsTGl0ZXJhbCBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbikK
LSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRoaXMudHlwZSA9IG5ldyBO
dWxsVHlwZShvcmlnaW4pOwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAg
ICAgICByZXR1cm4gIm51bGwiOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTnVsbFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OdWxsVHlwZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTIzMTVhYjZm
OTUuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL051bGxU
eXBlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBOdWxsVHlw
ZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbikKLSAgICB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICB9Ci0gICAgCi0g
ICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIAotICAgIC8vIEZv
ciBub3cgd2UgYW5zd2VyIGZhbHNlIGZvciBpc1B0ciBhbmQgaXNBcnJheVJlZiBiZWNhdXNlIHRo
YXQgaGFwcGVucyB0byBtYWtlIGFsbCBvZiB0aGUgbG9naWMKLSAgICAvLyB3b3JrLiBCdXQsIGl0
J3Mgc3RyYW5nZSwgc2luY2UgYXMgYSBib3R0b20gdHlwZSBpdCByZWFsbHkgaXMgdGhlIGNhc2Ug
dGhhdCB0aGlzIGlzIGJvdGggaXNQdHIgYW5kCi0gICAgLy8gaXNBcnJheVJlZi4KLSAgICAKLSAg
ICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgZ2V0IGlzVW5pZmlhYmxl
KCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCBpc0xpdGVyYWwoKSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgCi0gICAgdHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikK
LSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgVHlwZSkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdGhpcy5fdHlwZVZhcmlh
YmxlVW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgIH0KLSAgICAKLSAg
ICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLnR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwot
ICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9uQ29udGV4dCkKLSAg
ICB7Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMp
OwotICAgICAgICBpZiAocmVhbFRoaXMuaXNQdHIgfHwgcmVhbFRoaXMuaXNBcnJheVJlZikKLSAg
ICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6
IGZhbHNlLCByZWFzb246ICJOdWxsIGNhbm5vdCBiZSB1c2VkIHdpdGggbm9uLXBvaW50ZXIgdHlw
ZSAiICsgcmVhbFRoaXN9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlm
aWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGxUeXBl
IHNob3VsZCBuZXZlciBiZSB1c2VkIGFzIGEgdHlwZSBwYXJhbWV0ZXIiKTsKLSAgICB9Ci0gICAg
Ci0gICAgY29tbWl0VW5pZmljYXRpb24odW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAg
ICAgdGhpcy50eXBlID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgfQotICAg
IAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAibnVsbFR5cGUiOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0
b3JBbmRlckluZGV4ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRv
ckFuZGVySW5kZXhlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDEyZjA2Nzgw
ZjcuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJh
dG9yQW5kZXJJbmRleGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNs
YXNzIE9wZXJhdG9yQW5kZXJJbmRleGVyIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUs
IGFkZHJlc3NTcGFjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VU
eXBlTmFtZTsKLSAgICAgICAgdGhpcy5fYWRkcmVzc1NwYWNlID0gYWRkcmVzc1NwYWNlOwotICAg
IH0KLQotICAgIGdldCBhZGRyZXNzU3BhY2UoKSB7IHJldHVybiB0aGlzLl9hZGRyZXNzU3BhY2U7
IH0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9
Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMu
YmFzZVR5cGVOYW1lfSogJHt0aGlzLmFkZHJlc3NTcGFjZX0gb3BlcmF0b3ImW10oJHt0aGlzLmJh
c2VUeXBlTmFtZX1bXSAke3RoaXMuYWRkcmVzc1NwYWNlfSx1aW50KWA7Ci0gICAgfQotCi0gICAg
aW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbcmVmLCBpbmRleF0sIG5vZGUpID0+IHsKLSAgICAgICAgICAgIHJlZiA9
IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgZGVy
ZWZlcmVuY2UiKTsKLSAgICAgICAgICAgIGluZGV4ID0gaW5kZXgubG9hZFZhbHVlKCk7Ci0gICAg
ICAgICAgICBpZiAoaW5kZXggPiByZWYubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkFycmF5IGluZGV4ICIgKyBp
bmRleCArICIgaXMgb3V0IG9mIGJvdW5kcyBvZiAiICsgcmVmKTsKLSAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveChyZWYucHRyLnBsdXMoaW5kZXggKiBub2RlLmFyZ3VtZW50VHlwZXNbMF0uZWxl
bWVudFR5cGUuc2l6ZSkpOwotICAgICAgICB9OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
RGF0YSA9IHRoaXM7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL09wZXJhdG9yQXJyYXlSZWZMZW5ndGguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc5MDYyYzI1MTA1Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE9wZXJhdG9yQXJyYXlSZWZMZW5ndGggewotICAgIGNv
bnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgYWRkcmVzc1NwYWNlKQotICAgIHsKLSAgICAgICAgdGhp
cy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9hZGRyZXNzU3Bh
Y2UgPSBhZGRyZXNzU3BhY2U7Ci0gICAgfQotCi0gICAgZ2V0IGFkZHJlc3NTcGFjZSgpIHsgcmV0
dXJuIHRoaXMuX2FkZHJlc3NTcGFjZTsgfQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVy
biB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBgbmF0aXZlIHVpbnQgJHt0aGlzLmFkZHJlc3NTcGFjZX0gb3BlcmF0b3IubGVuZ3Ro
KCR7dGhpcy5iYXNlVHlwZU5hbWV9W10gJHt0aGlzLmFkZHJlc3NTcGFjZX0pYDsKLSAgICB9Ci0K
LSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtyZWZdKSA9PiB7Ci0gICAgICAgICAgICByZWYgPSByZWYubG9h
ZFZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3goMCk7Ci0gICAgICAgICAgICByZXR1cm4gRVB0ci5ib3gocmVmLmxlbmd0aCk7Ci0g
ICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9
Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcmlnaW5LaW5k
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3JpZ2luS2luZC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI2MzhhM2U5MDcuLjAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09yaWdpbktpbmQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLWNvbnN0IG9yaWdpbktpbmRzID0gWyJuYXRpdmUiLCAidXNl
ciJdOwotCi1mdW5jdGlvbiBpc09yaWdpbktpbmQob3JpZ2luS2luZCkKLXsKLSAgICBzd2l0Y2gg
KG9yaWdpbktpbmQpIHsKLSAgICBjYXNlICJuYXRpdmUiOgotICAgIGNhc2UgInVzZXIiOgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PdmVy
bG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
T3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTM1MjE3MDcxMjEuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL092ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUgewotICAgIGNv
bnN0cnVjdG9yKGZ1bmMsIHJlYXNvbikKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Z1bmMgPSBmdW5j
OwotICAgICAgICB0aGlzLl9yZWFzb24gPSByZWFzb247Ci0gICAgfQotICAgIAotICAgIGdldCBm
dW5jKCkgeyByZXR1cm4gdGhpcy5fZnVuYzsgfQotICAgIGdldCByZWFzb24oKSB7IHJldHVybiB0
aGlzLl9yZWFzb247IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5mdW5jLnRvRGVjbFN0cmluZygpICsgIiBkaWQgbm90IG1hdGNoIGJlY2F1c2U6ICIg
KyB0aGlzLnJlYXNvbjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1BhcnNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFy
c2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkNDRkMDNmYjYzLi4wMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcworKysgL2Rl
di9udWxsCkBAIC0xLDE1NjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBv
cmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCi17Ci0gICAgbGV0IGxl
eGVyID0gbmV3IExleGVyKG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCk7Ci0KLSAgICAvLyBUaGUgaGFyZGVzdCBwYXJ0IG9mIGRlYWxpbmcgd2l0aCBDLWxpa2UgbGFu
Z3VhZ2VzIGlzIHBhcnNpbmcgdmFyaWFibGUgZGVjbGFyYXRpb24gc3RhdGVtZW50cy4KLSAgICAv
LyBMZXQncyBjb25zaWRlciBpZiB0aGlzIGhhcHBlbnMgaW4gV0hMU0wuIEhlcmUgYXJlIHRoZSB2
YWxpZCBzdGF0ZW1lbnRzIGluIFdITFNMIHRoYXQgYmVpbmcgd2l0aCBhbgotICAgIC8vIGlkZW50
aWZpZXIsIGlmIHdlIGFzc3VtZSB0aGF0IGFueSBleHByZXNzaW9uIGNhbiBiZSBhIHN0YW5kYWxv
bmUgc3RhdGVtZW50LgotICAgIC8vCi0gICAgLy8gICAgIHg7Ci0gICAgLy8gICAgIHggPGJpbm9w
PiB5OwotICAgIC8vICAgICB4IDwgeTsKLSAgICAvLyAgICAgeCA8IHkgPiB6OwotICAgIC8vICAg
ICB4ID0geTsKLSAgICAvLyAgICAgeC5mID0geTsKLSAgICAvLyAgICAgXGV4cCA9IHk7Ci0gICAg
Ly8gICAgIHhbNDJdID0geTsKLSAgICAvLyAgICAgeCgpOwotICAgIC8vICAgICB4PHk+KCk7Ci0g
ICAgLy8gICAgIHggeTsKLSAgICAvLyAgICAgeDx5PiB6OwotICAgIC8vICAgICBkZXZpY2UgeFtd
IHk7Ci0gICAgLy8gICAgIHhbNDJdIHk7Ci0gICAgLy8gICAgIGRldmljZSB4XiB5OwotICAgIC8v
ICAgICB0aHJlYWQgeF5eIHk7Ci0gICAgLy8gICAgIHhedGhyZWFkXnRocmVhZCB5OwotICAgIC8v
ICAgICB4XmRldmljZV50aHJlYWQgeTsKLSAgICAvLwotICAgIC8vIFRoaXMgaGFzIHR3byBwcm9i
bGVtIGFyZWFzOgotICAgIC8vCi0gICAgLy8gICAgIC0geDx5PnogY2FuIHBhcnNlIHR3byBkaWZm
ZXJlbnQgd2F5cyAoYXMgKHggPCB5KSA+IHogb3IgeDx5PiB6KS4KLSAgICAvLyAgICAgLSB4WzQy
XSBjb3VsZCBiZWNvbWUgZWl0aGVyIGFuIGFzc2lnbm1lbnQgb3IgYSB2YXJpYWJsZSBkZWNsYXJh
dGlvbi4KLSAgICAvLyAgICAgLSB4PHk+IGNvdWxkIGJlY29tZSBlaXRoZXIgYW4gYXNzaWdubWVu
dCBvciBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uLgotICAgIC8vCi0gICAgLy8gV2Ugc29sdmUgdGhl
IGZpcnN0IHByb2JsZW0gYnkgZm9yYmlkZGluZyBleHByZXNzaW9ucyBhcyBzdGF0ZW1lbnRzLiBU
aGUgbGFjayBvZiBmdW5jdGlvbgotICAgIC8vIHBvaW50ZXJzIG1lYW5zIHRoYXQgd2UgY2FuIHN0
aWxsIGFsbG93IGZ1bmN0aW9uIGNhbGwgc3RhdGVtZW50cyAtIHVubGlrZSBpbiBDLCB0aG9zZSBj
YW5ub3QKLSAgICAvLyBoYXZlIGFyYml0cmFyeSBleHByZXNzaW9ucyBhcyB0aGUgY2FsbGVlLiBU
aGUgcmVtYWluaW5nIHR3byBwcm9ibGVtcyBhcmUgc29sdmVkIGJ5Ci0gICAgLy8gYmFja3RyYWNr
aW5nLiBJbiBhbGwgb3RoZXIgcmVzcGVjdHMsIHRoaXMgaXMgYSBzaW1wbGUgcmVjdXJzaXZlIGRl
c2NlbnQgcGFyc2VyLgotCi0gICAgZnVuY3Rpb24gZmFpbChlcnJvcikKLSAgICB7Ci0gICAgICAg
IHJldHVybiBuZXcgV1N5bnRheEVycm9yKGxleGVyLm9yaWdpblN0cmluZywgZXJyb3IpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGJhY2t0cmFja2luZ1Njb3BlKGNhbGxiYWNrKQotICAgIHsKLSAg
ICAgICAgbGV0IHN0YXRlID0gbGV4ZXIuc3RhdGU7Ci0gICAgICAgIGxldCBtYXliZUVycm9yID0g
Y2FsbGJhY2soKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJy
b3IpIHsKLSAgICAgICAgICAgIGxleGVyLnN0YXRlID0gc3RhdGU7Ci0gICAgICAgICAgICByZXR1
cm4gbnVsbDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0U2NvcGUoY2FsbGJhY2spCi0gICAgewotICAgICAg
ICBsZXQgc3RhdGUgPSBsZXhlci5zdGF0ZTsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjYWxs
YmFjaygpOwotICAgICAgICBsZXhlci5zdGF0ZSA9IHN0YXRlOwotICAgICAgICByZXR1cm4gISht
YXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBnZW5lcmljQ29uc3VtZShjYWxsYmFjaywgZXhwbGFuYXRpb24pCi0gICAgewotICAgICAgICBs
ZXQgdG9rZW4gPSBsZXhlci5uZXh0KCk7Ci0gICAgICAgIGlmICghdG9rZW4pCi0gICAgICAgICAg
ICByZXR1cm4gZmFpbCgiVW5leHBlY3RlZCBlbmQgb2YgZmlsZSIpOwotICAgICAgICBpZiAoIWNh
bGxiYWNrKHRva2VuKSkKLSAgICAgICAgICAgIHJldHVybiBmYWlsKCJVbmV4cGVjdGVkIHRva2Vu
OiAiICsgdG9rZW4udGV4dCArICI7IGV4cGVjdGVkOiAiICsgZXhwbGFuYXRpb24pOwotICAgICAg
ICByZXR1cm4gdG9rZW47Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29uc3VtZSguLi50ZXh0cykK
LSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmljQ29uc3VtZSh0b2tlbiA9PiB0ZXh0cy5pbmNs
dWRlcyh0b2tlbi50ZXh0KSwgdGV4dHMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbnN1bWVL
aW5kKGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJpY0NvbnN1bWUodG9rZW4gPT4g
dG9rZW4ua2luZCA9PSBraW5kLCBraW5kKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRO
ZXh0KC4uLnRleHRzKQotICAgIHsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKC4u
LnRleHRzKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3Ip
Ci0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbGV4ZXIucHVzaChtYXli
ZUVycm9yKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZW5lcmljVGVzdChjYWxsYmFjaykKLSAg
ICB7Ci0gICAgICAgIGxldCB0b2tlbiA9IGxleGVyLnBlZWsoKTsKLSAgICAgICAgaWYgKHRva2Vu
ICYmIGNhbGxiYWNrKHRva2VuKSkKLSAgICAgICAgICAgIHJldHVybiB0b2tlbjsKLSAgICAgICAg
cmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdCguLi50ZXh0cykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBnZW5lcmljVGVzdCh0b2tlbiA9PiB0ZXh0cy5pbmNsdWRlcyh0b2tl
bi50ZXh0KSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEtpbmQoa2luZCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBnZW5lcmljVGVzdCh0b2tlbiA9PiB0b2tlbi5raW5kID09IGtpbmQpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHRyeUNvbnN1bWUoLi4udGV4dHMpCi0gICAgewotICAgICAg
ICBsZXQgcmVzdWx0ID0gdGVzdCguLi50ZXh0cyk7Ci0gICAgICAgIGlmIChyZXN1bHQpCi0gICAg
ICAgICAgICBsZXhlci5uZXh0KCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gdHJ5Q29uc3VtZUtpbmQoa2luZCkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1
bHQgPSB0ZXN0S2luZChraW5kKTsKLSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIGxl
eGVyLm5leHQoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBjb25zdW1lRW5kT2ZUeXBlQXJncygpCi0gICAgewotICAgICAgICBsZXQgcmlnaHRTaGlmdCA9
IHRyeUNvbnN1bWUoIj4+Iik7Ci0gICAgICAgIGlmIChyaWdodFNoaWZ0KQotICAgICAgICAgICAg
bGV4ZXIucHVzaChuZXcgTGV4ZXJUb2tlbihsZXhlciwgcmlnaHRTaGlmdCwgcmlnaHRTaGlmdC5p
bmRleCwgcmlnaHRTaGlmdC5raW5kLCAiPiIpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIj4iKTsKLSAgICAgICAgICAgIGlmIChtYXliZUVy
cm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBtYXli
ZUVycm9yOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VUZXJtKCkKLSAg
ICB7Ci0gICAgICAgIGxldCB0b2tlbjsKLSAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
bnVsbCIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBOdWxsTGl0ZXJhbCh0b2tlbik7Ci0gICAg
ICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikpCi0gICAgICAgICAg
ICByZXR1cm4gbmV3IFZhcmlhYmxlUmVmKHRva2VuLCB0b2tlbi50ZXh0KTsKLSAgICAgICAgaWYg
KHRva2VuID0gdHJ5Q29uc3VtZUtpbmQoImludExpdGVyYWwiKSkgewotICAgICAgICAgICAgbGV0
IGludFZlcnNpb24gPSAoK3Rva2VuLnRleHQpIHwgMDsKLSAgICAgICAgICAgIGlmICgiIiArIGlu
dFZlcnNpb24gIT09IHRva2VuLnRleHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoIklu
dGVnZXIgbGl0ZXJhbCBpcyBub3QgYW4gaW50ZWdlcjogIiArIHRva2VuLnRleHQpOwotICAgICAg
ICAgICAgcmV0dXJuIG5ldyBJbnRMaXRlcmFsKHRva2VuLCBpbnRWZXJzaW9uKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lS2luZCgidWludExpdGVyYWwiKSkgewot
ICAgICAgICAgICAgbGV0IHVpbnRWZXJzaW9uID0gdG9rZW4udGV4dC5zdWJzdHIoMCwgdG9rZW4u
dGV4dC5sZW5ndGggLSAxKSA+Pj4gMDsKLSAgICAgICAgICAgIGlmICh1aW50VmVyc2lvbiArICJ1
IiAhPT0gdG9rZW4udGV4dCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFpbCgiSW50ZWdlciBs
aXRlcmFsIGlzIG5vdCAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcjogIiArIHRva2VuLnRleHQpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50TGl0ZXJhbCh0b2tlbiwgdWludFZlcnNpb24pOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICgodG9rZW4gPSB0cnlDb25zdW1lS2luZCgiaW50SGV4TGl0
ZXJhbCIpKQotICAgICAgICAgICAgfHwgKHRva2VuID0gdHJ5Q29uc3VtZUtpbmQoInVpbnRIZXhM
aXRlcmFsIikpKSB7Ci0gICAgICAgICAgICBsZXQgaGV4U3RyaW5nID0gdG9rZW4udGV4dC5zdWJz
dHIoMik7Ci0gICAgICAgICAgICBpZiAodG9rZW4ua2luZCA9PSAidWludEhleExpdGVyYWwiKQot
ICAgICAgICAgICAgICAgIGhleFN0cmluZyA9IGhleFN0cmluZy5zdWJzdHIoMCwgaGV4U3RyaW5n
Lmxlbmd0aCAtIDEpOwotICAgICAgICAgICAgaWYgKCFoZXhTdHJpbmcubGVuZ3RoKQotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGhleCBsaXRlcmFsOiAiICsgdG9rZW4pOwot
ICAgICAgICAgICAgbGV0IGludFZlcnNpb24gPSBwYXJzZUludChoZXhTdHJpbmcsIDE2KTsKLSAg
ICAgICAgICAgIGlmICh0b2tlbi5raW5kID09ICJpbnRIZXhMaXRlcmFsIikKLSAgICAgICAgICAg
ICAgICBpbnRWZXJzaW9uID0gaW50VmVyc2lvbiB8IDA7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgaW50VmVyc2lvbiA9IGludFZlcnNpb24gPj4+IDA7Ci0gICAgICAgICAgICBp
ZiAoaW50VmVyc2lvbi50b1N0cmluZygxNikgIT09IGhleFN0cmluZykKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmFpbCgiSGV4IGludGVnZXIgbGl0ZXJhbCBpcyBub3QgYW4gaW50ZWdlcjogIiAr
IHRva2VuLnRleHQpOwotICAgICAgICAgICAgaWYgKHRva2VuLmtpbmQgPT0gImludEhleExpdGVy
YWwiKQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW50TGl0ZXJhbCh0b2tlbiwgaW50VmVy
c2lvbik7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFVpbnRMaXRlcmFsKHRva2VuLCBpbnRWZXJz
aW9uID4+PiAwKTsKLSAgICAgICAgfQotICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lS2lu
ZCgiZmxvYXRMaXRlcmFsIikpIHsKLSAgICAgICAgICAgIGxldCB0ZXh0ID0gdG9rZW4udGV4dDsK
LSAgICAgICAgICAgIGxldCBmID0gdG9rZW4udGV4dC5lbmRzV2l0aCgiZiIpOwotICAgICAgICAg
ICAgaWYgKGYpCi0gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRleHQu
bGVuZ3RoIC0gMSk7Ci0gICAgICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KHRleHQpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdExpdGVyYWwodG9rZW4sIE1hdGguZnJvdW5kKHZh
bHVlKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgidHJ1ZSIs
ICJmYWxzZSIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBCb29sTGl0ZXJhbCh0b2tlbiwgdG9r
ZW4udGV4dCA9PSAidHJ1ZSIpOwotICAgICAgICAvLyBGSVhNRTogTmVlZCBzdXBwb3J0IGZvciBv
dGhlciBsaXRlcmFscyB0b28uCi0gICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiKCIp
OwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAg
ICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICBsZXQgcmVzdWx0ID0gcGFyc2VFeHBy
ZXNzaW9uKCk7Ci0gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0g
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICBtYXliZUVycm9yID0gY29uc3VtZSgi
KSIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlQ29uc3RleHByKCkKLSAgICB7Ci0gICAgICAgIGxldCB0
b2tlbjsKLSAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiLSIpKSB7Ci0gICAgICAgICAg
ICBsZXQgdGVybSA9IHBhcnNlVGVybSgpOwotICAgICAgICAgICAgaWYgKHRlcm0gaW5zdGFuY2Vv
ZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRlcm07Ci0gICAgICAgICAg
ICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4
dCwgW3Rlcm1dKTsKLSAgICAgICAgfQotICAgICAgICBsZXQgbGVmdCA9IHBhcnNlVGVybSgpOwot
ICAgICAgICBpZiAobGVmdCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJl
dHVybiBsZWZ0OwotICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIuIikpIHsKLSAgICAg
ICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKQotICAgICAg
ICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgICAgICBsZWZ0ID0gbmV3IERvdEV4cHJl
c3Npb24odG9rZW4sIGxlZnQsIG1heWJlRXJyb3IudGV4dCk7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIGxlZnQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VUeXBlQXJndW1lbnRzKCkK
LSAgICB7Ci0gICAgICAgIGlmICghdGVzdCgiPCIpKQotICAgICAgICAgICAgcmV0dXJuIFtdOwot
Ci0gICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25z
dW1lKCI8Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9y
KQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHdoaWxlICghdGVzdCgi
PiIpKSB7Ci0gICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIGZvciBhIGNvbnN0ZXhwciBvciB0
eXBlIGNhbiBzeW50YWN0aWNhbGx5IG92ZXJsYXAgaW4gdGhlIHNpbmdsZQotICAgICAgICAgICAg
Ly8gaWRlbnRpZmllciBjYXNlLiBMZXQncyBjb25zaWRlciB0aGUgcG9zc2liaWxpdGllczoKLSAg
ICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAgICAgVCAgICAgICAgICBjb3VsZCBiZSB0eXBl
IG9yIGNvbnN0ZXhwcgotICAgICAgICAgICAgLy8gICAgIFRbXSAgICAgICAgb25seSB0eXBlCi0g
ICAgICAgICAgICAvLyAgICAgVFs0Ml0gICAgICBvbmx5IHR5cGUgKGNvbnN0ZXhwciBjYW5ub3Qg
ZG8gaW5kZXhpbmcpCi0gICAgICAgICAgICAvLyAgICAgNDIgICAgICAgICBvbmx5IGNvbnN0ZXhw
cgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIEluIHRoZSBmdXR1cmUgd2UnbGwgYWxs
b3cgY29uc3RleHBycyB0byBkbyBtb3JlIHRoaW5ncywgYW5kIHRoZW4gd2UnbGwgc3RpbGwgaGF2
ZQotICAgICAgICAgICAgLy8gdGhlIHByb2JsZW0gdGhhdCBzb21ldGhpbmcgb2YgdGhlIGZvcm0g
VFsxXVsyXVszXS4uLiBjYW4gZWl0aGVyIGJlIGEgdHlwZSBvciBhCi0gICAgICAgICAgICAvLyBj
b25zdGV4cHIsIGFuZCB3ZSBjYW4gZmlndXJlIG91dCBpbiB0aGUgY2hlY2tlciB3aGljaCBpdCBp
cy4KLSAgICAgICAgICAgIGxldCB0eXBlUmVmID0gYmFja3RyYWNraW5nU2NvcGUoKCkgPT4gewot
ICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwot
ICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgbGV0IG1heWJl
RXJyb3IgPSBhc3NlcnROZXh0KCIsIiwgIj4iLCAiPj4iKTsKLSAgICAgICAgICAgICAgICBpZiAo
bWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUeXBlUmVmKHJl
c3VsdCwgcmVzdWx0LnRleHQpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAodHlw
ZVJlZikKLSAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0eXBlUmVmKTsKLSAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIGxldCBjb25zdGV4cHIgPSBiYWNrdHJhY2tpbmdTY29w
ZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBwYXJzZUNvbnN0ZXhw
cigpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgV1N5bnRheEVy
cm9yKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAg
ICAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBhc3NlcnROZXh0KCIsIiwgIj4iLCAiPj4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3Ip
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICBpZiAoY29uc3RleHByKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjb25z
dGV4cHIpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBsZXQg
dHlwZSA9IHBhcnNlVHlwZSgpOwotICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSBpbnN0YW5j
ZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlOwot
ICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0eXBlKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBtYXliZUVycm9yID0gY29uc3Vt
ZUVuZE9mVHlwZUFyZ3MoKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3lu
dGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVR5cGUoKQotICAgIHsKLSAgICAg
ICAgbGV0IHRva2VuOwotICAgICAgICBsZXQgYWRkcmVzc1NwYWNlOwotICAgICAgICBsZXQgYWRk
cmVzc1NwYWNlQ29uc3VtZWQgPSBmYWxzZTsKLSAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3Vt
ZSguLi5hZGRyZXNzU3BhY2VzKSkKLSAgICAgICAgICAgIGFkZHJlc3NTcGFjZSA9IHRva2VuLnRl
eHQ7Ci0KLSAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAg
ICAgICBpZiAobmFtZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVy
biBuYW1lOwotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygp
OwotICAgICAgICBpZiAodHlwZUFyZ3VtZW50cyBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiB0eXBlQXJndW1lbnRzOwotICAgICAgICBsZXQgdHlwZSA9IG5ldyBU
eXBlUmVmKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cyk7Ci0KLSAgICAgICAgZnVuY3Rp
b24gZ2V0QWRkcmVzc1NwYWNlKCkKLSAgICAgICAgewotICAgICAgICAgICAgYWRkcmVzc1NwYWNl
Q29uc3VtZWQgPSB0cnVlOwotICAgICAgICAgICAgaWYgKGFkZHJlc3NTcGFjZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gYWRkcmVzc1NwYWNlOwotICAgICAgICAgICAgbGV0IGNvbnN1bWVkQWRk
cmVzc1NwYWNlID0gY29uc3VtZSguLi5hZGRyZXNzU3BhY2VzKTsKLSAgICAgICAgICAgIGlmIChj
b25zdW1lZEFkZHJlc3NTcGFjZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gY29uc3VtZWRBZGRyZXNzU3BhY2U7Ci0gICAgICAgICAgICByZXR1cm4gY29u
c3VtZWRBZGRyZXNzU3BhY2UudGV4dDsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IHR5cGVD
b25zdHJ1Y3RvclN0YWNrID0gWyBdOwotCi0gICAgICAgIGZvciAobGV0IHRva2VuOyB0b2tlbiA9
IHRyeUNvbnN1bWUoIioiLCAiWyIpOykgewotICAgICAgICAgICAgaWYgKHRva2VuLnRleHQgPT0g
IioiKSB7Ci0gICAgICAgICAgICAgICAgLy8gTGlrZXdpc2UsIHRoZSBhZGRyZXNzIHNwYWNlIG11
c3QgYmUgcGFyc2VkIGJlZm9yZSBwYXJzaW5nIGNvbnRpbnVlcy4KLSAgICAgICAgICAgICAgICBj
b25zdCBhZGRyZXNzU3BhY2UgPSBnZXRBZGRyZXNzU3BhY2UoKTsKLSAgICAgICAgICAgICAgICBp
ZiAoYWRkcmVzc1NwYWNlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYWRkcmVzc1NwYWNlOwotICAgICAgICAgICAgICAgIHR5cGVDb25zdHJ1Y3Rv
clN0YWNrLnVuc2hpZnQodHlwZSA9PiBuZXcgUHRyVHlwZSh0b2tlbiwgYWRkcmVzc1NwYWNlLCB0
eXBlKSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGlmICh0cnlDb25zdW1lKCJdIikpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBhZGRy
ZXNzU3BhY2UgPSBnZXRBZGRyZXNzU3BhY2UoKTsKLSAgICAgICAgICAgICAgICBpZiAoYWRkcmVz
c1NwYWNlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYWRkcmVzc1NwYWNlOwotICAgICAgICAgICAgICAgIHR5cGVDb25zdHJ1Y3RvclN0YWNrLnVu
c2hpZnQodHlwZSA9PiBuZXcgQXJyYXlSZWZUeXBlKHRva2VuLCBhZGRyZXNzU3BhY2UsIHR5cGUp
KTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgY29uc3QgbGVuZ3RoRXhwciA9IHBhcnNlQ29uc3RleHByKCk7Ci0gICAgICAgICAgICBpZiAo
bGVuZ3RoRXhwciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1
cm4gbGVuZ3RoRXhwcjsKLSAgICAgICAgICAgIHR5cGVDb25zdHJ1Y3RvclN0YWNrLnVuc2hpZnQo
dHlwZSA9PiBuZXcgQXJyYXlUeXBlKHRva2VuLCB0eXBlLCBsZW5ndGhFeHByKSk7Ci0gICAgICAg
ICAgICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIl0iKTsKLSAgICAgICAgICAgIGlmIChtYXli
ZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBt
YXliZUVycm9yOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgY29uc3RydWN0b3Igb2Yg
dHlwZUNvbnN0cnVjdG9yU3RhY2spCi0gICAgICAgICAgICB0eXBlID0gY29uc3RydWN0b3IodHlw
ZSk7Ci0KLSAgICAgICAgaWYgKGFkZHJlc3NTcGFjZSAmJiAhYWRkcmVzc1NwYWNlQ29uc3VtZWQp
Ci0gICAgICAgICAgICByZXR1cm4gZmFpbCgiQWRkcmVzcyBzcGFjZSBzcGVjaWZpZWQgZm9yIHR5
cGUgdGhhdCBkb2VzIG5vdCBuZWVkIGFkZHJlc3Mgc3BhY2UiKTsKLQotICAgICAgICByZXR1cm4g
dHlwZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVR5cGVEZWYoKQotICAgIHsKLSAgICAg
ICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInR5cGVkZWYiKTsKLSAgICAgICAgaWYgKG9yaWdpbiBp
bnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBvcmlnaW47Ci0gICAg
ICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAg
aWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1
cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbGV0IG5hbWUgPSBtYXliZUVycm9yLnRleHQ7Ci0gICAg
ICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCI9Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGlu
c3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0g
ICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIHR5cGU7Ci0gICAgICAgIG1heWJl
RXJyb3IgPSBjb25zdW1lKCI7Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJl
dHVybiBuZXcgVHlwZURlZihvcmlnaW4sIG5hbWUsIHR5cGUpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGdlbmVyaWNQYXJzZUxlZnQodGV4dHMsIG5leHRQYXJzZXIsIGNvbnN0cnVjdG9yKQotICAg
IHsKLSAgICAgICAgbGV0IGxlZnQgPSBuZXh0UGFyc2VyKCk7Ci0gICAgICAgIGlmIChsZWZ0IGlu
c3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGxlZnQ7Ci0gICAgICAg
IGxldCB0b2tlbjsKLSAgICAgICAgd2hpbGUgKHRva2VuID0gdHJ5Q29uc3VtZSguLi50ZXh0cykp
Ci0gICAgICAgICAgICBsZWZ0ID0gY29uc3RydWN0b3IodG9rZW4sIGxlZnQsIG5leHRQYXJzZXIo
KSk7Ci0gICAgICAgIHJldHVybiBsZWZ0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlTGVm
dE9wZXJhdG9yQ2FsbCh0ZXh0cywgbmV4dFBhcnNlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBn
ZW5lcmljUGFyc2VMZWZ0KAotICAgICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCi0gICAgICAg
ICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PgotICAgICAgICAgICAgICAgIG5ldyBDYWxsRXhw
cmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtsZWZ0LCByaWdodF0pKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZUNhbGxFeHByZXNzaW9uKCkKLSAgICB7Ci0gICAg
ICAgIGxldCBwYXJzZUFyZ3VtZW50cyA9IGZ1bmN0aW9uKG9yaWdpbiwgY2FsbE5hbWUpIHsKLSAg
ICAgICAgICAgIGxldCBhcmd1bWVudExpc3QgPSBbXTsKLSAgICAgICAgICAgIHdoaWxlICghdGVz
dCgiKSIpKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGFyZ3VtZW50ID0gcGFyc2VQb3NzaWJsZUFz
c2lnbm1lbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBXU3lu
dGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcmd1bWVudDsKLSAgICAgICAg
ICAgICAgICBhcmd1bWVudExpc3QucHVzaChhcmd1bWVudCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCF0cnlDb25zdW1lKCIsIikpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCIpIik7Ci0gICAgICAg
ICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJl
c3Npb24ob3JpZ2luLCBjYWxsTmFtZSwgYXJndW1lbnRMaXN0KTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGxldCBuYW1lID0gYmFja3RyYWNraW5nU2NvcGUoKCkgPT4gewotICAgICAgICAgICAgbGV0
IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgaWYgKG5hbWUg
aW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7Ci0g
ICAgICAgICAgICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIigiKTsKLSAgICAgICAgICAgIGlm
IChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJl
dHVybiBtYXliZUVycm9yOwotICAgICAgICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgICAgIH0pOwot
Ci0gICAgICAgIGlmIChuYW1lKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gcGFyc2VBcmd1
bWVudHMobmFtZSwgbmFtZS50ZXh0KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsZXQgcmV0dXJuVHlwZSA9IHBhcnNlVHlwZSgpOwot
ICAgICAgICAgICAgaWYgKHJldHVyblR5cGUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJldHVyblR5cGU7Ci0gICAgICAgICAgICBsZXQgbWF5YmVFcnJv
ciA9IGNvbnN1bWUoIigiKTsKLSAgICAgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IHBhcnNlQXJndW1lbnRzKHJldHVyblR5cGUub3JpZ2luLCAib3Bl
cmF0b3IgY2FzdCIpOwotICAgICAgICAgICAgcmVzdWx0LnNldENhc3REYXRhKHJldHVyblR5cGUp
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGlzQ2FsbEV4cHJlc3Npb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRlc3RTY29w
ZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lS2luZCgi
aWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAg
ICAgICAgICAgICAgICBtYXliZUVycm9yID0gY29uc3VtZSgiKCIpOwotICAgICAgICAgICAgICAg
IGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgICAgIH0pIHx8IHRlc3RTY29wZSgoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUoKTsKLSAgICAgICAgICAg
ICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHR5cGU7Ci0gICAgICAgICAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1l
KCIoIik7Ci0gICAgICAgICAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4
RXJyb3IpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICAg
ICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZW1pdEluY3JlbWVudCh0b2tlbiwgb2xkLCBl
eHRyYUFyZykKLSAgICB7Ci0gICAgICAgIGxldCBhcmdzID0gW29sZF07Ci0gICAgICAgIGlmIChl
eHRyYUFyZykKLSAgICAgICAgICAgIGFyZ3MucHVzaChleHRyYUFyZyk7Ci0KLSAgICAgICAgbGV0
IG5hbWUgPSAib3BlcmF0b3IiICsgdG9rZW4udGV4dDsKLSAgICAgICAgaWYgKC89JC8udGVzdChu
YW1lKSkKLSAgICAgICAgICAgIG5hbWUgPSBSZWdFeHAubGVmdENvbnRleHQ7Ci0KLSAgICAgICAg
aWYgKG5hbWUgPT0gIm9wZXJhdG9yIikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52
YWxpZCBuYW1lOiAiICsgbmFtZSk7Ci0KLSAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgbmFtZSwgYXJncyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmluaXNoUGFyc2lu
Z1Bvc3RJbmNyZW1lbnQodG9rZW4sIGxlZnQpCi0gICAgewotICAgICAgICBsZXQgcmVhZE1vZGlm
eVdyaXRlID0gbmV3IFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24odG9rZW4sIGxlZnQpOwotICAg
ICAgICByZWFkTW9kaWZ5V3JpdGUubmV3VmFsdWVFeHAgPSBlbWl0SW5jcmVtZW50KHRva2VuLCBy
ZWFkTW9kaWZ5V3JpdGUub2xkVmFsdWVSZWYoKSk7Ci0gICAgICAgIHJlYWRNb2RpZnlXcml0ZS5y
ZXN1bHRFeHAgPSByZWFkTW9kaWZ5V3JpdGUub2xkVmFsdWVSZWYoKTsKLSAgICAgICAgcmV0dXJu
IHJlYWRNb2RpZnlXcml0ZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVN1ZmZpeE9wZXJh
dG9yKGxlZnQsIGFjY2VwdGFibGVPcGVyYXRvcnMpCi0gICAgewotICAgICAgICBsZXQgdG9rZW47
Ci0gICAgICAgIHdoaWxlICh0b2tlbiA9IHRyeUNvbnN1bWUoLi4uYWNjZXB0YWJsZU9wZXJhdG9y
cykpIHsKLSAgICAgICAgICAgIHN3aXRjaCAodG9rZW4udGV4dCkgewotICAgICAgICAgICAgY2Fz
ZSAiKysiOgotICAgICAgICAgICAgY2FzZSAiLS0iOgotICAgICAgICAgICAgICAgIHJldHVybiBm
aW5pc2hQYXJzaW5nUG9zdEluY3JlbWVudCh0b2tlbiwgbGVmdCk7Ci0gICAgICAgICAgICBjYXNl
ICIuIjoKLSAgICAgICAgICAgIGNhc2UgIi0+IjoKLSAgICAgICAgICAgICAgICBpZiAodG9rZW4u
dGV4dCA9PSAiLT4iKQotICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbmV3IERlcmVmZXJlbmNl
RXhwcmVzc2lvbih0b2tlbiwgbGVmdCk7Ci0gICAgICAgICAgICAgICAgbGV0IG1heWJlRXJyb3Ig
PSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIGlmIChtYXliZUVy
cm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bWF5YmVFcnJvcjsKLSAgICAgICAgICAgICAgICBsZWZ0ID0gbmV3IERvdEV4cHJlc3Npb24odG9r
ZW4sIGxlZnQsIG1heWJlRXJyb3IudGV4dCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlICJbIjogewotICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHBhcnNlRXhw
cmVzc2lvbigpOwotICAgICAgICAgICAgICAgIGlmIChpbmRleCBpbnN0YW5jZW9mIFdTeW50YXhF
cnJvcikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICAgICAgICAg
IGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiXSIpOwotICAgICAgICAgICAgICAgIGlmIChtYXli
ZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgICAgICAgICBsZWZ0ID0gbmV3IEluZGV4RXhwcmVzc2lv
bih0b2tlbiwgbGVmdCwgaW5kZXgpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCB0b2tlbjogIiArIHRva2VuKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gbGVmdDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVBvc3NpYmxlU3Vm
Zml4KCkKLSAgICB7Ci0gICAgICAgIGxldCBhY2NlcHRhYmxlT3BlcmF0b3JzID0gWyIrKyIsICIt
LSIsICIuIiwgIi0+IiwgIlsiXTsKLSAgICAgICAgbGV0IGxpbWl0ZWRPcGVyYXRvcnMgPSBbIi4i
LCAiLT4iLCAiWyJdOwotICAgICAgICBsZXQgbGVmdDsKLSAgICAgICAgaWYgKGlzQ2FsbEV4cHJl
c3Npb24oKSkgewotICAgICAgICAgICAgbGVmdCA9IHBhcnNlQ2FsbEV4cHJlc3Npb24oKTsKLSAg
ICAgICAgICAgIGlmIChsZWZ0IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAg
ICAgIHJldHVybiBsZWZ0OwotICAgICAgICAgICAgYWNjZXB0YWJsZU9wZXJhdG9ycyA9IGxpbWl0
ZWRPcGVyYXRvcnM7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsZWZ0ID0gcGFyc2VU
ZXJtKCk7Ci0gICAgICAgICAgICBpZiAobGVmdCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbGVmdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBw
YXJzZVN1ZmZpeE9wZXJhdG9yKGxlZnQsIGFjY2VwdGFibGVPcGVyYXRvcnMpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGZpbmlzaFBhcnNpbmdQcmVJbmNyZW1lbnQodG9rZW4sIGxlZnQsIGV4dHJh
QXJnKQotICAgIHsKLSAgICAgICAgbGV0IHJlYWRNb2RpZnlXcml0ZSA9IG5ldyBSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uKHRva2VuLCBsZWZ0KTsKLSAgICAgICAgcmVhZE1vZGlmeVdyaXRlLm5l
d1ZhbHVlRXhwID0gZW1pdEluY3JlbWVudCh0b2tlbiwgcmVhZE1vZGlmeVdyaXRlLm9sZFZhbHVl
UmVmKCksIGV4dHJhQXJnKTsKLSAgICAgICAgcmVhZE1vZGlmeVdyaXRlLnJlc3VsdEV4cCA9IHJl
YWRNb2RpZnlXcml0ZS5uZXdWYWx1ZVJlZigpOwotICAgICAgICByZXR1cm4gcmVhZE1vZGlmeVdy
aXRlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlUHJlSW5jcmVtZW50KCkKLSAgICB7Ci0g
ICAgICAgIGxldCB0b2tlbiA9IGNvbnN1bWUoIisrIiwgIi0tIik7Ci0gICAgICAgIGlmICh0b2tl
biBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiB0b2tlbjsKLSAg
ICAgICAgbGV0IGxlZnQgPSBwYXJzZVBvc3NpYmxlUHJlZml4KCk7Ci0gICAgICAgIGlmIChsZWZ0
IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGxlZnQ7Ci0gICAg
ICAgIHJldHVybiBmaW5pc2hQYXJzaW5nUHJlSW5jcmVtZW50KHRva2VuLCBsZWZ0KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVBvc3NpYmxlUHJlZml4KCkKLSAgICB7Ci0gICAgICAgIGxl
dCB0b2tlbjsKLSAgICAgICAgaWYgKHRlc3QoIisrIiwgIi0tIikpCi0gICAgICAgICAgICByZXR1
cm4gcGFyc2VQcmVJbmNyZW1lbnQoKTsKLSAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
KyIsICItIiwgIn4iKSkgewotICAgICAgICAgICAgbGV0IHBvc3NpYmxlUHJlZml4ID0gcGFyc2VQ
b3NzaWJsZVByZWZpeCgpOwotICAgICAgICAgICAgaWYgKHBvc3NpYmxlUHJlZml4IGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBXU3ludGF4RXJyb3I7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsg
dG9rZW4udGV4dCwgW3Bvc3NpYmxlUHJlZml4XSk7Ci0gICAgICAgIH0gaWYgKHRva2VuID0gdHJ5
Q29uc3VtZSgiKiIpKSB7Ci0gICAgICAgICAgICBsZXQgcG9zc2libGVQcmVmaXggPSBwYXJzZVBv
c3NpYmxlUHJlZml4KCk7Ci0gICAgICAgICAgICBpZiAocG9zc2libGVQcmVmaXggaW5zdGFuY2Vv
ZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdTeW50YXhFcnJvcjsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgRGVyZWZlcmVuY2VFeHByZXNzaW9uKHRva2VuLCBwb3NzaWJs
ZVByZWZpeCk7Ci0gICAgICAgIH0gaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiJiIpKSB7Ci0gICAg
ICAgICAgICBsZXQgcG9zc2libGVQcmVmaXggPSBwYXJzZVBvc3NpYmxlUHJlZml4KCk7Ci0gICAg
ICAgICAgICBpZiAocG9zc2libGVQcmVmaXggaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIFdTeW50YXhFcnJvcjsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
TWFrZVB0ckV4cHJlc3Npb24odG9rZW4sIHBvc3NpYmxlUHJlZml4KTsKLSAgICAgICAgfSBpZiAo
dG9rZW4gPSB0cnlDb25zdW1lKCJAIikpIHsKLSAgICAgICAgICAgIGxldCBwb3NzaWJsZVByZWZp
eCA9IHBhcnNlUG9zc2libGVQcmVmaXgoKTsKLSAgICAgICAgICAgIGlmIChwb3NzaWJsZVByZWZp
eCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gV1N5bnRh
eEVycm9yOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBNYWtlQXJyYXlSZWZFeHByZXNzaW9uKHRv
a2VuLCBwb3NzaWJsZVByZWZpeCk7Ci0gICAgICAgIH0gaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
ISIpKSB7Ci0gICAgICAgICAgICBsZXQgcmVtYWluZGVyID0gcGFyc2VQb3NzaWJsZVByZWZpeCgp
OwotICAgICAgICAgICAgaWYgKHJlbWFpbmRlciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVtYWluZGVyOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBM
b2dpY2FsTm90KHRva2VuLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmVtYWluZGVyLm9yaWdpbiwgImJv
b2wiLCBbcmVtYWluZGVyXSkpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwYXJzZVBvc3Np
YmxlU3VmZml4KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VQb3NzaWJsZVByb2R1Y3Qo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHBhcnNlTGVmdE9wZXJhdG9yQ2FsbChbIioiLCAiLyIs
ICIlIl0sIHBhcnNlUG9zc2libGVQcmVmaXgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNl
UG9zc2libGVTdW0oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHBhcnNlTGVmdE9wZXJhdG9yQ2Fs
bChbIisiLCAiLSJdLCBwYXJzZVBvc3NpYmxlUHJvZHVjdCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gcGFyc2VQb3NzaWJsZVNoaWZ0KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBwYXJzZUxlZnRP
cGVyYXRvckNhbGwoWyI8PCIsICI+PiJdLCBwYXJzZVBvc3NpYmxlU3VtKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBwYXJzZVBvc3NpYmxlUmVsYXRpb25hbEluZXF1YWxpdHkoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHBhcnNlTGVmdE9wZXJhdG9yQ2FsbChbIjwiLCAiPiIsICI8PSIsICI+PSJd
LCBwYXJzZVBvc3NpYmxlU2hpZnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2li
bGVSZWxhdGlvbmFsRXF1YWxpdHkoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyaWNQYXJz
ZUxlZnQoCi0gICAgICAgICAgICBbIj09IiwgIiE9Il0sIHBhcnNlUG9zc2libGVSZWxhdGlvbmFs
SW5lcXVhbGl0eSwKLSAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IHsKLSAgICAg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0
b3I9PSIsIFtsZWZ0LCByaWdodF0pOwotICAgICAgICAgICAgICAgIGlmICh0b2tlbi50ZXh0ID09
ICIhPSIpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBMb2dpY2FsTm90KHRva2Vu
LCByZXN1bHQpOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVBvc3NpYmxlQml0d2lzZUFuZCgpCi0gICAg
ewotICAgICAgICByZXR1cm4gcGFyc2VMZWZ0T3BlcmF0b3JDYWxsKFsiJiJdLCBwYXJzZVBvc3Np
YmxlUmVsYXRpb25hbEVxdWFsaXR5KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVBvc3Np
YmxlQml0d2lzZVhvcigpCi0gICAgewotICAgICAgICByZXR1cm4gcGFyc2VMZWZ0T3BlcmF0b3JD
YWxsKFsiXiJdLCBwYXJzZVBvc3NpYmxlQml0d2lzZUFuZCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gcGFyc2VQb3NzaWJsZUJpdHdpc2VPcigpCi0gICAgewotICAgICAgICByZXR1cm4gcGFyc2VM
ZWZ0T3BlcmF0b3JDYWxsKFsifCJdLCBwYXJzZVBvc3NpYmxlQml0d2lzZVhvcik7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gcGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24odGV4dHMsIG5leHRQYXJz
ZXIpCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKLSAgICAgICAgICAg
IHRleHRzLCBuZXh0UGFyc2VyLAotICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4g
bmV3IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0b2tlbi50ZXh0LCBuZXcgQ2FsbEV4cHJlc3Np
b24obGVmdC5vcmlnaW4sICJib29sIiwgW2xlZnRdKSwgbmV3IENhbGxFeHByZXNzaW9uKHJpZ2h0
Lm9yaWdpbiwgImJvb2wiLCBbcmlnaHRdKSkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNl
UG9zc2libGVMb2dpY2FsQW5kKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBwYXJzZUxlZnRMb2dp
Y2FsRXhwcmVzc2lvbihbIiYmIl0sIHBhcnNlUG9zc2libGVCaXR3aXNlT3IpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVMb2dpY2FsT3IoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHBhcnNlTGVmdExvZ2ljYWxFeHByZXNzaW9uKFsifHwiXSwgcGFyc2VQb3NzaWJsZUxvZ2lj
YWxBbmQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVUZXJuYXJ5Q29uZGl0
aW9uYWwoKQotICAgIHsKLSAgICAgICAgbGV0IHByZWRpY2F0ZSA9IHBhcnNlUG9zc2libGVMb2dp
Y2FsT3IoKTsKLSAgICAgICAgaWYgKHByZWRpY2F0ZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikK
LSAgICAgICAgICAgIHJldHVybiBwcmVkaWNhdGU7Ci0gICAgICAgIGxldCBvcGVyYXRvciA9IHRy
eUNvbnN1bWUoIj8iKTsKLSAgICAgICAgaWYgKCFvcGVyYXRvcikKLSAgICAgICAgICAgIHJldHVy
biBwcmVkaWNhdGU7Ci0gICAgICAgIGxldCBib2R5RXhwcmVzc2lvbiA9IHBhcnNlUG9zc2libGVB
c3NpZ25tZW50KCk7Ci0gICAgICAgIGlmIChib2R5RXhwcmVzc2lvbiBpbnN0YW5jZW9mIFdTeW50
YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBib2R5RXhwcmVzc2lvbjsKLSAgICAgICAgbGV0
IG1heWJlRXJyb3IgPSBjb25zdW1lKCI6Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3Rh
bmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAg
ICAgIGxldCBlbHNlRXhwcmVzc2lvbiA9IHBhcnNlUG9zc2libGVBc3NpZ25tZW50KCk7Ci0gICAg
ICAgIGlmIChlbHNlRXhwcmVzc2lvbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAg
ICAgIHJldHVybiBlbHNlRXhwcmVzc2lvbjsKLSAgICAgICAgcmV0dXJuIG5ldyBUZXJuYXJ5RXhw
cmVzc2lvbihvcGVyYXRvciwgcHJlZGljYXRlLCBib2R5RXhwcmVzc2lvbiwgZWxzZUV4cHJlc3Np
b24pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVBc3NpZ25tZW50KG1vZGUp
Ci0gICAgewotICAgICAgICBsZXQgbGhzID0gcGFyc2VQb3NzaWJsZVRlcm5hcnlDb25kaXRpb25h
bCgpOwotICAgICAgICBpZiAobGhzIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAg
ICAgcmV0dXJuIGxoczsKLSAgICAgICAgbGV0IG9wZXJhdG9yID0gdHJ5Q29uc3VtZSgiPSIsICIr
PSIsICItPSIsICIqPSIsICIvPSIsICIlPSIsICJePSIsICJ8PSIsICImPSIpOwotICAgICAgICBp
ZiAoIW9wZXJhdG9yKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAicmVxdWlyZWQiKQotICAg
ICAgICAgICAgICAgIHJldHVybiBmYWlsKCJFeHBlY3RlZCBhc3NpZ25tZW50OiAiICsgbGV4ZXIu
X3RleHQuc3Vic3RyaW5nKGxleGVyLl9pbmRleCkpOwotICAgICAgICAgICAgcmV0dXJuIGxoczsK
LSAgICAgICAgfQotICAgICAgICBpZiAob3BlcmF0b3IudGV4dCA9PSAiPSIpIHsKLSAgICAgICAg
ICAgIGxldCBpbm5lckFzc2lnbm1lbnQgPSBwYXJzZVBvc3NpYmxlQXNzaWdubWVudCgpOwotICAg
ICAgICAgICAgaWYgKGlubmVyQXNzaWdubWVudCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gaW5uZXJBc3NpZ25tZW50OwotICAgICAgICAgICAgcmV0dXJu
IG5ldyBBc3NpZ25tZW50KG9wZXJhdG9yLCBsaHMsIGlubmVyQXNzaWdubWVudCk7Ci0gICAgICAg
IH0KLSAgICAgICAgbGV0IGlubmVyQXNzaWdubWVudCA9IHBhcnNlUG9zc2libGVBc3NpZ25tZW50
KCk7Ci0gICAgICAgIGlmIChpbm5lckFzc2lnbm1lbnQgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3Ip
Ci0gICAgICAgICAgICByZXR1cm4gaW5uZXJBc3NpZ25tZW50OwotICAgICAgICByZXR1cm4gZmlu
aXNoUGFyc2luZ1ByZUluY3JlbWVudChvcGVyYXRvciwgbGhzLCBpbm5lckFzc2lnbm1lbnQpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlQXNzaWdubWVudCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gcGFyc2VQb3NzaWJsZUFzc2lnbm1lbnQoInJlcXVpcmVkIik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcGFyc2VQb3N0SW5jcmVtZW50KCkKLSAgICB7Ci0gICAgICAgIGxldCB0ZXJtID0g
cGFyc2VUZXJtKCk7Ci0gICAgICAgIGlmICh0ZXJtIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQot
ICAgICAgICAgICAgcmV0dXJuIHRlcm07Ci0gICAgICAgIGxldCBsZWZ0ID0gcGFyc2VTdWZmaXhP
cGVyYXRvcih0ZXJtLCAiLiIsICItPiIsICJbIik7Ci0gICAgICAgIGlmIChsZWZ0IGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGxlZnQ7Ci0gICAgICAgIGxldCB0
b2tlbiA9IGNvbnN1bWUoIisrIiwgIi0tIik7Ci0gICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9m
IFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiB0b2tlbjsKLSAgICAgICAgcmV0dXJu
IGZpbmlzaFBhcnNpbmdQb3N0SW5jcmVtZW50KHRva2VuLCBsZWZ0KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBwYXJzZUVmZmVjdGZ1bEV4cHJlc3Npb24oKQotICAgIHsKLSAgICAgICAgaWYgKGlz
Q2FsbEV4cHJlc3Npb24oKSkKLSAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxFeHByZXNzaW9u
KCk7Ci0gICAgICAgIGxldCBwcmVJbmNyZW1lbnQgPSBiYWNrdHJhY2tpbmdTY29wZShwYXJzZVBy
ZUluY3JlbWVudCk7Ci0gICAgICAgIGlmIChwcmVJbmNyZW1lbnQpCi0gICAgICAgICAgICByZXR1
cm4gcHJlSW5jcmVtZW50OwotICAgICAgICBsZXQgcG9zdEluY3JlbWVudCA9IGJhY2t0cmFja2lu
Z1Njb3BlKHBhcnNlUG9zdEluY3JlbWVudCk7Ci0gICAgICAgIGlmIChwb3N0SW5jcmVtZW50KQot
ICAgICAgICAgICAgcmV0dXJuIHBvc3RJbmNyZW1lbnQ7Ci0gICAgICAgIHJldHVybiBwYXJzZUFz
c2lnbm1lbnQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZW5lcmljUGFyc2VDb21tYUV4cHJl
c3Npb24oZmluYWxFeHByZXNzaW9uUGFyc2VyKQotICAgIHsKLSAgICAgICAgbGV0IGxpc3QgPSBb
XTsKLSAgICAgICAgbGV0IG9yaWdpbiA9IGxleGVyLnBlZWsoKTsKLSAgICAgICAgaWYgKCFvcmln
aW4pCi0gICAgICAgICAgICByZXR1cm4gZmFpbCgiVW5leHBlY3RlZCBlbmQgb2YgZmlsZSIpOwot
ICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBsZXQgZWZmZWN0ZnVsRXhwcmVzc2lvbiA9
IGJhY2t0cmFja2luZ1Njb3BlKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgZWZmZWN0ZnVs
RXhwcmVzc2lvbiA9IHBhcnNlRWZmZWN0ZnVsRXhwcmVzc2lvbigpOwotICAgICAgICAgICAgICAg
IGlmIChlZmZlY3RmdWxFeHByZXNzaW9uIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZWZmZWN0ZnVsRXhwcmVzc2lvbjsKLSAgICAgICAgICAgICAg
ICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIiwiKTsKLSAgICAgICAgICAgICAgICBpZiAobWF5
YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVmZmVjdGZ1bEV4cHJlc3Np
b247Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmICghZWZmZWN0ZnVsRXhwcmVzc2lv
bikgewotICAgICAgICAgICAgICAgIGxldCBmaW5hbCA9IGZpbmFsRXhwcmVzc2lvblBhcnNlcigp
OwotICAgICAgICAgICAgICAgIGxpc3QucHVzaChmaW5hbCk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBsaXN0LnB1c2goZWZmZWN0ZnVsRXhwcmVz
c2lvbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFsaXN0Lmxlbmd0aCkKLSAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiTGVuZ3RoIHNob3VsZCBuZXZlciBiZSB6ZXJvIik7Ci0gICAgICAg
IGlmIChsaXN0Lmxlbmd0aCA9PSAxKQotICAgICAgICAgICAgcmV0dXJuIGxpc3RbMF07Ci0gICAg
ICAgIHJldHVybiBuZXcgQ29tbWFFeHByZXNzaW9uKG9yaWdpbiwgbGlzdCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcGFyc2VDb21tYUV4cHJlc3Npb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGdlbmVyaWNQYXJzZUNvbW1hRXhwcmVzc2lvbihwYXJzZVBvc3NpYmxlQXNzaWdubWVudCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VFeHByZXNzaW9uKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBwYXJzZUNvbW1hRXhwcmVzc2lvbigpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNl
RWZmZWN0ZnVsU3RhdGVtZW50KCkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBnZW5lcmlj
UGFyc2VDb21tYUV4cHJlc3Npb24ocGFyc2VFZmZlY3RmdWxFeHByZXNzaW9uKTsKLSAgICAgICAg
aWYgKHJlc3VsdCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiOyIpOwotICAgICAgICBp
ZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVy
biBtYXliZUVycm9yOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHBhcnNlUmV0dXJuKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJy
ZXR1cm4iKTsKLSAgICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiBvcmlnaW47Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCI7IikpCi0g
ICAgICAgICAgICByZXR1cm4gbmV3IFJldHVybihvcmlnaW4sIG51bGwpOwotICAgICAgICBsZXQg
ZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbigpOwotICAgICAgICBpZiAoZXhwcmVzc2lvbiBp
bnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBleHByZXNzaW9uOwot
ICAgICAgICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIjsiKTsKLSAgICAgICAgaWYgKG1heWJl
RXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVF
cnJvcjsKLSAgICAgICAgcmV0dXJuIG5ldyBSZXR1cm4ob3JpZ2luLCBleHByZXNzaW9uKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZUJyZWFrKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmln
aW4gPSBjb25zdW1lKCJicmVhayIpOwotICAgICAgICBpZiAob3JpZ2luIGluc3RhbmNlb2YgV1N5
bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG9yaWdpbjsKLSAgICAgICAgbGV0IG1heWJl
RXJyb3IgPSBjb25zdW1lKCI7Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJl
dHVybiBuZXcgQnJlYWsob3JpZ2luKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZUNvbnRp
bnVlKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJjb250aW51ZSIpOwot
ICAgICAgICBpZiAob3JpZ2luIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAg
cmV0dXJuIG9yaWdpbjsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCI7Iik7Ci0g
ICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAg
ICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJldHVybiBuZXcgQ29udGludWUob3JpZ2lu
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZUlmU3RhdGVtZW50KCkKLSAgICB7Ci0gICAg
ICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJpZiIpOwotICAgICAgICBpZiAob3JpZ2luIGluc3Rh
bmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG9yaWdpbjsKLSAgICAgICAg
bGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCIoIik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGlu
c3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0g
ICAgICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwotICAgICAgICBpZiAo
Y29uZGl0aW9uYWwgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4g
Y29uZGl0aW9uYWw7Ci0gICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCIpIik7Ci0gICAgICAg
IGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0
dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIGxldCBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAg
ICAgICAgaWYgKGJvZHkgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1
cm4gYm9keTsKLSAgICAgICAgbGV0IGVsc2VCb2R5OwotICAgICAgICBpZiAodHJ5Q29uc3VtZSgi
ZWxzZSIpKSB7Ci0gICAgICAgICAgICBlbHNlQm9keSA9IHBhcnNlU3RhdGVtZW50KCk7Ci0gICAg
ICAgICAgICBpZiAoZWxzZUJvZHkgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGVsc2VCb2R5OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBuZXcgSWZT
dGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAi
Ym9vbCIsIFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNlQm9keSk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gcGFyc2VXaGlsZSgpCi0gICAgewotICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgi
d2hpbGUiKTsKLSAgICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiBvcmlnaW47Ci0gICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3Vt
ZSgiKCIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikK
LSAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICBsZXQgY29uZGl0aW9uYWwg
PSBwYXJzZUV4cHJlc3Npb24oKTsKLSAgICAgICAgaWYgKGNvbmRpdGlvbmFsIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbmFsOwotICAgICAgICBt
YXliZUVycm9yID0gY29uc3VtZSgiKSIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5j
ZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAg
ICBsZXQgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7Ci0gICAgICAgIGlmIChib2R5IGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGJvZHk7Ci0gICAgICAgIHJldHVy
biBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9y
aWdpbiwgImJvb2wiLCBbY29uZGl0aW9uYWxdKSwgYm9keSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gcGFyc2VGb3IoKQotICAgIHsKLSAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoImZvciIp
OwotICAgICAgICBpZiAob3JpZ2luIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAg
ICAgcmV0dXJuIG9yaWdpbjsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCIoIik7
Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAg
ICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIGxldCBpbml0aWFsaXphdGlvbjsKLSAg
ICAgICAgaWYgKHRyeUNvbnN1bWUoIjsiKSkKLSAgICAgICAgICAgIGluaXRpYWxpemF0aW9uID0g
dW5kZWZpbmVkOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGluaXRpYWxpemF0aW9uID0g
YmFja3RyYWNraW5nU2NvcGUocGFyc2VWYXJpYWJsZURlY2xzKTsKLSAgICAgICAgICAgIGlmICgh
aW5pdGlhbGl6YXRpb24pIHsKLSAgICAgICAgICAgICAgICBpbml0aWFsaXphdGlvbiA9IHBhcnNl
RWZmZWN0ZnVsU3RhdGVtZW50KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGluaXRpYWxpemF0aW9u
IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5p
dGlhbGl6YXRpb247Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbGV0IGNvbmRp
dGlvbiA9IHRyeUNvbnN1bWUoIjsiKTsKLSAgICAgICAgaWYgKGNvbmRpdGlvbikKLSAgICAgICAg
ICAgIGNvbmRpdGlvbiA9IHVuZGVmaW5lZDsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBj
b25kaXRpb24gPSBwYXJzZUV4cHJlc3Npb24oKTsKLSAgICAgICAgICAgIGlmIChjb25kaXRpb24g
aW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmRpdGlv
bjsKLSAgICAgICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCI7Iik7Ci0gICAgICAgICAgICBp
ZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgICAgIGNvbmRpdGlvbiA9IG5ldyBDYWxsRXhwcmVz
c2lvbihjb25kaXRpb24ub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25dKTsKLSAgICAgICAgfQot
ICAgICAgICBsZXQgaW5jcmVtZW50OwotICAgICAgICBpZiAodHJ5Q29uc3VtZSgiKSIpKQotICAg
ICAgICAgICAgaW5jcmVtZW50ID0gdW5kZWZpbmVkOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIGluY3JlbWVudCA9IHBhcnNlRXhwcmVzc2lvbigpOwotICAgICAgICAgICAgaWYgKGluY3Jl
bWVudCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gaW5j
cmVtZW50OwotICAgICAgICAgICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoIikiKTsKLSAgICAgICAg
ICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAg
ICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGxldCBib2R5ID0gcGFy
c2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgaWYgKGJvZHkgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3Ip
Ci0gICAgICAgICAgICByZXR1cm4gYm9keTsKLSAgICAgICAgcmV0dXJuIG5ldyBGb3JMb29wKG9y
aWdpbiwgaW5pdGlhbGl6YXRpb24sIGNvbmRpdGlvbiwgaW5jcmVtZW50LCBib2R5KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBwYXJzZURvKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBj
b25zdW1lKCJkbyIpOwotICAgICAgICBpZiAob3JpZ2luIGluc3RhbmNlb2YgV1N5bnRheEVycm9y
KQotICAgICAgICAgICAgcmV0dXJuIG9yaWdpbjsKLSAgICAgICAgbGV0IGJvZHkgPSBwYXJzZVN0
YXRlbWVudCgpOwotICAgICAgICBpZiAoYm9keSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiBib2R5OwotICAgICAgICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUo
IndoaWxlIik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9y
KQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIG1heWJlRXJyb3IgPSBj
b25zdW1lKCIoIik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVy
cm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIGxldCBjb25kaXRp
b25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwotICAgICAgICBpZiAoY29uZGl0aW9uYWwgaW5zdGFu
Y2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uYWw7Ci0gICAg
ICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCIpIik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGlu
c3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0g
ICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcgQ2FsbEV4cHJl
c3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0pKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlRGVjbHMoKQotICAgIHsKLSAgICAgICAgbGV0
IHR5cGUgPSBwYXJzZVR5cGUoKTsKLSAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBXU3ludGF4
RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gdHlwZTsKLSAgICAgICAgbGV0IGxpc3QgPSBbXTsK
LSAgICAgICAgZG8gewotICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRp
ZmllciIpOwotICAgICAgICAgICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgICAgICAgICBsZXQgaW5pdGlhbGl6ZXIg
PSB0cnlDb25zdW1lKCI9IikgPyBwYXJzZUV4cHJlc3Npb24oKSA6IG51bGw7Ci0gICAgICAgICAg
ICBpZiAoaW5pdGlhbGl6ZXIgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGluaXRpYWxpemVyOwotICAgICAgICAgICAgbGlzdC5wdXNoKG5ldyBWYXJpYWJs
ZURlY2wobmFtZSwgbmFtZS50ZXh0LCB0eXBlLCBpbml0aWFsaXplcikpOwotICAgICAgICAgICAg
bGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCIsIiwgIjsiKTsKLSAgICAgICAgICAgIGlmIChtYXli
ZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBt
YXliZUVycm9yOwotICAgICAgICAgICAgaWYgKG1heWJlRXJyb3IudGV4dCAhPSAiLCIpCi0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gd2hpbGUgKHRydWUpOwotICAgICAgICByZXR1
cm4gbmV3IENvbW1hRXhwcmVzc2lvbih0eXBlLm9yaWdpbiwgbGlzdCk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcGFyc2VTd2l0Y2hDYXNlKCkKLSAgICB7Ci0gICAgICAgIGxldCB0b2tlbiA9IGNv
bnN1bWUoImRlZmF1bHQiLCAiY2FzZSIpOwotICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gdG9rZW47Ci0gICAgICAgIGxldCB2YWx1
ZTsKLSAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gImNhc2UiKSB7Ci0gICAgICAgICAgICB2YWx1
ZSA9IHBhcnNlQ29uc3RleHByKCk7Ci0gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICB9Ci0g
ICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiOiIpOwotICAgICAgICBpZiAobWF5YmVF
cnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBtYXliZUVy
cm9yOwotICAgICAgICBsZXQgYm9keSA9IHBhcnNlQmxvY2tCb2R5KCJ9IiwgImRlZmF1bHQiLCAi
Y2FzZSIpOwotICAgICAgICBpZiAoYm9keSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAg
ICAgICAgIHJldHVybiBib2R5OwotICAgICAgICByZXR1cm4gbmV3IFN3aXRjaENhc2UodG9rZW4s
IHZhbHVlLCBib2R5KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVN3aXRjaFN0YXRlbWVu
dCgpCi0gICAgewotICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgic3dpdGNoIik7Ci0gICAg
ICAgIGlmIChvcmlnaW4gaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1
cm4gb3JpZ2luOwotICAgICAgICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIigiKTsKLSAgICAg
ICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICBy
ZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbGV0IHZhbHVlID0gcGFyc2VFeHByZXNzaW9uKCk7
Ci0gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAg
IHJldHVybiB2YWx1ZTsKLSAgICAgICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoIikiKTsKLSAgICAg
ICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICBy
ZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoInsiKTsKLSAg
ICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAg
ICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTd2l0Y2hTdGF0
ZW1lbnQob3JpZ2luLCB2YWx1ZSk7Ci0gICAgICAgIHdoaWxlICghdHJ5Q29uc3VtZSgifSIpKSB7
Ci0gICAgICAgICAgICBsZXQgc3dpdGNoQ2FzZSA9IHBhcnNlU3dpdGNoQ2FzZSgpOwotICAgICAg
ICAgICAgaWYgKHN3aXRjaENhc2UgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHN3aXRjaENhc2U7Ci0gICAgICAgICAgICByZXN1bHQuYWRkKHN3aXRjaENh
c2UpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gcGFyc2VTdGF0ZW1lbnQoKQotICAgIHsKLSAgICAgICAgbGV0IHRva2VuID0gbGV4ZXIu
cGVlaygpOwotICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiOyIpIHsKLSAgICAgICAgICAgIGxl
eGVyLm5leHQoKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAg
IGlmICh0b2tlbi50ZXh0ID09ICJyZXR1cm4iKQotICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmV0
dXJuKCk7Ci0gICAgICAgIGlmICh0b2tlbi50ZXh0ID09ICJicmVhayIpCi0gICAgICAgICAgICBy
ZXR1cm4gcGFyc2VCcmVhaygpOwotICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiY29udGludWUi
KQotICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29udGludWUoKTsKLSAgICAgICAgaWYgKHRva2Vu
LnRleHQgPT0gIndoaWxlIikKLSAgICAgICAgICAgIHJldHVybiBwYXJzZVdoaWxlKCk7Ci0gICAg
ICAgIGlmICh0b2tlbi50ZXh0ID09ICJkbyIpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VEbygp
OwotICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiZm9yIikKLSAgICAgICAgICAgIHJldHVybiBw
YXJzZUZvcigpOwotICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiaWYiKQotICAgICAgICAgICAg
cmV0dXJuIHBhcnNlSWZTdGF0ZW1lbnQoKTsKLSAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gInN3
aXRjaCIpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VTd2l0Y2hTdGF0ZW1lbnQoKTsKLSAgICAg
ICAgaWYgKHRva2VuLnRleHQgPT0gInRyYXAiKSB7Ci0gICAgICAgICAgICBsZXQgb3JpZ2luID0g
Y29uc3VtZSgidHJhcCIpOwotICAgICAgICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50
YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luOwotICAgICAgICAgICAgY29u
c3VtZSgiOyIpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBUcmFwU3RhdGVtZW50KG9yaWdpbik7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gInsiKQotICAgICAgICAgICAg
cmV0dXJuIHBhcnNlQmxvY2soKTsKLSAgICAgICAgbGV0IHZhcmlhYmxlRGVjbCA9IGJhY2t0cmFj
a2luZ1Njb3BlKHBhcnNlVmFyaWFibGVEZWNscyk7Ci0gICAgICAgIGlmICh2YXJpYWJsZURlY2wp
Ci0gICAgICAgICAgICByZXR1cm4gdmFyaWFibGVEZWNsOwotICAgICAgICByZXR1cm4gcGFyc2VF
ZmZlY3RmdWxTdGF0ZW1lbnQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZUJsb2NrQm9k
eSguLi50ZXJtaW5hdG9ycykKLSAgICB7Ci0gICAgICAgIGxldCBibG9jayA9IG5ldyBCbG9jayhv
cmlnaW4pOwotICAgICAgICB3aGlsZSAoIXRlc3QoLi4udGVybWluYXRvcnMpKSB7Ci0gICAgICAg
ICAgICBsZXQgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgICAgIGlmIChz
dGF0ZW1lbnQgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRlbWVudDsKLSAgICAgICAgICAgIGlmIChzdGF0ZW1lbnQpCi0gICAgICAgICAgICAgICAg
YmxvY2suYWRkKHN0YXRlbWVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGJsb2NrOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlQmxvY2soKQotICAgIHsKLSAgICAgICAgbGV0IG9y
aWdpbiA9IGNvbnN1bWUoInsiKTsKLSAgICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50
YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBvcmlnaW47Ci0gICAgICAgIGxldCBibG9jayA9
IHBhcnNlQmxvY2tCb2R5KCJ9Iik7Ci0gICAgICAgIGlmIChibG9jayBpbnN0YW5jZW9mIFdTeW50
YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBibG9jazsKLSAgICAgICAgbGV0IG1heWJlRXJy
b3IgPSBjb25zdW1lKCJ9Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5
bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJldHVy
biBibG9jazsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVBhcmFtZXRlcigpCi0gICAgewot
ICAgICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwotICAgICAgICBpZiAodHlwZSBpbnN0YW5j
ZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiB0eXBlOwotICAgICAgICBsZXQg
bmFtZSA9IHRyeUNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxldCBzZW1hbnRp
YyA9IG51bGw7Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpIHsKLSAgICAgICAgICAgIHNl
bWFudGljID0gcGFyc2VTZW1hbnRpYygpOwotICAgICAgICAgICAgaWYgKHNlbWFudGljIGluc3Rh
bmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBzZW1hbnRpYzsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG5h
bWUgPyBuYW1lLnRleHQgOiBudWxsLCB0eXBlLCBzZW1hbnRpYyk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gcGFyc2VQYXJhbWV0ZXJzKCkKLSAgICB7Ci0gICAgICAgIGxldCBtYXliZUVycm9yID0g
Y29uc3VtZSgiKCIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhF
cnJvcikKLSAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICBsZXQgcGFyYW1l
dGVycyA9IFtdOwotICAgICAgICB3aGlsZSAoIXRlc3QoIikiKSkgewotICAgICAgICAgICAgbGV0
IHBhcmFtZXRlciA9IHBhcnNlUGFyYW1ldGVyKCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVy
IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBwYXJhbWV0
ZXI7Ci0gICAgICAgICAgICBwYXJhbWV0ZXJzLnB1c2gocGFyYW1ldGVyKTsKLSAgICAgICAgICAg
IGlmICghdHJ5Q29uc3VtZSgiLCIpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCIpIik7Ci0gICAgICAgIGlmIChtYXliZUVy
cm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJy
b3I7Ci0gICAgICAgIHJldHVybiBwYXJhbWV0ZXJzOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBh
cnNlRnVuY05hbWUoKQotICAgIHsKLSAgICAgICAgaWYgKHRyeUNvbnN1bWUoIm9wZXJhdG9yIikp
IHsKLSAgICAgICAgICAgIGxldCB0b2tlbiA9IGNvbnN1bWUoIisiLCAiLSIsICIqIiwgIi8iLCAi
JSIsICJeIiwgIiYiLCAifCIsICI8IiwgIj4iLCAiPD0iLCAiPj0iLCAiPT0iLCAiKysiLCAiLS0i
LCAiLiIsICJ+IiwgIjw8IiwgIj4+IiwgIlsiKTsKLSAgICAgICAgICAgIGlmICh0b2tlbiBpbnN0
YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47Ci0gICAg
ICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiJiIpIHsKLSAgICAgICAgICAgICAgICBpZiAodHJ5
Q29uc3VtZSgiWyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBtYXliZUVycm9yID0gY29u
c3VtZSgiXSIpOwotICAgICAgICAgICAgICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9m
IFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9y
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gIm9wZXJhdG9yJltdIjsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHRyeUNvbnN1bWUoIi4iKSkgewotICAgICAgICAg
ICAgICAgICAgICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9y
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiAib3BlcmF0b3ImLiIgKyBtYXliZUVycm9yLnRleHQ7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiAib3BlcmF0b3ImIjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmICh0b2tlbi50ZXh0ID09ICIuIikgewotICAgICAgICAgICAg
ICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAg
ICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3Vs
dCA9ICJvcGVyYXRvci4iICsgbWF5YmVFcnJvci50ZXh0OwotICAgICAgICAgICAgICAgIGlmICh0
cnlDb25zdW1lKCI9IikpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiPSI7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICh0b2tlbi50ZXh0ID09ICJbIikgewotICAgICAgICAgICAgICAgIGxldCBtYXliZUVycm9yID0g
Y29uc3VtZSgiXSIpOwotICAgICAgICAgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAg
ICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gIm9wZXJhdG9yW10iOwotICAgICAgICAgICAgICAg
IGlmICh0cnlDb25zdW1lKCI9IikpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiPSI7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHJldHVybiAib3BlcmF0b3IiICsgdG9rZW4udGV4dDsKLSAgICAgICAgfQotICAgICAgICBs
ZXQgbWF5YmVFcnJvciA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGlmICht
YXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1h
eWJlRXJyb3I7Ci0gICAgICAgIHJldHVybiBtYXliZUVycm9yLnRleHQ7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcGFyc2VBdHRyaWJ1dGVCbG9jaygpCi0gICAgewotICAgICAgICBsZXQgbWF5YmVF
cnJvciA9IGNvbnN1bWUoIlsiKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbWF5
YmVFcnJvciA9IGNvbnN1bWUoIm51bXRocmVhZHMiKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3Ig
aW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsK
LSAgICAgICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoIigiKTsKLSAgICAgICAgaWYgKG1heWJlRXJy
b3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJv
cjsKLSAgICAgICAgbGV0IHhEaW1lbnNpb24gPSBjb25zdW1lS2luZCgiaW50TGl0ZXJhbCIpOwot
ICAgICAgICBpZiAoeERpbWVuc2lvbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAg
ICAgIHJldHVybiB4RGltZW5zaW9uOwotICAgICAgICBsZXQgeERpbWVuc2lvblVpbnRWZXJzaW9u
ID0geERpbWVuc2lvbi50ZXh0ID4+PiAwOwotICAgICAgICBpZiAoeERpbWVuc2lvblVpbnRWZXJz
aW9uLnRvU3RyaW5nKCkgIT09IHhEaW1lbnNpb24udGV4dCkKLSAgICAgICAgICAgIHJldHVybiBm
YWlsKCJOdW10aHJlYWRzIFggYXR0cmlidXRlIGlzIG5vdCAzMi1iaXQgdW5zaWduZWQgaW50ZWdl
cjogIiArIHhEaW1lbnNpb24udGV4dCk7Ci0gICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCIs
Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAg
ICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIGxldCB5RGltZW5zaW9uID0gY29u
c3VtZUtpbmQoImludExpdGVyYWwiKTsKLSAgICAgICAgaWYgKHlEaW1lbnNpb24gaW5zdGFuY2Vv
ZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4geURpbWVuc2lvbjsKLSAgICAgICAg
bGV0IHlEaW1lbnNpb25VaW50VmVyc2lvbiA9IHlEaW1lbnNpb24udGV4dCA+Pj4gMDsKLSAgICAg
ICAgaWYgKHlEaW1lbnNpb25VaW50VmVyc2lvbi50b1N0cmluZygpICE9PSB5RGltZW5zaW9uLnRl
eHQpCi0gICAgICAgICAgICByZXR1cm4gZmFpbCgiTnVtdGhyZWFkcyBZIGF0dHJpYnV0ZSBpcyBu
b3QgMzItYml0IHVuc2lnbmVkIGludGVnZXI6ICIgKyB5RGltZW5zaW9uLnRleHQpOwotICAgICAg
ICBtYXliZUVycm9yID0gY29uc3VtZSgiLCIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0
YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAg
ICAgICBsZXQgekRpbWVuc2lvbiA9IGNvbnN1bWVLaW5kKCJpbnRMaXRlcmFsIik7Ci0gICAgICAg
IGlmICh6RGltZW5zaW9uIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0
dXJuIHpEaW1lbnNpb247Ci0gICAgICAgIGxldCB6RGltZW5zaW9uVWludFZlcnNpb24gPSB6RGlt
ZW5zaW9uLnRleHQgPj4+IDA7Ci0gICAgICAgIGlmICh6RGltZW5zaW9uVWludFZlcnNpb24udG9T
dHJpbmcoKSAhPT0gekRpbWVuc2lvbi50ZXh0KQotICAgICAgICAgICAgcmV0dXJuIGZhaWwoIk51
bXRocmVhZHMgWiBhdHRyaWJ1dGUgaXMgbm90IDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyOiAiICsg
ekRpbWVuc2lvbi50ZXh0KTsKLSAgICAgICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoIikiKTsKLSAg
ICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAg
ICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoIl0iKTsK
LSAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAg
ICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgcmV0dXJuIFtuZXcgRnVuY051bVRocmVh
ZHNBdHRyaWJ1dGUoeERpbWVuc2lvblVpbnRWZXJzaW9uLCB5RGltZW5zaW9uVWludFZlcnNpb24s
IHpEaW1lbnNpb25VaW50VmVyc2lvbildOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlRnVu
Y0RlY2woKQotICAgIHsKLSAgICAgICAgbGV0IG9yaWdpbjsKLSAgICAgICAgbGV0IHJldHVyblR5
cGU7Ci0gICAgICAgIGxldCBuYW1lOwotICAgICAgICBsZXQgaXNDYXN0OwotICAgICAgICBsZXQg
c2hhZGVyVHlwZSA9IG51bGw7Ci0gICAgICAgIGxldCBzZW1hbnRpYyA9IG51bGw7Ci0gICAgICAg
IGxldCBhdHRyaWJ1dGVCbG9jayA9IG51bGw7Ci0gICAgICAgIGxldCBvcGVyYXRvclRva2VuID0g
dHJ5Q29uc3VtZSgib3BlcmF0b3IiKTsKLSAgICAgICAgaWYgKG9wZXJhdG9yVG9rZW4pIHsKLSAg
ICAgICAgICAgIG9yaWdpbiA9IG9wZXJhdG9yVG9rZW47Ci0gICAgICAgICAgICByZXR1cm5UeXBl
ID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgICAgICBpZiAocmV0dXJuVHlwZSBpbnN0YW5jZW9mIFdT
eW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVHlwZTsKLSAgICAgICAg
ICAgIG5hbWUgPSAib3BlcmF0b3IgY2FzdCI7Ci0gICAgICAgICAgICBpc0Nhc3QgPSB0cnVlOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHRlc3QoIlsiKSkgewotICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZUJsb2NrID0gcGFyc2VBdHRyaWJ1dGVCbG9jaygpOwotICAgICAgICAg
ICAgICAgIGlmIChhdHRyaWJ1dGVCbG9jayBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZUJsb2NrOwotICAgICAgICAgICAgICAgIHNo
YWRlclR5cGUgPSBjb25zdW1lKCJjb21wdXRlIik7Ci0gICAgICAgICAgICAgICAgaWYgKHNoYWRl
clR5cGUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBzaGFkZXJUeXBlOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2hhZGVy
VHlwZSA9IHRyeUNvbnN1bWUoInZlcnRleCIsICJmcmFnbWVudCIsICJ0ZXN0Iik7Ci0gICAgICAg
ICAgICByZXR1cm5UeXBlID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgICAgICBpZiAocmV0dXJuVHlw
ZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJu
VHlwZTsKLSAgICAgICAgICAgIGlmIChzaGFkZXJUeXBlKSB7Ci0gICAgICAgICAgICAgICAgb3Jp
Z2luID0gc2hhZGVyVHlwZTsKLSAgICAgICAgICAgICAgICBzaGFkZXJUeXBlID0gc2hhZGVyVHlw
ZS50ZXh0OwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgb3JpZ2luID0gcmV0
dXJuVHlwZS5vcmlnaW47Ci0gICAgICAgICAgICBuYW1lID0gcGFyc2VGdW5jTmFtZSgpOwotICAg
ICAgICAgICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG5hbWU7Ci0gICAgICAgICAgICBpc0Nhc3QgPSBmYWxzZTsKLSAgICAgICAgfQot
ICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1ldGVycygpOwotICAgICAgICBpZiAo
cGFyYW1ldGVycyBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBw
YXJhbWV0ZXJzOwotICAgICAgICBpZiAodHJ5Q29uc3VtZSgiOiIpKSB7Ci0gICAgICAgICAgICBz
ZW1hbnRpYyA9IHBhcnNlU2VtYW50aWMoKTsKLSAgICAgICAgICAgIGlmIChzZW1hbnRpYyBpbnN0
YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VtYW50aWM7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlw
ZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlLCBzZW1hbnRpYywgYXR0cmlidXRlQmxv
Y2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlRnVuY0RlZigpCi0gICAgewotICAgICAg
ICBsZXQgZnVuYyA9IHBhcnNlRnVuY0RlY2woKTsKLSAgICAgICAgaWYgKGZ1bmMgaW5zdGFuY2Vv
ZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gZnVuYzsKLSAgICAgICAgbGV0IGJv
ZHkgPSBwYXJzZUJsb2NrKCk7Ci0gICAgICAgIGlmIChib2R5IGluc3RhbmNlb2YgV1N5bnRheEVy
cm9yKQotICAgICAgICAgICAgcmV0dXJuIGJvZHk7Ci0gICAgICAgIHJldHVybiBuZXcgRnVuY0Rl
ZihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVy
cywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSwgZnVuYy5zZW1hbnRpYywgZnVu
Yy5hdHRyaWJ1dGVCbG9jayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VTdGFnZUluT3V0
U2VtYW50aWMoKQotICAgIHsKLSAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoImF0dHJpYnV0
ZSIpOwotICAgICAgICBpZiAob3JpZ2luIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAg
ICAgICAgcmV0dXJuIG9yaWdpbjsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCIo
Iik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAg
ICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIGxldCBpbmRleCA9IGNvbnN1bWVL
aW5kKCJpbnRMaXRlcmFsIik7Ci0gICAgICAgIGlmIChpbmRleCBpbnN0YW5jZW9mIFdTeW50YXhF
cnJvcikKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICAgICAgbGV0IHVpbnRWZXJzaW9u
ID0gaW5kZXgudGV4dCA+Pj4gMDsKLSAgICAgICAgaWYgKHVpbnRWZXJzaW9uLnRvU3RyaW5nKCkg
IT09IGluZGV4LnRleHQpCi0gICAgICAgICAgICByZXR1cm4gZmFpbCgiU2VtYW50aWMgIGlzIG5v
dCAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcjogIiArIGluZGV4LnRleHQpOwotICAgICAgICBtYXli
ZUVycm9yID0gY29uc3VtZSgiKSIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9m
IFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwotICAgICAgICBy
ZXR1cm4gbmV3IFN0YWdlSW5PdXRTZW1hbnRpYyhvcmlnaW4sIHVpbnRWZXJzaW9uKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBwYXJzZVJlc291cmNlU2VtYW50aWMoKQotICAgIHsKLSAgICAgICAg
bGV0IG9yaWdpbiA9IGNvbnN1bWUoInJlZ2lzdGVyIik7Ci0gICAgICAgIGlmIChvcmlnaW4gaW5z
dGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gb3JpZ2luOwotICAgICAg
ICBsZXQgbWF5YmVFcnJvciA9IGNvbnN1bWUoIigiKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3Ig
aW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsK
LSAgICAgICAgbGV0IG1vZGUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBp
ZiAobW9kZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBtb2Rl
OwotICAgICAgICBtb2RlID0gbW9kZS50ZXh0OwotICAgICAgICBpZiAobW9kZVswXSAhPSAidSIg
JiYgbW9kZVswXSAhPSAidCIgJiYgbW9kZVswXSAhPSAiYiIgJiYgbW9kZVswXSAhPSAicyIpCi0g
ICAgICAgICAgICByZXR1cm4gZmFpbCgicmVnaXN0ZXIgbmVlZHMgdG8gYmUgZWl0aGVyIHUsIHQs
IGIsIG9yIHMiKTsKLSAgICAgICAgbGV0IGluZGV4VGV4dCA9IG1vZGUuc3Vic3RyaW5nKDEpOwot
ICAgICAgICBtb2RlID0gbW9kZVswXTsKLSAgICAgICAgbGV0IHVpbnRWZXJzaW9uID0gaW5kZXhU
ZXh0ID4+PiAwOwotICAgICAgICBpZiAodWludFZlcnNpb24udG9TdHJpbmcoKSAhPT0gaW5kZXhU
ZXh0KQotICAgICAgICAgICAgcmV0dXJuIGZhaWwoIlJlZ2lzdGVyIGluZGV4IGlzIG5vdCAzMi1i
aXQgdW5zaWduZWQgaW50ZWdlcjogIiArIGluZGV4VGV4dCk7Ci0gICAgICAgIGxldCBzcGFjZSA9
IDA7Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCIsIikpIHsKLSAgICAgICAgICAgIHNwYWNlID0g
Y29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgIGlmIChzcGFjZSBpbnN0YW5j
ZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gc3BhY2U7Ci0gICAgICAg
ICAgICBzcGFjZSA9IHNwYWNlLnRleHQ7Ci0gICAgICAgICAgICBpZiAoc3BhY2Uuc3Vic3RyaW5n
KDAsICJzcGFjZSIubGVuZ3RoKSAhPSAic3BhY2UiKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWlsKCJTZWNvbmQgYXJndW1lbnQgdG8gcmVnaXN0ZXIoKSBuZWVkcyB0byBiZSBvZiB0aGUgZm9y
bSBcInNwYWNlMFwiIik7Ci0gICAgICAgICAgICBsZXQgc3BhY2VUZXh0ID0gc3BhY2Uuc3Vic3Ry
aW5nKCJzcGFjZSIubGVuZ3RoKTsKLSAgICAgICAgICAgIGxldCB1aW50VmVyc2lvbiA9IHNwYWNl
VGV4dCA+Pj4gMDsKLSAgICAgICAgICAgIGlmICh1aW50VmVyc2lvbi50b1N0cmluZygpICE9PSBz
cGFjZVRleHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoIlJlZ2lzdGVyIGluZGV4IGlz
IG5vdCAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcjogIiArIHNwYWNlVGV4dCk7Ci0gICAgICAgICAg
ICBzcGFjZSA9IHVpbnRWZXJzaW9uOwotICAgICAgICB9Ci0gICAgICAgIG1heWJlRXJyb3IgPSBj
b25zdW1lKCIpIik7Ci0gICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVy
cm9yKQotICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJldHVybiBuZXcg
UmVzb3VyY2VTZW1hbnRpYyhvcmlnaW4sIG1vZGUsIHVpbnRWZXJzaW9uLCBzcGFjZSk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gcGFyc2VTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMoKQot
ICAgIHsKLSAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInNwZWNpYWxpemVkIik7Ci0gICAg
ICAgIGlmIChvcmlnaW4gaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1
cm4gb3JpZ2luOwotICAgICAgICByZXR1cm4gbmV3IFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1h
bnRpYyhvcmlnaW4pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlQnVpbHRJblNlbWFudGlj
KCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSB0cnlDb25zdW1lKCJTVl9JbnN0YW5jZUlE
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWX1ZlcnRleElEIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBTSVpFIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlNWX1Bvc2l0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlNWX0lzRnJvbnRGYWNlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNW
X1NhbXBsZUluZGV4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWX0lubmVy
Q292ZXJhZ2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ZfRGVwdGgiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ZfQ292ZXJhZ2UiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiU1ZfRGlzcGF0Y2hUaHJlYWRJRCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJTVl9Hcm91cElEIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlNWX0dyb3VwSW5kZXgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiU1ZfR3JvdXBUaHJlYWRJRCIpOwotICAgICAgICBpZiAob3JpZ2luKQotICAgICAgICAg
ICAgcmV0dXJuIG5ldyBCdWlsdEluU2VtYW50aWMob3JpZ2luLCBvcmlnaW4udGV4dCk7Ci0gICAg
ICAgIG9yaWdpbiA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGlmIChvcmln
aW4gaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gb3JpZ2luOwot
ICAgICAgICBpZiAob3JpZ2luLnRleHQuc3Vic3RyaW5nKDAsICJTVl9UYXJnZXQiLmxlbmd0aCkg
PT0gIlNWX1RhcmdldCIpIHsKLSAgICAgICAgICAgIGxldCBpbmRleFN0cmluZyA9IG9yaWdpbi50
ZXh0LnN1YnN0cmluZygiU1ZfVGFyZ2V0Ii5sZW5ndGgpOwotICAgICAgICAgICAgbGV0IHVpbnRW
ZXJzaW9uID0gaW5kZXhTdHJpbmcgPj4+IDA7Ci0gICAgICAgICAgICBpZiAodWludFZlcnNpb24u
dG9TdHJpbmcoKSAhPT0gaW5kZXhTdHJpbmcpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwo
IlNlbWFudGljICBpcyBub3QgMzItYml0IHVuc2lnbmVkIGludGVnZXI6ICIgKyBpbmRleFN0cmlu
Zyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IEJ1aWx0SW5TZW1hbnRpYyhvcmlnaW4sICJTVl9U
YXJnZXQiLCB1aW50VmVyc2lvbik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmV0dXJu
IGZhaWwoYFVua25vd24gc2VtYW50aWM6ICR7b3JpZ2luLnRleHR9YCk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcGFyc2VTZW1hbnRpYygpCi0gICAgewotICAgICAgICBpZiAodGVzdCgiYXR0cmli
dXRlIikpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VTdGFnZUluT3V0U2VtYW50aWMoKTsKLSAg
ICAgICAgZWxzZSBpZiAodGVzdCgicmVnaXN0ZXIiKSkKLSAgICAgICAgICAgIHJldHVybiBwYXJz
ZVJlc291cmNlU2VtYW50aWMoKTsKLSAgICAgICAgZWxzZSBpZiAodGVzdCgic3BlY2lhbGl6ZWQi
KSkKLSAgICAgICAgICAgIHJldHVybiBwYXJzZVNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRp
YygpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VCdWlsdEluU2VtYW50
aWMoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXJzZUZpZWxkKCkKLSAgICB7Ci0gICAgICAg
IGxldCB0eXBlID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgV1N5
bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIHR5cGU7Ci0gICAgICAgIGxldCBuYW1lID0g
Y29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbmFtZTsKLSAgICAgICAgbGV0IHNlbWFu
dGljID0gbnVsbDsKLSAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkgewotICAgICAgICAgICAg
c2VtYW50aWMgPSBwYXJzZVNlbWFudGljKCk7Ci0gICAgICAgICAgICBpZiAoc2VtYW50aWMgaW5z
dGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbWFudGljOwot
ICAgICAgICB9Ci0gICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiOyIpOwotICAgICAg
ICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJl
dHVybiBtYXliZUVycm9yOwotICAgICAgICByZXR1cm4gbmV3IEZpZWxkKG5hbWUsIG5hbWUudGV4
dCwgdHlwZSwgc2VtYW50aWMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlU3RydWN0VHlw
ZSgpCi0gICAgewotICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgic3RydWN0Iik7Ci0gICAg
ICAgIGlmIChvcmlnaW4gaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1
cm4gb3JpZ2luOwotICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7
Ci0gICAgICAgIGlmIChuYW1lIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAg
cmV0dXJuIG5hbWU7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4s
IG5hbWUudGV4dCk7Ci0gICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgieyIpOwotICAg
ICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAg
IHJldHVybiBtYXliZUVycm9yOwotICAgICAgICB3aGlsZSAoIXRyeUNvbnN1bWUoIn0iKSkgewot
ICAgICAgICAgICAgbGV0IGZpZWxkID0gcGFyc2VGaWVsZCgpOwotICAgICAgICAgICAgaWYgKGZp
ZWxkIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiBmaWVs
ZDsKLSAgICAgICAgICAgIHJlc3VsdC5hZGQoZmllbGQpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VOYXRpdmVGdW5jKHN0YWdl
ID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwotICAg
ICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVy
biBmdW5jOwotICAgICAgICBpZiAoZnVuYy5hdHRyaWJ1dGVCbG9jaykKLSAgICAgICAgICAgIHJl
dHVybiBmYWlsKCJOYXRpdmUgZnVuY3Rpb24gbXVzdCBub3QgaGF2ZSBhdHRyaWJ1dGUgYmxvY2si
KTsKLSAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCI7Iik7Ci0gICAgICAgIGlmICht
YXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0dXJuIG1h
eWJlRXJyb3I7Ci0gICAgICAgIGlmIChmdW5jLnNoYWRlclR5cGUgfHwgZnVuYy5zZW1hbnRpYykK
LSAgICAgICAgICAgIHJldHVybiBmYWlsKCJOYXRpdmUgZnVuY3Rpb25zIGNhbid0IGJlIGVudHJ5
IHBvaW50cyBvciBoYXZlIHNlbWFudGljcy4iKTsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVG
dW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJhbWV0
ZXJzLCBmdW5jLmlzQ2FzdCwgc3RhZ2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhcnNlTmF0
aXZlKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJuYXRpdmUiKTsKLSAg
ICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJl
dHVybiBvcmlnaW47Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCJ0eXBlZGVmIikpIHsKLSAgICAg
ICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAg
IGlmIChuYW1lIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVy
biBuYW1lOwotICAgICAgICAgICAgbGV0IGFyZ3MgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKLSAg
ICAgICAgICAgIGlmIChhcmdzIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAg
ICAgIHJldHVybiBhcmdzOwotICAgICAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBjb25zdW1lKCI7
Iik7Ci0gICAgICAgICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikK
LSAgICAgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAgICAgICAgICAgIHJldHVybiBO
YXRpdmVUeXBlLmNyZWF0ZShvcmlnaW4sIG5hbWUudGV4dCwgYXJncyk7Ci0gICAgICAgIH0KLSAg
ICAgICAgbGV0IHN0YWdlID0gdHJ5Q29uc3VtZSgidmVydGV4IiwgImZyYWdtZW50IiwgImNvbXB1
dGUiKTsKLSAgICAgICAgaWYgKHN0YWdlKQotICAgICAgICAgICAgc3RhZ2UgPSBzdGFnZS50ZXh0
OwotICAgICAgICByZXR1cm4gcGFyc2VOYXRpdmVGdW5jKHN0YWdlKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBwYXJzZVJlc3RyaWN0ZWRGdW5jRGVmKCkKLSAgICB7Ci0gICAgICAgIGxldCBtYXli
ZUVycm9yID0gY29uc3VtZSgicmVzdHJpY3RlZCIpOwotICAgICAgICBpZiAobWF5YmVFcnJvciBp
bnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBtYXliZUVycm9yOwot
ICAgICAgICBsZXQgcmVzdWx0OwotICAgICAgICBpZiAodHJ5Q29uc3VtZSgibmF0aXZlIikpIHsK
LSAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlTmF0aXZlRnVuYygpOwotICAgICAgICAgICAgaWYg
KHJlc3VsdCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VGdW5j
RGVmKCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0
LmlzUmVzdHJpY3RlZCA9IHRydWU7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcGFyc2VFbnVtTWVtYmVyKCkKLSAgICB7Ci0gICAgICAgIGxldCBuYW1lID0g
Y29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbmFtZTsKLSAgICAgICAgbGV0IHZhbHVl
ID0gbnVsbDsKLSAgICAgICAgaWYgKHRyeUNvbnN1bWUoIj0iKSkgewotICAgICAgICAgICAgdmFs
dWUgPSBwYXJzZUNvbnN0ZXhwcigpOwotICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2Yg
V1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gbmV3IEVudW1NZW1iZXIobmFtZSwgbmFtZS50ZXh0LCB2YWx1ZSk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcGFyc2VFbnVtVHlwZSgpCi0gICAgewotICAgICAgICBsZXQg
bWF5YmVFcnJvciA9IGNvbnN1bWUoImVudW0iKTsKLSAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5z
dGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKLSAg
ICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBpZiAo
bmFtZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJldHVybiBuYW1lOwot
ICAgICAgICBsZXQgYmFzZVR5cGU7Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpIHsKLSAg
ICAgICAgICAgIGJhc2VUeXBlID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgICAgICBpZiAoYmFzZVR5
cGUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VU
eXBlOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJhc2VUeXBlID0gbmV3IFR5cGVSZWYo
bmFtZSwgImludCIpOwotICAgICAgICBtYXliZUVycm9yID0gY29uc3VtZSgieyIpOwotICAgICAg
ICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHJl
dHVybiBtYXliZUVycm9yOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVudW1UeXBlKG5hbWUs
IG5hbWUudGV4dCwgYmFzZVR5cGUpOwotICAgICAgICB3aGlsZSAoIXRlc3QoIn0iKSkgewotICAg
ICAgICAgICAgbGV0IGVudW1NZW1iZXIgPSBwYXJzZUVudW1NZW1iZXIoKTsKLSAgICAgICAgICAg
IGlmIChlbnVtTWVtYmVyIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgICAg
IHJldHVybiBlbnVtTWVtYmVyOwotICAgICAgICAgICAgcmVzdWx0LmFkZChlbnVtTWVtYmVyKTsK
LSAgICAgICAgICAgIGlmICghdHJ5Q29uc3VtZSgiLCIpKQotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCJ9Iik7Ci0gICAgICAg
IGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQotICAgICAgICAgICAgcmV0
dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgZm9y
ICg7OykgewotICAgICAgICBsZXQgdG9rZW4gPSBsZXhlci5wZWVrKCk7Ci0gICAgICAgIGlmICgh
dG9rZW4pCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh0b2tlbi50ZXh0ID09ICI7
IikKLSAgICAgICAgICAgIGxleGVyLm5leHQoKTsKLSAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4
dCA9PSAidHlwZWRlZiIpIHsKLSAgICAgICAgICAgIGxldCB0eXBlRGVmID0gcGFyc2VUeXBlRGVm
KCk7Ci0gICAgICAgICAgICBpZiAodHlwZURlZiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgICAgICB0aHJvdyB0eXBlRGVmOwotICAgICAgICAgICAgcHJvZ3JhbS5hZGQodHlw
ZURlZik7Ci0gICAgICAgIH0gZWxzZSBpZiAob3JpZ2luS2luZCA9PSAibmF0aXZlIiAmJiB0b2tl
bi50ZXh0ID09ICJuYXRpdmUiKSB7Ci0gICAgICAgICAgICBsZXQgbmF0aXZlID0gcGFyc2VOYXRp
dmUoKTsKLSAgICAgICAgICAgIGlmIChuYXRpdmUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmF0aXZlOwotICAgICAgICAgICAgcHJvZ3JhbS5hZGQobmF0
aXZlKTsKLSAgICAgICAgfSBlbHNlIGlmIChvcmlnaW5LaW5kID09ICJuYXRpdmUiICYmIHRva2Vu
LnRleHQgPT0gInJlc3RyaWN0ZWQiKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdHJpY3RlZEZ1bmNE
ZWYgPSBwYXJzZVJlc3RyaWN0ZWRGdW5jRGVmKCk7Ci0gICAgICAgICAgICBpZiAocmVzdHJpY3Rl
ZEZ1bmNEZWYgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgdGhyb3cg
cmVzdHJpY3RlZEZ1bmNEZWY7Ci0gICAgICAgICAgICBwcm9ncmFtLmFkZChyZXN0cmljdGVkRnVu
Y0RlZik7Ci0gICAgICAgIH0gZWxzZSBpZiAodG9rZW4udGV4dCA9PSAic3RydWN0IikgewotICAg
ICAgICAgICAgbGV0IHN0cnVjdCA9IHBhcnNlU3RydWN0VHlwZSgpOwotICAgICAgICAgICAgaWYg
KHN0cnVjdCBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKLSAgICAgICAgICAgICAgICB0aHJvdyBz
dHJ1Y3Q7Ci0gICAgICAgICAgICBwcm9ncmFtLmFkZChzdHJ1Y3QpOwotICAgICAgICB9IGVsc2Ug
aWYgKHRva2VuLnRleHQgPT0gImVudW0iKSB7Ci0gICAgICAgICAgICBsZXQgZW51bVR5cGUgPSBw
YXJzZUVudW1UeXBlKCk7Ci0gICAgICAgICAgICBpZiAoZW51bVR5cGUgaW5zdGFuY2VvZiBXU3lu
dGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgdGhyb3cgZW51bVR5cGU7Ci0gICAgICAgICAgICBw
cm9ncmFtLmFkZChlbnVtVHlwZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsZXQg
ZnVuY0RlZiA9IHBhcnNlRnVuY0RlZigpOwotICAgICAgICAgICAgaWYgKGZ1bmNEZWYgaW5zdGFu
Y2VvZiBXU3ludGF4RXJyb3IpCi0gICAgICAgICAgICAgICAgdGhyb3cgZnVuY0RlZjsKLSAgICAg
ICAgICAgIHByb2dyYW0uYWRkKGZ1bmNEZWYpOwotICAgICAgICB9Ci0gICAgfQotfQotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDc4Zjk3NGY4N2UuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWxldCBwcmVwYXJlID0gKCgpID0+IHsKLSAgICBsZXQgc3RhbmRhcmRQcm9ncmFtOwotICAg
IHJldHVybiBmdW5jdGlvbihvcmlnaW4sIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQsIHNob3VsZElu
bGluZSA9IGZhbHNlKSB7Ci0gICAgICAgIGlmICghc3RhbmRhcmRQcm9ncmFtKSB7Ci0gICAgICAg
ICAgICBzdGFuZGFyZFByb2dyYW0gPSBuZXcgUHJvZ3JhbSgpOwotICAgICAgICAgICAgbGV0IGZp
cnN0TGluZU9mU3RhbmRhcmRMaWJyYXJ5ID0gMjg7IC8vIFNlZSBTdGFuZGFyZExpYnJhcnkuanMu
Ci0gICAgICAgICAgICBwYXJzZShzdGFuZGFyZFByb2dyYW0sICIvaW50ZXJuYWwvc3RkbGliIiwg
Im5hdGl2ZSIsIGZpcnN0TGluZU9mU3RhbmRhcmRMaWJyYXJ5IC0gMSwgc3RhbmRhcmRMaWJyYXJ5
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBwcm9ncmFtID0gY2xvbmVQcm9ncmFtKHN0YW5k
YXJkUHJvZ3JhbSk7Ci0gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoKSB7Ci0gICAgICAgICAg
ICBwYXJzZShwcm9ncmFtLCBvcmlnaW4sICJ1c2VyIiwgbGluZU51bWJlck9mZnNldCwgdGV4dCk7
Ci0gICAgICAgICAgICBwcm9ncmFtID0gcHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92
ZWQocHJvZ3JhbSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb2xkQ29uc3RleHBycyhwcm9ncmFt
KTsKLQotICAgICAgICBsZXQgbmFtZVJlc29sdmVyID0gY3JlYXRlTmFtZVJlc29sdmVyKHByb2dy
YW0pOwotICAgICAgICByZXNvbHZlTmFtZXNJblR5cGVzKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7
Ci0gICAgICAgIHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSk7Ci0gICAgICAgIGNoZWNr
UmVjdXJzaXZlVHlwZXMocHJvZ3JhbSk7Ci0gICAgICAgIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3Nv
cnMocHJvZ3JhbSk7Ci0gICAgICAgIHN5bnRoZXNpemVFbnVtRnVuY3Rpb25zKHByb2dyYW0pOwot
ICAgICAgICBzeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aChwcm9ncmFtKTsKLSAgICAgICAg
c3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yKHByb2dyYW0pOwotICAgICAgICBzeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IocHJvZ3JhbSk7Ci0gICAgICAgIHJlc29s
dmVOYW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7Ci0gICAgICAgIHJlc29s
dmVUeXBlRGVmc0luRnVuY3Rpb25zKHByb2dyYW0pOwotICAgICAgICBjaGVja1R5cGVzV2l0aEFy
Z3VtZW50cyhwcm9ncmFtKTsKLQotICAgICAgICBjaGVjayhwcm9ncmFtKTsKLSAgICAgICAgY2hl
Y2tMaXRlcmFsVHlwZXMocHJvZ3JhbSk7Ci0gICAgICAgIHJlc29sdmVQcm9wZXJ0aWVzKHByb2dy
YW0pOwotICAgICAgICBmaW5kSGlnaFpvbWJpZXMocHJvZ3JhbSk7Ci0gICAgICAgIGNoZWNrTGl0
ZXJhbFR5cGVzKHByb2dyYW0pOwotICAgICAgICBjaGVja1Byb2dyYW1XcmFwcGVkKHByb2dyYW0p
OwotICAgICAgICBjaGVja1JldHVybnMocHJvZ3JhbSk7Ci0gICAgICAgIGNoZWNrVW5yZWFjaGFi
bGVDb2RlKHByb2dyYW0pOwotICAgICAgICBjaGVja0xvb3BzKHByb2dyYW0pOwotICAgICAgICBj
aGVja1JlY3Vyc2lvbihwcm9ncmFtKTsKLSAgICAgICAgY2hlY2tQcm9ncmFtV3JhcHBlZChwcm9n
cmFtKTsKLSAgICAgICAgY2hlY2tUeXBlc1dpdGhBcmd1bWVudHMocHJvZ3JhbSk7Ci0gICAgICAg
IGZpbmRIaWdoWm9tYmllcyhwcm9ncmFtKTsKLSAgICAgICAgYWxsb2NhdGVBdEVudHJ5UG9pbnRz
KHByb2dyYW0pOwotICAgICAgICBwcm9ncmFtLnZpc2l0KG5ldyBTdHJ1Y3RMYXlvdXRCdWlsZGVy
KCkpOwotICAgICAgICBsYXlvdXRCdWZmZXJzKHByb2dyYW0pOwotICAgICAgICBjaGVja05hdGl2
ZUZ1bmNTdGFnZXMocHJvZ3JhbSk7Ci0gICAgICAgIGlmIChzaG91bGRJbmxpbmUpCi0gICAgICAg
ICAgICBpbmxpbmUocHJvZ3JhbSk7Ci0gICAgICAgIHJldHVybiBwcm9ncmFtOwotICAgIH07Ci19
KSgpOwotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFt
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWMxZGVmYjRmYmEuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKKysrIC9kZXYvbnVsbApAQCAtMSw3
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1
Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl90b3BMZXZlbFN0
YXRlbWVudHMgPSBbXTsKLSAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gbmV3IE1hcCgpOwotICAg
ICAgICB0aGlzLl90eXBlcyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNv
bnRleHQgPSBuZXcgTmFtZUNvbnRleHQoKTsKLSAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNvbnRl
eHQucHJvZ3JhbSA9IHRoaXM7Ci0gICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0LnJlY29n
bml6ZUludHJpbnNpY3MoKTsKLSAgICAgICAgdGhpcy5pbnRyaW5zaWNzID0gdGhpcy5fZ2xvYmFs
TmFtZUNvbnRleHQuaW50cmluc2ljczsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHRvcExldmVsU3Rh
dGVtZW50cygpIHsgcmV0dXJuIHRoaXMuX3RvcExldmVsU3RhdGVtZW50czsgfQotICAgIGdldCBm
dW5jdGlvbnMoKSB7IHJldHVybiB0aGlzLl9mdW5jdGlvbnM7IH0KLSAgICBnZXQgdHlwZXMoKSB7
IHJldHVybiB0aGlzLl90eXBlczsgfQotICAgIGdldCBnbG9iYWxOYW1lQ29udGV4dCgpIHsgcmV0
dXJuIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0OyB9Ci0gICAgCi0gICAgYWRkKHN0YXRlbWVudCkK
LSAgICB7Ci0gICAgICAgIHN0YXRlbWVudC5wcm9ncmFtID0gdGhpczsKLSAgICAgICAgaWYgKHN0
YXRlbWVudCBpbnN0YW5jZW9mIEZ1bmMpIHsKLSAgICAgICAgICAgIGxldCBhcnJheSA9IHRoaXMu
X2Z1bmN0aW9ucy5nZXQoc3RhdGVtZW50Lm5hbWUpOwotICAgICAgICAgICAgaWYgKCFhcnJheSkK
LSAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9ucy5zZXQoc3RhdGVtZW50Lm5hbWUsIGFycmF5
ID0gW10pOwotICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1lbnQpOwotICAgICAgICB9IGVs
c2UgaWYgKHN0YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpIHsKLSAgICAgICAgICAgIGlmIChzdGF0
ZW1lbnQuaXNOYXRpdmUgJiYgc3RhdGVtZW50LnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDApIHsK
LSAgICAgICAgICAgICAgICBsZXQgYXJyYXkgPSB0aGlzLnR5cGVzLmdldChzdGF0ZW1lbnQubmFt
ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcnJheSkKLSAgICAgICAgICAgICAgICAgICAgdGhp
cy50eXBlcy5zZXQoc3RhdGVtZW50Lm5hbWUsIGFycmF5ID0gW10pOwotICAgICAgICAgICAgICAg
IGFycmF5LnB1c2goc3RhdGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIHRoaXMudHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBzdGF0ZW1lbnQpOwotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVtZW50IGlzIG5vdCBhIGZ1
bmN0aW9uIG9yIHR5cGU6ICIgKyBzdGF0ZW1lbnQpOwotICAgICAgICB0aGlzLnRvcExldmVsU3Rh
dGVtZW50cy5wdXNoKHN0YXRlbWVudCk7Ci0gICAgICAgIHRoaXMuZ2xvYmFsTmFtZUNvbnRleHQu
YWRkKHN0YXRlbWVudCk7Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAg
ICAgIGlmICghdGhpcy50b3BMZXZlbFN0YXRlbWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuICIiOwotICAgICAgICByZXR1cm4gdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzLmpvaW4oIjsi
KSArICI7IjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Byb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NTdjN2Y0ZmIwLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtV2l0aFVubmVjZXNz
YXJ5VGhpbmdzUmVtb3ZlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQot
ZnVuY3Rpb24gcHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQocHJvZ3JhbSkKLXsK
LSAgICBsZXQgbmFtZUZpbmRlciA9IG5ldyBOYW1lRmluZGVyKCk7Ci0gICAgCi0gICAgLy8gQnVp
bGQgb3VyIHJvb3RzLgotICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBwcm9ncmFtLnRvcExldmVs
U3RhdGVtZW50cykgewotICAgICAgICBpZiAoc3RhdGVtZW50Lm9yaWdpbi5vcmlnaW5LaW5kID09
PSAidXNlciIpCi0gICAgICAgICAgICBuYW1lRmluZGVyLmFkZChzdGF0ZW1lbnQubmFtZSk7Ci0g
ICAgfQotICAgIAotICAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGNhbm5vdCBrbm93IHlldCB3aGlj
aCBvcGVyYXRvciBjYXN0cyB3ZSdsbCBuZWVkLgotICAgIG5hbWVGaW5kZXIuYWRkKCJvcGVyYXRv
ciBjYXN0Iik7Ci0gICAgCi0gICAgLy8gV2UgbmVlZCB0aGVzZSBldmVuIGlmIHRoZSBwcm9ncmFt
IGRvZXNuJ3QgbWVudGlvbiB0aGVtIGJ5IG5hbWUuCi0gICAgbmFtZUZpbmRlci5hZGQoInZvaWQi
KTsKLSAgICBuYW1lRmluZGVyLmFkZCgiYm9vbCIpOwotICAgIG5hbWVGaW5kZXIuYWRkKCJpbnQi
KTsKLSAgICBuYW1lRmluZGVyLmFkZCgidWludCIpOwotICAgIG5hbWVGaW5kZXIuYWRkKCJmbG9h
dCIpOwotICAgIG5hbWVGaW5kZXIuYWRkKCJ2ZWN0b3IiKTsKLSAgICBuYW1lRmluZGVyLmFkZCgi
c2FtcGxlciIpOwotICAgIAotICAgIC8vIFB1bGwgaW4gdGhpbmdzIGFzIG5lY2Vzc2FyeS4KLSAg
ICB3aGlsZSAobmFtZUZpbmRlci53b3JrbGlzdC5sZW5ndGgpIHsKLSAgICAgICAgbGV0IG5hbWUg
PSBuYW1lRmluZGVyLndvcmtsaXN0LnBvcCgpOwotICAgICAgICBmb3IgKGxldCB0aGluZyBvZiBw
cm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnVuZGVybHlpbmdUaGluZ3MoQW55dGhpbmcsIG5hbWUp
KQotICAgICAgICAgICAgdGhpbmcudmlzaXQobmFtZUZpbmRlcik7Ci0gICAgfQotICAgIAotICAg
IGxldCByZXN1bHQgPSBuZXcgUHJvZ3JhbSgpOwotICAgIGZvciAobGV0IG5hbWUgb2YgbmFtZUZp
bmRlci5zZXQpIHsKLSAgICAgICAgZm9yIChsZXQgdGhpbmcgb2YgcHJvZ3JhbS5nbG9iYWxOYW1l
Q29udGV4dC51bmRlcmx5aW5nVGhpbmdzKEFueXRoaW5nLCBuYW1lKSkKLSAgICAgICAgICAgIHJl
c3VsdC5hZGQodGhpbmcpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9wZXJ0eUFjY2Vzc0V4
cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9wZXJ0eUFjY2Vz
c0V4cHJlc3Npb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlNGFkOTBiN2Ex
Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9wZXJ0
eUFjY2Vzc0V4cHJlc3Npb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0K
LWNsYXNzIFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICAg
IGNvbnN0cnVjdG9yKG9yaWdpbiwgYmFzZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbik7
Ci0gICAgICAgIHRoaXMuYmFzZSA9IGJhc2U7Ci0gICAgICAgIHRoaXMuX2lzTFZhbHVlID0gbnVs
bDsgLy8gV2UgdXNlIG51bGwgdG8gaW5kaWNhdGUgdGhhdCB3ZSBkb24ndCBrbm93IHlldC4KLSAg
ICAgICAgdGhpcy5hZGRyZXNzU3BhY2UgPSBudWxsOwotICAgICAgICB0aGlzLl9ub3RMVmFsdWVS
ZWFzb24gPSBudWxsOwotICAgIH0KLSAgICAKLSAgICBnZXQgcmVzdWx0VHlwZSgpIHsgcmV0dXJu
IHRoaXMucmVzdWx0VHlwZUZvckdldCA/IHRoaXMucmVzdWx0VHlwZUZvckdldCA6IHRoaXMucmVz
dWx0VHlwZUZvckFuZDsgfQotICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX2lzTFZh
bHVlOyB9Ci0gICAgc2V0IGlzTFZhbHVlKHZhbHVlKSB7IHRoaXMuX2lzTFZhbHVlID0gdmFsdWU7
IH0KLSAgICBnZXQgbm90TFZhbHVlUmVhc29uKCkgeyByZXR1cm4gdGhpcy5fbm90TFZhbHVlUmVh
c29uOyB9Ci0gICAgc2V0IG5vdExWYWx1ZVJlYXNvbih2YWx1ZSkgeyB0aGlzLl9ub3RMVmFsdWVS
ZWFzb24gPSB2YWx1ZTsgfQotICAgIAotICAgIHJld3JpdGVBZnRlckNsb25pbmcoKQotICAgIHsK
LSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgbm9kZS5iYXNlLmlzTFZhbHVlIHdpbGwgb25seSBy
ZXR1cm4gdHJ1ZSBpZiBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIHBvaW50ZXIgdG8gaXQsCi0gICAg
ICAgIC8vIHNpbmNlIHdlIHdpbGwgbm8gbG9uZ2VyIHNlZSBhbnkgRG90RXhwcmVzc2lvbnMgb3Ig
SW5kZXhFeHByZXNzaW9ucy4gQWxzbywgbm9kZSBpcyBhIG5ld2x5IGNyZWF0ZWQKLSAgICAgICAg
Ly8gbm9kZSBhbmQgZXZlcnl0aGluZyBiZW5lYXRoIGl0IGlzIG5ld2x5IGNyZWF0ZWQsIHNvIHdl
IGNhbiBlZGl0IGl0IGluLXBsYWNlLgotICAgICAgICAKLSAgICAgICAgaWYgKCh0aGlzLmJhc2Uu
aXNMVmFsdWUgfHwgdGhpcy5iYXNlVHlwZS5pc1JlZikgJiYgdGhpcy5jYWxsRm9yQW5kKQotICAg
ICAgICAgICAgcmV0dXJuIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24odGhpcy5vcmlnaW4sIHRo
aXMuY2FsbEZvckFuZCwgdGhpcy5yZXN1bHRUeXBlLCB0aGlzLmNhbGxGb3JBbmQucmVzdWx0VHlw
ZS5hZGRyZXNzU3BhY2UpOwotICAgICAgICAKLSAgICAgICAgaWYgKHRoaXMuY2FsbEZvckdldCkK
LSAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxGb3JHZXQ7Ci0gICAgICAgIAotICAgICAgICBp
ZiAoIXRoaXMuY2FsbEZvckFuZCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLm9y
aWdpbi5vcmlnaW5TdHJpbmcgKyAiOiBQcm9wZXJ0eSBhY2Nlc3Mgd2l0aG91dCBnZXR0ZXIgYW5k
IGFuZGVyOiAiICsgdGhpcyk7Ci0gICAgICAgIAotICAgICAgICBsZXQgYW5vblZhciA9IG5ldyBB
bm9ueW1vdXNWYXJpYWJsZSh0aGlzLm9yaWdpbiwgdGhpcy5iYXNlVHlwZSk7Ci0gICAgICAgIHRo
aXMuY2FsbEZvckFuZC5hcmd1bWVudExpc3RbMF0gPSB0aGlzLmJhc2VUeXBlLnVuaWZ5Tm9kZS5h
cmd1bWVudEZvckFuZE92ZXJsb2FkKHRoaXMub3JpZ2luLCBWYXJpYWJsZVJlZi53cmFwKGFub25W
YXIpKTsKLSAgICAgICAgcmV0dXJuIG5ldyBDb21tYUV4cHJlc3Npb24odGhpcy5vcmlnaW4sIFsK
LSAgICAgICAgICAgIGFub25WYXIsCi0gICAgICAgICAgICBuZXcgQXNzaWdubWVudCh0aGlzLm9y
aWdpbiwgVmFyaWFibGVSZWYud3JhcChhbm9uVmFyKSwgdGhpcy5iYXNlLCB0aGlzLmJhc2VUeXBl
KSwKLSAgICAgICAgICAgIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24odGhpcy5vcmlnaW4sIHRo
aXMuY2FsbEZvckFuZCwgdGhpcy5yZXN1bHRUeXBlLCB0aGlzLmNhbGxGb3JBbmQucmVzdWx0VHlw
ZS5hZGRyZXNzU3BhY2UpCi0gICAgICAgIF0pOwotICAgIH0KLSAgICAKLSAgICB1cGRhdGVDYWxs
cygpCi0gICAgewotICAgICAgICBpZiAodGhpcy5jYWxsRm9yR2V0KQotICAgICAgICAgICAgdGhp
cy5jYWxsRm9yR2V0LmFyZ3VtZW50TGlzdFswXSA9IHRoaXMuYmFzZTsKLSAgICAgICAgaWYgKHRo
aXMuY2FsbEZvckFuZCkKLSAgICAgICAgICAgIHRoaXMuY2FsbEZvckFuZC5hcmd1bWVudExpc3Rb
MF0gPSB0aGlzLmJhc2VUeXBlLmFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQodGhpcy5vcmlnaW4sIHRo
aXMuYmFzZSk7Ci0gICAgICAgIGlmICh0aGlzLmNhbGxGb3JTZXQpCi0gICAgICAgICAgICB0aGlz
LmNhbGxGb3JTZXQuYXJndW1lbnRMaXN0WzBdID0gdGhpcy5iYXNlOwotICAgIH0KLSAgICAKLSAg
ICBlbWl0R2V0KGJhc2UpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy52aXNpdChu
ZXcgUmV3cml0ZXIoKSk7Ci0gICAgICAgIHJlc3VsdC5iYXNlID0gYmFzZTsKLSAgICAgICAgcmVz
dWx0LnVwZGF0ZUNhbGxzKCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQucmV3cml0ZUFmdGVyQ2xv
bmluZygpOwotICAgIH0KLSAgICAKLSAgICBlbWl0U2V0KGJhc2UsIHZhbHVlKQotICAgIHsKLSAg
ICAgICAgbGV0IHJlc3VsdCA9IHRoaXMudmlzaXQobmV3IFJld3JpdGVyKCkpOwotICAgICAgICBp
ZiAoIXJlc3VsdC5jYWxsRm9yU2V0KQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
dGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ2Fubm90IGVtaXQgc2V0IGJlY2F1c2U6ICIgKyB0
aGlzLmVycm9yRm9yU2V0LnR5cGVFcnJvck1lc3NhZ2UpOwotICAgICAgICByZXN1bHQuYmFzZSA9
IGJhc2U7Ci0gICAgICAgIHJlc3VsdC51cGRhdGVDYWxscygpOwotICAgICAgICByZXN1bHQuY2Fs
bEZvclNldC5hcmd1bWVudExpc3RbcmVzdWx0LmNhbGxGb3JTZXQuYXJndW1lbnRMaXN0Lmxlbmd0
aCAtIDFdID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiByZXN1bHQuY2FsbEZvclNldDsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3BlcnR5
UmVzb2x2ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9wZXJ0eVJlc29s
dmVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzE4NGNhNWFkMi4uMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvcGVydHlSZXNvbHZl
ci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3BlcnR5
UmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBfdmlzaXRSVmFsdWVzV2l0aGluTFZhbHVl
KG5vZGUpCi0gICAgewotICAgICAgICBsZXQgdmlzaXQgPSBub2RlID0+IG5vZGUudmlzaXQodGhp
cyk7Ci0gICAgICAgIAotICAgICAgICBjbGFzcyBSVmFsdWVGaW5kZXIgewotICAgICAgICAgICAg
dmlzaXREb3RFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
bm9kZS5zdHJ1Y3QudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgbm9kZS5hcnJheS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgICAgICB2aXNp
dChub2RlLmluZGV4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAg
dmlzaXRWYXJpYWJsZVJlZihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgICAgICB2aXNpdERlcmVmZXJlbmNlRXhwcmVzc2lvbihub2RlKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZpc2l0KG5vZGUucHRyKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXRJZGVudGl0eUV4cHJlc3Npb24o
bm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBub2RlLnRhcmdldC52aXNpdCh0
aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXRNYWtl
QXJyYXlSZWZFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dmlzaXQobm9kZS5sVmFsdWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFRl
cm5hcnlFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIG5vZGUudmlzaXQobmV3IFJWYWx1ZUZpbmRlcigpKTsK
LSAgICB9Ci0gICAgCi0gICAgX3Zpc2l0UHJvcGVydHlBY2Nlc3Mobm9kZSkKLSAgICB7Ci0gICAg
ICAgIGxldCBuZXdOb2RlID0gbm9kZS52aXNpdChuZXcgTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZl
cigpKTsKLSAgICAgICAgbmV3Tm9kZS52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5iZWNvbWUo
bmV3Tm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2RlKQotICAg
IHsKLSAgICAgICAgdGhpcy5fdmlzaXRQcm9wZXJ0eUFjY2Vzcyhub2RlKTsKLSAgICB9Ci0gICAg
Ci0gICAgdmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Zp
c2l0UHJvcGVydHlBY2Nlc3Mobm9kZSk7Ci0gICAgfQotICAgIAotICAgIF9oYW5kbGVSZWFkTW9k
aWZ5V3JpdGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCB0eXBlID0gbm9kZS5vbGRWYWx1ZVZh
ci50eXBlOwotICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
Ik51bGwgdHlwZSIpOwotICAgICAgICBsZXQgc2ltcGxlTEhTID0gbm9kZS5sVmFsdWUudmlzaXQo
bmV3IE5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIoKSk7Ci0gICAgICAgIGlmIChzaW1wbGVMSFMu
aXNMVmFsdWUpIHsKLSAgICAgICAgICAgIGlmICghc2ltcGxlTEhTLmFkZHJlc3NTcGFjZSkKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nICsg
IjogTEhTIHdpdGhvdXQgYWRkcmVzcyBzcGFjZTogIiArIHNpbXBsZUxIUyk7Ci0gICAgICAgICAg
ICBsZXQgcHRyVHlwZSA9IG5ldyBQdHJUeXBlKG5vZGUub3JpZ2luLCBzaW1wbGVMSFMuYWRkcmVz
c1NwYWNlLCB0eXBlKTsKLSAgICAgICAgICAgIGxldCBwdHJWYXIgPSBuZXcgQW5vbnltb3VzVmFy
aWFibGUobm9kZS5vcmlnaW4sIHB0clR5cGUpOwotICAgICAgICAgICAgbm9kZS5iZWNvbWUobmV3
IENvbW1hRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgWwotICAgICAgICAgICAgICAgIG5vZGUub2xk
VmFsdWVWYXIsIG5vZGUubmV3VmFsdWVWYXIsIHB0clZhciwKLSAgICAgICAgICAgICAgICBuZXcg
QXNzaWdubWVudCgKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIFZhcmlhYmxlUmVm
LndyYXAocHRyVmFyKSwKLSAgICAgICAgICAgICAgICAgICAgbmV3IE1ha2VQdHJFeHByZXNzaW9u
KG5vZGUub3JpZ2luLCBzaW1wbGVMSFMpLCBwdHJUeXBlKSwKLSAgICAgICAgICAgICAgICBuZXcg
QXNzaWdubWVudCgKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUub2xkVmFs
dWVSZWYoKSwKLSAgICAgICAgICAgICAgICAgICAgbmV3IERlcmVmZXJlbmNlRXhwcmVzc2lvbigK
LSAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBWYXJpYWJsZVJlZi53cmFwKHB0
clZhciksIHR5cGUsIHNpbXBsZUxIUy5hZGRyZXNzU3BhY2UpLAotICAgICAgICAgICAgICAgICAg
ICB0eXBlKSwKLSAgICAgICAgICAgICAgICBuZXcgQXNzaWdubWVudChub2RlLm9yaWdpbiwgbm9k
ZS5uZXdWYWx1ZVJlZigpLCBub2RlLm5ld1ZhbHVlRXhwLCB0eXBlKSwKLSAgICAgICAgICAgICAg
ICBuZXcgQXNzaWdubWVudCgKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sCi0gICAg
ICAgICAgICAgICAgICAgIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24oCi0gICAgICAgICAgICAg
ICAgICAgICAgICBub2RlLm9yaWdpbiwgVmFyaWFibGVSZWYud3JhcChwdHJWYXIpLCB0eXBlLCBz
aW1wbGVMSFMuYWRkcmVzc1NwYWNlKSwKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5uZXdWYWx1
ZVJlZigpLCB0eXBlKSwKLSAgICAgICAgICAgICAgICBub2RlLnJlc3VsdEV4cAotICAgICAgICAg
ICAgXSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24obm9kZS5vcmlnaW4s
IG5vZGUubFZhbHVlLmJhc2UsIG5vZGUubFZhbHVlLmJhc2VUeXBlKTsKLSAgICAgICAgcmVzdWx0
Lm5ld1ZhbHVlRXhwID0gbmV3IENvbW1hRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgWwotICAgICAg
ICAgICAgbm9kZS5vbGRWYWx1ZVZhciwgbm9kZS5uZXdWYWx1ZVZhciwKLSAgICAgICAgICAgIG5l
dyBBc3NpZ25tZW50KG5vZGUub3JpZ2luLCBub2RlLm9sZFZhbHVlUmVmKCksIG5vZGUubFZhbHVl
LmVtaXRHZXQocmVzdWx0Lm9sZFZhbHVlUmVmKCkpLCB0eXBlKSwKLSAgICAgICAgICAgIG5ldyBB
c3NpZ25tZW50KG5vZGUub3JpZ2luLCBub2RlLm5ld1ZhbHVlUmVmKCksIG5vZGUubmV3VmFsdWVF
eHAsIHR5cGUpLAotICAgICAgICAgICAgbm9kZS5sVmFsdWUuZW1pdFNldChyZXN1bHQub2xkVmFs
dWVSZWYoKSwgbm9kZS5uZXdWYWx1ZVJlZigpKQotICAgICAgICBdKTsKLSAgICAgICAgcmVzdWx0
LnJlc3VsdEV4cCA9IG5vZGUubmV3VmFsdWVSZWYoKTsKLSAgICAgICAgdGhpcy5faGFuZGxlUmVh
ZE1vZGlmeVdyaXRlKHJlc3VsdCk7Ci0gICAgICAgIG5vZGUuYmVjb21lKHJlc3VsdCk7Ci0gICAg
fQotICAgIAotICAgIHZpc2l0UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbihub2RlKQotICAgIHsK
LSAgICAgICAgbm9kZS5uZXdWYWx1ZUV4cC52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5yZXN1
bHRFeHAudmlzaXQodGhpcyk7Ci0gICAgICAgIHRoaXMuX3Zpc2l0UlZhbHVlc1dpdGhpbkxWYWx1
ZShub2RlLmxWYWx1ZSk7Ci0gICAgICAgIHRoaXMuX2hhbmRsZVJlYWRNb2RpZnlXcml0ZShub2Rl
KTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCi0gICAgewotICAgICAg
ICB0aGlzLl92aXNpdFJWYWx1ZXNXaXRoaW5MVmFsdWUobm9kZS5saHMpOwotICAgICAgICBub2Rl
LnJocy52aXNpdCh0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBzaW1wbGVMSFMgPSBub2Rl
Lmxocy52aXNpdChuZXcgTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlcigpKTsKLSAgICAgICAgaWYg
KHNpbXBsZUxIUy5pc0xWYWx1ZSkgewotICAgICAgICAgICAgbm9kZS5saHMuYmVjb21lKHNpbXBs
ZUxIUyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IGlmICghKG5vZGUubGhzIGluc3RhbmNlb2YgUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKSkKLSAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBsaHMgdHlwZTogIiArIG5vZGUu
bGhzLmNvbnN0cnVjdG9yLm5hbWUpOwotICAgICAgICAKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLmxocy5iYXNlLCBu
b2RlLmxocy5iYXNlVHlwZSk7Ci0gICAgICAgIGxldCByZXN1bHRWYXIgPSBuZXcgQW5vbnltb3Vz
VmFyaWFibGUobm9kZS5vcmlnaW4sIG5vZGUudHlwZSk7Ci0gICAgICAgIHJlc3VsdC5uZXdWYWx1
ZUV4cCA9IG5ldyBDb21tYUV4cHJlc3Npb24obm9kZS5vcmlnaW4sIFsKLSAgICAgICAgICAgIHJl
c3VsdFZhciwKLSAgICAgICAgICAgIG5ldyBBc3NpZ25tZW50KG5vZGUub3JpZ2luLCBWYXJpYWJs
ZVJlZi53cmFwKHJlc3VsdFZhciksIG5vZGUucmhzLCBub2RlLnR5cGUpLAotICAgICAgICAgICAg
bm9kZS5saHMuZW1pdFNldChyZXN1bHQub2xkVmFsdWVSZWYoKSwgVmFyaWFibGVSZWYud3JhcChy
ZXN1bHRWYXIpKQotICAgICAgICBdKTsKLSAgICAgICAgcmVzdWx0LnJlc3VsdEV4cCA9IFZhcmlh
YmxlUmVmLndyYXAocmVzdWx0VmFyKTsKLSAgICAgICAgdGhpcy5faGFuZGxlUmVhZE1vZGlmeVdy
aXRlKHJlc3VsdCk7Ci0gICAgICAgIG5vZGUuYmVjb21lKHJlc3VsdCk7Ci0gICAgfQotICAgIAot
ICAgIHZpc2l0TWFrZVB0ckV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnZp
c2l0TWFrZVB0ckV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgIGlmICghbm9kZS5sVmFsdWUuaXNM
VmFsdWUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJOb3QgYW4gbHZhbHVlOiAiICsgbm9kZS5sVmFsdWUpOwotICAgICAgICBpZiAo
bm9kZS5sVmFsdWUudW5pZnlOb2RlIGluc3RhbmNlb2YgRGVyZWZlcmVuY2VFeHByZXNzaW9uKQot
ICAgICAgICAgICAgbm9kZS5iZWNvbWUobmV3IElkZW50aXR5RXhwcmVzc2lvbihub2RlLmxWYWx1
ZS51bmlmeU5vZGUucHRyKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TWFrZUFycmF5UmVmRXhw
cmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXRNYWtlQXJyYXlSZWZFeHBy
ZXNzaW9uKG5vZGUpOwotICAgICAgICBpZiAoIW5vZGUubFZhbHVlLmlzTFZhbHVlKQotICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTm90
IGFuIGx2YWx1ZTogIiArIG5vZGUubFZhbHVlKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1B0clR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QdHJUeXBlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
ZTgxN2I1NjMzYi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHRyVHlwZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3Mg
UHRyVHlwZSBleHRlbmRzIFJlZmVyZW5jZVR5cGUgewotICAgIGdldCBpc1B0cigpIHsgcmV0dXJu
IHRydWU7IH0KLSAgICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikK
LSAgICB7Ci0gICAgICAgIGlmICghb3RoZXIuaXNQdHIpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGlmICh0aGlzLmFkZHJlc3NTcGFjZSAhPSBvdGhlci5hZGRyZXNzU3BhY2Up
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRU
eXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIuZWxlbWVudFR5cGUpOwotICAgIH0K
LSAgICAKLSAgICBhcmd1bWVudEZvckFuZE92ZXJsb2FkKG9yaWdpbiwgdmFsdWUpCi0gICAgewot
ICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiUG9pbnRl
ciBzdWJzY3JpcHQgaXMgbm90IHZhbGlkIik7Ci0gICAgfQotICAgIGFyZ3VtZW50VHlwZUZvckFu
ZE92ZXJsb2FkKG9yaWdpbiwgdHlwZSkKLSAgICB7Ci0gICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJQb2ludGVyIHN1YnNjcmlwdCBpcyBub3QgdmFsaWQi
KTsKLSAgICB9Ci0gICAgcmV0dXJuVHlwZUZyb21BbmRPdmVybG9hZChvcmlnaW4pCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZTsKLSAgICB9Ci0KLSAgICB0b1N0cmluZygp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZSArICIqICIgKyB0aGlzLmFk
ZHJlc3NTcGFjZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1JlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3MWI2MmI3MzUyMi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUmVhZE1vZGlmeVdyaXRlRXhwcmVz
c2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbFZhbHVl
LCB0eXBlID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgIHRo
aXMuX2xWYWx1ZSA9IGxWYWx1ZTsKLSAgICAgICAgdGhpcy5vbGRWYWx1ZVZhciA9IG5ldyBBbm9u
eW1vdXNWYXJpYWJsZShvcmlnaW4sIHR5cGUpOwotICAgICAgICB0aGlzLm5ld1ZhbHVlVmFyID0g
bmV3IEFub255bW91c1ZhcmlhYmxlKG9yaWdpbiwgdHlwZSk7Ci0gICAgICAgIHRoaXMubmV3VmFs
dWVFeHAgPSBudWxsOwotICAgICAgICB0aGlzLnJlc3VsdEV4cCA9IG51bGw7Ci0gICAgfQotICAg
IAotICAgIGdldCBsVmFsdWUoKSB7IHJldHVybiB0aGlzLl9sVmFsdWU7IH0KLSAgICAKLSAgICBv
bGRWYWx1ZVJlZigpIHsgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAodGhpcy5vbGRWYWx1ZVZhcik7
IH0KLSAgICBuZXdWYWx1ZVJlZigpIHsgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAodGhpcy5uZXdW
YWx1ZVZhcik7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4g
IlJNVygiICsgdGhpcy5sVmFsdWUgKyAiLCAiICsgdGhpcy5vbGRWYWx1ZVZhciArICIsICIgKyB0
aGlzLm5ld1ZhbHVlVmFyICsgIiwgIiArIHRoaXMubmV3VmFsdWVFeHAgKyAiLCAiICsgdGhpcy5y
ZXN1bHRFeHAgKyAiKSI7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZWN1cnNpb25DaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUmVjdXJzaW9uQ2hlY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTk4MWRmYmY1MzEuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1JlY3Vyc2lvbkNoZWNrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmlj
dCI7Ci0KLWNsYXNzIFJlY3Vyc2lvbkNoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBjb25z
dHJ1Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl92aXNpdGlu
ZyA9IG5ldyBWaXNpdGluZ1NldCgpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEZ1bmNEZWYobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQobm9kZSwgKCkgPT4gc3Vw
ZXIudmlzaXRGdW5jRGVmKG5vZGUpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDYWxsRXhwcmVz
c2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5mdW5jLnZpc2l0KHRoaXMpOwotICAgIH0K
LX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JlY3Vyc2l2ZVR5
cGVDaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVjdXJzaXZlVHlw
ZUNoZWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxZjc2NzQyZjYwLi4w
MDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZWN1cnNpdmVU
eXBlQ2hlY2tlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3Mg
UmVjdXJzaXZlVHlwZUNoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBjb25zdHJ1Y3Rvcigp
Ci0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl92aXNpdGluZyA9IG5ldyBW
aXNpdGluZ1NldCgpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEZ1bmNEZWYobm9kZSkKLSAgICB7
Ci0gICAgfQotICAgIAotICAgIHZpc2l0TmF0aXZlRnVuYyhub2RlKQotICAgIHsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl92aXNp
dGluZy5kb1Zpc2l0KG5vZGUsICgpID0+IHN1cGVyLnZpc2l0U3RydWN0VHlwZShub2RlKSk7Ci0g
ICAgfQotICAgIAotICAgIHZpc2l0UmVmZXJlbmNlVHlwZShub2RlKQotICAgIHsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewotICAgICAgICBzdXBlci52aXNpdFR5
cGVSZWYobm9kZSk7Ci0gICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICB9Ci19Ci0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JlZmVyZW5jZVR5cGUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZWZlcmVuY2VUeXBlLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGExNzY0OTYxNy4uMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVmZXJlbmNlVHlwZS5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUmVmZXJlbmNlVHlwZSBleHRlbmRzIFR5
cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgYWRkcmVzc1NwYWNlLCBlbGVtZW50VHlwZSkK
LSAgICB7Ci0gICAgICAgIGlmICghZWxlbWVudFR5cGUpCi0gICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIk51bGwgZWxlbWVudFR5cGUiKTsKLSAgICAgICAgaWYgKCFvcmlnaW4pCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgb3JpZ2luIik7Ci0gICAgICAgIHN1cGVyKCk7Ci0g
ICAgICAgIHZhbGlkYXRlQWRkcmVzc1NwYWNlKGFkZHJlc3NTcGFjZSk7Ci0gICAgICAgIHRoaXMu
X29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5fYWRkcmVzc1NwYWNlID0gYWRkcmVzc1Nw
YWNlOwotICAgICAgICB0aGlzLl9lbGVtZW50VHlwZSA9IGVsZW1lbnRUeXBlOwotICAgIH0KLSAg
ICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IGFk
ZHJlc3NTcGFjZSgpIHsgcmV0dXJuIHRoaXMuX2FkZHJlc3NTcGFjZTsgfQotICAgIGdldCBlbGVt
ZW50VHlwZSgpIHsgcmV0dXJuIHRoaXMuX2VsZW1lbnRUeXBlOyB9Ci0KLSAgICBnZXQgc2l6ZSgp
IHsgcmV0dXJuIDE7IH0KLQotICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0
KQotICAgIHsKLSAgICAgICAgYnVmZmVyLnNldChvZmZzZXQsIG51bGwpOwotICAgIH0KLX0KLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOGI1MzM0MjQ1OS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotInVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBjcmVhdGVOYW1lUmVzb2x2ZXIocHJvZ3Jh
bSkKLXsKLSAgICByZXR1cm4gbmV3IE5hbWVSZXNvbHZlcihwcm9ncmFtLmdsb2JhbE5hbWVDb250
ZXh0KTsKLX0KLQotZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVz
b2x2ZXIpCi17Ci0gICAgZm9yIChsZXQgdHlwZSBvZiBwcm9ncmFtLnR5cGVzLnZhbHVlcygpKSB7
Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICAgICAgICAgIGZvciAo
bGV0IGNvbnN0aXR1ZW50VHlwZSBvZiB0eXBlKQotICAgICAgICAgICAgICAgIG5hbWVSZXNvbHZl
ci5kb1N0YXRlbWVudChjb25zdGl0dWVudFR5cGUpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIG5hbWVSZXNvbHZlci5kb1N0YXRlbWVudCh0eXBlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IHJlc29sdmVOYW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKLXsKLSAgICBm
b3IgKGxldCBmdW5jcyBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewotICAgICAgICBm
b3IgKGxldCBmdW5jIG9mIGZ1bmNzKQotICAgICAgICAgICAgbmFtZVJlc29sdmVyLmRvU3RhdGVt
ZW50KGZ1bmMpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdhMDk3YmNhNDcwLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ug
c3RyaWN0IjsKLQotZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQotewotICAgIGlm
ICghZnVuY3Rpb25zKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgZnVuY3Rpb25zOyB0
aGF0IHNob3VsZCBoYXZlIGJlZW4gY2F1Z2h0IGJ5IHRoZSBjYWxsZXIuIik7Ci0gICAgCi0gICAg
bGV0IGZhaWx1cmVzID0gW107Ci0gICAgbGV0IHN1Y2Nlc3NlcyA9IFtdOwotICAgIGZvciAobGV0
IGZ1bmMgb2YgZnVuY3Rpb25zKSB7Ci0gICAgICAgIGlmICghYWxsb3dFbnRyeVBvaW50ICYmIGZ1
bmMuc2hhZGVyVHlwZSkgewotICAgICAgICAgICAgZmFpbHVyZXMucHVzaChuZXcgT3ZlcmxvYWRS
ZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiRnVuY3Rpb24gaXMgYSAiICsgZnVuYy5zaGFkZXJUeXBl
ICsgIiBzaGFkZXIsIHNvIGl0IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYW4gZXhpc3Rp
bmcgc2hhZGVyLiIpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAg
bGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgYXJndW1lbnRUeXBlcywgcmV0
dXJuVHlwZSk7Ci0gICAgICAgIGlmIChvdmVybG9hZC5mYWlsdXJlKQotICAgICAgICAgICAgZmFp
bHVyZXMucHVzaChvdmVybG9hZC5mYWlsdXJlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
c3VjY2Vzc2VzLnB1c2gob3ZlcmxvYWQpOwotICAgIH0KLSAgICAKLSAgICBpZiAoIXN1Y2Nlc3Nl
cy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IGZhaWx1cmVzfTsKLSAgICAKLSAg
ICBsZXQgbWluaW11bUNvbnZlcnNpb25Db3N0ID0gc3VjY2Vzc2VzLnJlZHVjZSgKLSAgICAgICAg
KHJlc3VsdCwgb3ZlcmxvYWQpID0+IE1hdGgubWluKHJlc3VsdCwgb3ZlcmxvYWQudW5pZmljYXRp
b25Db250ZXh0LmNvbnZlcnNpb25Db3N0KSwKLSAgICAgICAgSW5maW5pdHkpOwotICAgIHN1Y2Nl
c3NlcyA9IHN1Y2Nlc3Nlcy5maWx0ZXIoCi0gICAgICAgIG92ZXJsb2FkID0+IG92ZXJsb2FkLnVu
aWZpY2F0aW9uQ29udGV4dC5jb252ZXJzaW9uQ29zdCA9PSBtaW5pbXVtQ29udmVyc2lvbkNvc3Qp
OwotICAgIAotICAgIC8vIElmIGFueSBvZiB0aGUgc2lnbmF0dXJlcyBhcmUgcmVzdHJpY3RlZCB0
aGVuIHdlIGNvbnNpZGVyIHRob3NlIGZpcnN0LiBUaGlzIGlzIGFuIGVzY2FwZSBtZWNoYW5pc20g
Zm9yCi0gICAgLy8gYnVpbHQtaW4gdGhpbmdzLgotICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUg
YW4gZXJyb3IgdG8gZGVjbGFyZSBhIGZ1bmN0aW9uIHRoYXQgaXMgYXQgbGVhc3QgYXMgc3BlY2lm
aWMgYXMgYSByZXN0cmljdGVkIGZ1bmN0aW9uLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1ODAKLSAgICBsZXQgaGFzUmVzdHJpY3RlZCA9IHN1Y2Nl
c3Nlcy5yZWR1Y2UoCi0gICAgICAgIChyZXN1bHQsIG92ZXJsb2FkKSA9PiByZXN1bHQgfHwgb3Zl
cmxvYWQuZnVuYy5pc1Jlc3RyaWN0ZWQsCi0gICAgICAgIGZhbHNlKTsKLSAgICBpZiAoaGFzUmVz
dHJpY3RlZCkKLSAgICAgICAgc3VjY2Vzc2VzID0gc3VjY2Vzc2VzLmZpbHRlcihvdmVybG9hZCA9
PiBvdmVybG9hZC5mdW5jLmlzUmVzdHJpY3RlZCk7Ci0gICAgCi0gICAgLy8gV2UgYXJlIG9ubHkg
aW50ZXJlc3RlZCBpbiBmdW5jdGlvbnMgdGhhdCBhcmUgYXQgbGVhc3QgYXMgc3BlY2lmaWMgYXMg
YWxsIG9mIHRoZSBvdGhlcnMuIFRoaXMgbWVhbnMKLSAgICAvLyB0aGF0IHRoZXkgY2FuIGJlICJ0
dXJuZWQgYXJvdW5kIiBhbmQgYXBwbGllZCBvbnRvIGFsbCBvZiB0aGUgb3RoZXIgZnVuY3Rpb25z
IGluIHRoZSBsaXN0LgotICAgIGxldCBwcnVuZWRTdWNjZXNzZXMgPSBbXTsKLSAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHN1Y2Nlc3Nlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBsZXQgb2sgPSB0
cnVlOwotICAgICAgICBsZXQgYXJndW1lbnRGdW5jID0gc3VjY2Vzc2VzW2ldLmZ1bmM7Ci0gICAg
ICAgIGZvciAobGV0IGogPSAwOyBqIDwgc3VjY2Vzc2VzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAg
ICAgICBpZiAoaSA9PSBqKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
bGV0IHBhcmFtZXRlckZ1bmMgPSBzdWNjZXNzZXNbal0uZnVuYzsKLSAgICAgICAgICAgIGxldCBv
dmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKAotICAgICAgICAgICAgICAgIHBhcmFtZXRlckZ1
bmMsCi0gICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnBhcmFtZXRlclR5cGVzLAotICAgICAg
ICAgICAgICAgIGFyZ3VtZW50RnVuYy5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsK
LSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewotICAgICAgICAgICAgICAgIG9rID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKG9rKQotICAgICAgICAgICAgcHJ1bmVkU3VjY2Vzc2VzLnB1c2goc3VjY2Vz
c2VzW2ldKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBydW5lZFN1Y2Nlc3Nlcy5sZW5ndGggPT0g
MSkKLSAgICAgICAgcmV0dXJuIHBydW5lZFN1Y2Nlc3Nlc1swXTsKLSAgICAKLSAgICBsZXQgYW1i
aWd1aXR5TGlzdDsKLSAgICBsZXQgbWVzc2FnZTsKLSAgICBpZiAocHJ1bmVkU3VjY2Vzc2VzLmxl
bmd0aCA9PSAwKSB7Ci0gICAgICAgIGFtYmlndWl0eUxpc3QgPSBzdWNjZXNzZXM7Ci0gICAgICAg
IG1lc3NhZ2UgPSAiQW1iaWd1b3VzIG92ZXJsb2FkIC0gbm8gZnVuY3Rpb24gY2FuIGJlIGFwcGxp
ZWQgdG8gYWxsIG90aGVycyI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYW1iaWd1aXR5TGlzdCA9
IHBydW5lZFN1Y2Nlc3NlczsKLSAgICAgICAgbWVzc2FnZSA9ICJBbWJpZ3VvdXMgb3ZlcmxvYWQg
LSBmdW5jdGlvbnMgbXV0dWFsbHkgYXBwbGljYWJsZSI7Ci0gICAgfQotICAgIAotICAgIHJldHVy
biB7ZmFpbHVyZXM6IGFtYmlndWl0eUxpc3QubWFwKG92ZXJsb2FkID0+IG5ldyBPdmVybG9hZFJl
c29sdXRpb25GYWlsdXJlKG92ZXJsb2FkLmZ1bmMsIG1lc3NhZ2UpKX07Ci19Ci0KLWZ1bmN0aW9u
IHJlc29sdmVUeXBlT3ZlcmxvYWRJbXBsKHR5cGVzLCB0eXBlQXJndW1lbnRzKQotewotICAgIGlm
ICghdHlwZXMpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCB0eXBlczsgdGhhdCBzaG91
bGQgaGF2ZSBiZWVuIGNhdWdodCBieSB0aGUgY2FsbGVyLiIpOwotCi0gICAgbGV0IGZhaWx1cmVz
ID0gW107Ci0gICAgbGV0IHN1Y2Nlc3NlcyA9IFtdOwotICAgIGZvciAobGV0IHR5cGUgb2YgdHlw
ZXMpIHsKLSAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvclR5cGVBcmd1bWVudHMo
dHlwZSwgdHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgIGlmIChvdmVybG9hZC5mYWlsdXJlKQotICAg
ICAgICAgICAgZmFpbHVyZXMucHVzaChvdmVybG9hZC5mYWlsdXJlKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgc3VjY2Vzc2VzLnB1c2gob3ZlcmxvYWQpOwotICAgIH0KLSAgICAKLSAgICBp
ZiAoIXN1Y2Nlc3Nlcy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IGZhaWx1cmVz
fTsKLSAgICAKLSAgICBpZiAoc3VjY2Vzc2VzLmxlbmd0aCA9PSAxKQotICAgICAgICByZXR1cm4g
c3VjY2Vzc2VzWzBdOwotICAgIAotICAgIGxldCBtZXNzYWdlID0gIkFtYmlndW91cyBvdmVybG9h
ZCAtIHR5cGVzIG11dHVhbGx5IGFwcGxpY2FibGUiOwotICAgIHJldHVybiB7ZmFpbHVyZXM6IHN1
Y2Nlc3Nlcy5tYXAob3ZlcmxvYWQgPT4gbmV3IFR5cGVPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
KG92ZXJsb2FkLnR5cGUsIG1lc3NhZ2UpKX07Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlUHJvcGVydGllcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jlc29sdmVQcm9wZXJ0aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3YzZhOGU2ZjNlNi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUmVzb2x2ZVByb3BlcnRpZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLS8vIFRoaXMgdHVybnMgRG90RXhwcmVzc2lvbiBhbmQgSW5kZXhFeHByZXNz
aW9uIGludG8gY2FsbHMgdG8gZ2V0dGVycyAob3BlcmF0b3IuZmllbGQgYW5kIG9wZXJhdG9yW10p
LAotLy8gc2V0dGVycyAob3BlcmF0b3IuZmllbGQ9IGFuZCBvcGVyYXRvcltdPSksIGFuZCBhbmRl
cnMgKG9wZXJhdG9yJi5maWVsZCBhbmQgb3BlcmF0b3ImW10pLiBUaGlzIGludm9sdmVzCi0vLyB0
cmFuc2Zvcm1pbmcgYXNzaWdubWVudHMgYW5kIFJNVydzIHRvIGRvIGx2YWx1ZSBlbXVsYXRpb24u
Ci1mdW5jdGlvbiByZXNvbHZlUHJvcGVydGllcyhwcm9ncmFtKQotewotICAgIHByb2dyYW0udmlz
aXQobmV3IFByb3BlcnR5UmVzb2x2ZXIoKSk7Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA1NzRiZWNkNTUzLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmlj
dCI7Ci0KLWZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSkKLXsKLSAgICBs
ZXQgcmVzb2x2ZXIgPSBuZXcgVHlwZURlZlJlc29sdmVyKCk7Ci0gICAgZm9yIChsZXQgdHlwZSBv
ZiBwcm9ncmFtLnR5cGVzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2Yg
QXJyYXkpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGNvbnN0aXR1ZW50VHlwZSBvZiB0eXBlKQot
ICAgICAgICAgICAgICAgIGNvbnN0aXR1ZW50VHlwZS52aXNpdChyZXNvbHZlcik7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgdHlwZS52aXNpdChyZXNvbHZlcik7Ci0gICAgfQotfQotCi1m
dW5jdGlvbiByZXNvbHZlVHlwZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKQotewotICAgIGxldCBy
ZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2ZXIoKTsKLSAgICBmb3IgKGxldCBmdW5jcyBvZiBw
cm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewotICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1
bmNzKQotICAgICAgICAgICAgZnVuYy52aXNpdChyZXNvbHZlcik7Ci0gICAgfQotfQotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvdXJjZVNlbWFudGljLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb3VyY2VTZW1hbnRpYy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlhMjhhM2NhZDIuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc291cmNlU2VtYW50aWMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUmVzb3VyY2VTZW1hbnRpYyBleHRl
bmRzIFNlbWFudGljIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIHJlc291cmNlTW9kZSwgaW5k
ZXgsIHNwYWNlKQotICAgIHsKLSAgICAgICAgIHN1cGVyKG9yaWdpbik7Ci0gICAgICAgICB0aGlz
Ll9yZXNvdXJjZU1vZGUgPSByZXNvdXJjZU1vZGU7Ci0gICAgICAgICB0aGlzLl9pbmRleCA9IGlu
ZGV4OwotICAgICAgICAgdGhpcy5fc3BhY2UgPSBzcGFjZTsKLSAgICB9Ci0KLSAgICBnZXQgcmVz
b3VyY2VNb2RlKCkgeyByZXR1cm4gdGhpcy5fcmVzb3VyY2VNb2RlOyB9Ci0gICAgZ2V0IGluZGV4
KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KLSAgICBnZXQgc3BhY2UoKSB7IHJldHVybiB0aGlz
Ll9zcGFjZTsgfQotCi0gICAgaXNBY2NlcHRhYmxlVHlwZSh0eXBlLCBwcm9ncmFtKQotICAgIHsK
LSAgICAgICAgc3dpdGNoICh0aGlzLnJlc291cmNlTW9kZSkgewotICAgICAgICBjYXNlICJiIjoK
LSAgICAgICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgUmVmZXJlbmNlVHlwZSkgewotICAgICAg
ICAgICAgICAgIHJldHVybiB0eXBlLmFkZHJlc3NTcGFjZSA9PSAiY29uc3RhbnQiOwotICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUgaW5zdGFuY2VvZiBBcnJh
eVR5cGU7Ci0gICAgICAgIGNhc2UgInUiOgotICAgICAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2Vv
ZiBSZWZlcmVuY2VUeXBlKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUuYWRkcmVzc1Nw
YWNlID09ICJjb25zdGFudCIgfHwgdHlwZS5hZGRyZXNzU3BhY2UgPT0gImRldmljZSI7Ci0gICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZS5pc1RleHR1cmUgfHwg
dHlwZSBpbnN0YW5jZW9mIEFycmF5VHlwZTsKLSAgICAgICAgY2FzZSAidCI6Ci0gICAgICAgICAg
ICBpZiAodHlwZSBpbnN0YW5jZW9mIFJlZmVyZW5jZVR5cGUpIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHlwZS5hZGRyZXNzU3BhY2UgPT0gImNvbnN0YW50IjsKLSAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLmlzVGV4dHVyZSB8fCB0eXBlIGluc3RhbmNl
b2YgQXJyYXlUeXBlOwotICAgICAgICBjYXNlICJzIjoKLSAgICAgICAgICAgIHJldHVybiB0eXBl
LmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlcik7Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVzb3VyY2UgbW9kZTogJHt0aGlz
LnJlc291cmNlTW9kZX1gKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlzQWNjZXB0YWJsZUZv
clNoYWRlclR5cGUoZGlyZWN0aW9uLCBzaGFkZXJUeXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGRpcmVjdGlvbiA9PSAiaW5wdXQiOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBgcmVnaXN0ZXIoJHt0aGlzLnJlc291cmNlTW9kZX0ke3RoaXMuaW5kZXh9
LCBzcGFjZSR7dGhpcy5zcGFjZX0pYDsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JldHVybi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1JldHVybi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVlYjNkZWIy
NmIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1JldHVy
bi5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUmV0dXJuIGV4
dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCB2YWx1ZSkKLSAgICB7Ci0gICAg
ICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhp
cy5fdmFsdWUgPSB2YWx1ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJu
IHRoaXMuX29yaWdpbjsgfQotICAgIGdldCB2YWx1ZSgpIHsgcmV0dXJuIHRoaXMuX3ZhbHVlOyB9
Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMudmFsdWUpCi0g
ICAgICAgICAgICByZXR1cm4gInJldHVybiAiICsgdGhpcy52YWx1ZTsKLSAgICAgICAgcmV0dXJu
ICJyZXR1cm4iOwotICAgIH0KLX07Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1JldHVybkNoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9SZXR1cm5DaGVja2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTAxNTgy
ZTFmMC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV0
dXJuQ2hlY2tlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE5MSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNz
IFJldHVybkNoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFt
KQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5yZXR1cm5TdHlsZSA9IHsK
LSAgICAgICAgICAgIERlZmluaXRlbHlSZXR1cm5zOiAiRGVmaW5pdGVseSBSZXR1cm5zIiwKLSAg
ICAgICAgICAgIERlZmluaXRlbHlEb2VzbnRSZXR1cm46ICJEZWZpbml0ZWx5IERvZXNuJ3QgUmV0
dXJuIiwKLSAgICAgICAgICAgIEhhc250UmV0dXJuZWRZZXQ6ICJIYXNuJ3QgUmV0dXJuZWQgWWV0
IgotICAgICAgICB9OwotICAgICAgICB0aGlzLl9wcm9ncmFtID0gcHJvZ3JhbTsKLSAgICB9Ci0g
ICAgCi0gICAgX21lcmdlUmV0dXJuU3R5bGUoYSwgYikKLSAgICB7Ci0gICAgICAgIGlmICghYSkK
LSAgICAgICAgICAgIHJldHVybiBiOwotICAgICAgICBpZiAoIWIpCi0gICAgICAgICAgICByZXR1
cm4gYTsKLSAgICAgICAgc3dpdGNoIChhKSB7Ci0gICAgICAgIGNhc2UgdGhpcy5yZXR1cm5TdHls
ZS5EZWZpbml0ZWx5UmV0dXJuczoKLSAgICAgICAgY2FzZSB0aGlzLnJldHVyblN0eWxlLkRlZmlu
aXRlbHlEb2VzbnRSZXR1cm46Ci0gICAgICAgICAgICBpZiAoYSA9PSBiKQotICAgICAgICAgICAg
ICAgIHJldHVybiBhOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuU3R5bGUuSGFzbnRS
ZXR1cm5lZFlldDsKLSAgICAgICAgY2FzZSB0aGlzLnJldHVyblN0eWxlLkhhc250UmV0dXJuZWRZ
ZXQ6Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5TdHlsZS5IYXNudFJldHVybmVkWWV0
OwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcmV0
dXJuIHN0eWxlOiAiICsgYSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2aXNpdEZ1bmNEZWYo
bm9kZSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlLnJldHVyblR5cGUuZXF1YWxzKG5vZGUucHJv
Z3JhbS5pbnRyaW5zaWNzLnZvaWQpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAg
ICAgICAgbGV0IGJvZHlWYWx1ZSA9IG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgaWYg
KGJvZHlWYWx1ZSA9PSB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlEb2VzbnRSZXR1cm4gfHwg
Ym9keVZhbHVlID09IHRoaXMucmV0dXJuU3R5bGUuSGFzbnRSZXR1cm5lZFlldCkKLSAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkZ1bmN0
aW9uIGRvZXMgbm90IHJldHVybiIpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEJsb2NrKG5vZGUp
Ci0gICAgewotICAgICAgICBmb3IgKGxldCBzdGF0ZW1lbnQgb2Ygbm9kZS5zdGF0ZW1lbnRzKSB7
Ci0gICAgICAgICAgICBzd2l0Y2ggKHN0YXRlbWVudC52aXNpdCh0aGlzKSkgewotICAgICAgICAg
ICAgY2FzZSB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlSZXR1cm5zOgotICAgICAgICAgICAg
ICAgIHJldHVybiB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlSZXR1cm5zOwotICAgICAgICAg
ICAgY2FzZSB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlEb2VzbnRSZXR1cm46Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuU3R5bGUuRGVmaW5pdGVseURvZXNudFJldHVybjsK
LSAgICAgICAgICAgIGNhc2UgdGhpcy5yZXR1cm5TdHlsZS5IYXNudFJldHVybmVkWWV0OgotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0aGlzLnJldHVyblN0eWxlLkhhc250UmV0dXJuZWRZZXQ7Ci0gICAgfQotCi0gICAg
dmlzaXRJZlN0YXRlbWVudChub2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUuZWxzZUJvZHkp
IHsKLSAgICAgICAgICAgIGxldCBib2R5VmFsdWUgPSBub2RlLmJvZHkudmlzaXQodGhpcyk7Ci0g
ICAgICAgICAgICBsZXQgZWxzZVZhbHVlID0gbm9kZS5lbHNlQm9keS52aXNpdCh0aGlzKTsKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9tZXJnZVJldHVyblN0eWxlKGJvZHlWYWx1ZSwgZWxzZVZh
bHVlKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5TdHlsZS5IYXNudFJl
dHVybmVkWWV0OwotICAgIH0KLQotICAgIF9pc0Jvb2xDYXN0RnJvbUxpdGVyYWxUcnVlKG5vZGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gbm9kZS5pc0Nhc3QgJiYgbm9kZS5yZXR1cm5UeXBlIGlu
c3RhbmNlb2YgVHlwZVJlZiAmJiBub2RlLnJldHVyblR5cGUuZXF1YWxzKHRoaXMuX3Byb2dyYW0u
aW50cmluc2ljcy5ib29sKSAmJiBub2RlLmFyZ3VtZW50TGlzdC5sZW5ndGggPT0gMSAmJiBub2Rl
LmFyZ3VtZW50TGlzdFswXSBpbnN0YW5jZW9mIEJvb2xMaXRlcmFsICYmIG5vZGUuYXJndW1lbnRM
aXN0WzBdLnZhbHVlOwotICAgIH0KLQotICAgIHZpc2l0V2hpbGVMb29wKG5vZGUpCi0gICAgewot
ICAgICAgICBsZXQgYm9keVJldHVybiA9IG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAg
aWYgKG5vZGUuY29uZGl0aW9uYWwgaW5zdGFuY2VvZiBDYWxsRXhwcmVzc2lvbiAmJiB0aGlzLl9p
c0Jvb2xDYXN0RnJvbUxpdGVyYWxUcnVlKG5vZGUuY29uZGl0aW9uYWwpKSB7Ci0gICAgICAgICAg
ICBzd2l0Y2ggKGJvZHlSZXR1cm4pIHsKLSAgICAgICAgICAgIGNhc2UgdGhpcy5yZXR1cm5TdHls
ZS5EZWZpbml0ZWx5UmV0dXJuczoKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5T
dHlsZS5EZWZpbml0ZWx5UmV0dXJuczsKLSAgICAgICAgICAgIGNhc2UgdGhpcy5yZXR1cm5TdHls
ZS5EZWZpbml0ZWx5RG9lc250UmV0dXJuOgotICAgICAgICAgICAgY2FzZSB0aGlzLnJldHVyblN0
eWxlLkhhc250UmV0dXJuZWRZZXQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJu
U3R5bGUuSGFzbnRSZXR1cm5lZFlldDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gdGhpcy5yZXR1cm5TdHlsZS5IYXNudFJldHVybmVkWWV0OwotICAgIH0KLQotICAg
IHZpc2l0RG9XaGlsZUxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlz
LnJldHVyblN0eWxlLkhhc250UmV0dXJuZWRZZXQ7Ci0gICAgICAgIHN3aXRjaCAobm9kZS5ib2R5
LnZpc2l0KHRoaXMpKSB7Ci0gICAgICAgIGNhc2UgdGhpcy5yZXR1cm5TdHlsZS5EZWZpbml0ZWx5
UmV0dXJuczoKLSAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMucmV0dXJuU3R5bGUuRGVmaW5pdGVs
eVJldHVybnM7Ci0gICAgICAgIGNhc2UgdGhpcy5yZXR1cm5TdHlsZS5EZWZpbml0ZWx5RG9lc250
UmV0dXJuOgotICAgICAgICBjYXNlIHRoaXMucmV0dXJuU3R5bGUuSGFzbnRSZXR1cm5lZFlldDoK
LSAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMucmV0dXJuU3R5bGUuSGFzbnRSZXR1cm5lZFlldDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0Rm9y
TG9vcChub2RlKQotICAgIHsKLSAgICAgICAgbGV0IGJvZHlSZXR1cm4gPSBub2RlLmJvZHkudmlz
aXQodGhpcyk7Ci0gICAgICAgIGlmIChub2RlLmNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkIHx8IHRo
aXMuX2lzQm9vbENhc3RGcm9tTGl0ZXJhbFRydWUobm9kZS5jb25kaXRpb24pKSB7Ci0gICAgICAg
ICAgICBzd2l0Y2ggKGJvZHlSZXR1cm4pIHsKLSAgICAgICAgICAgIGNhc2UgdGhpcy5yZXR1cm5T
dHlsZS5EZWZpbml0ZWx5UmV0dXJuczoKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1
cm5TdHlsZS5EZWZpbml0ZWx5UmV0dXJuczsKLSAgICAgICAgICAgIGNhc2UgdGhpcy5yZXR1cm5T
dHlsZS5EZWZpbml0ZWx5RG9lc250UmV0dXJuOgotICAgICAgICAgICAgY2FzZSB0aGlzLnJldHVy
blN0eWxlLkhhc250UmV0dXJuZWRZZXQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0
dXJuU3R5bGUuSGFzbnRSZXR1cm5lZFlldDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
IH0KLSAgICAKLSAgICB2aXNpdFN3aXRjaFN0YXRlbWVudChub2RlKQotICAgIHsKLSAgICAgICAg
Ly8gRklYTUU6IFRoaXMgc2VlbXMgbGlrZSBpdCdzIG1pc3NpbmcgdGhpbmdzLiBGb3IgZXhhbXBs
ZSwgd2UgbmVlZCB0byBiZSBzbWFydCBhYm91dCB0aGlzOgotICAgICAgICAvLwotICAgICAgICAv
LyBmb3IgKDs7KSB7Ci0gICAgICAgIC8vICAgICBzd2l0Y2ggKC4uLikgewotICAgICAgICAvLyAg
ICAgLi4uCi0gICAgICAgIC8vICAgICAgICAgY29udGludWU7IC8vIFRoaXMgY29udGludWVzIHRo
ZSBmb3IgbG9vcAotICAgICAgICAvLyAgICAgfQotICAgICAgICAvLyB9Ci0gICAgICAgIC8vCi0g
ICAgICAgIC8vIEknbSBub3Qgc3VyZSB3aGF0IHRoYXQgbWVhbnMgZm9yIHRoaXMgYW5hbHlzaXMu
IEknbSBzdGFydGluZyB0byB0aGluayB0aGF0IHRoZSByaWdodCB3YXkgdG8KLSAgICAgICAgLy8g
YnVpbGQgdGhpcyBhbmFseXNpcyBpcyB0byBydW4gYSB2aXNpdG9yIHRoYXQgYnVpbGRzIGEgQ0ZH
IGFuZCB0aGVuIGFuYWx5emUgdGhlIENGRy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzE3MgotICAgICAgICAKLSAgICAgICAgbGV0IHJldHVy
blN0eWxlID0gbnVsbDsKLSAgICAgICAgZm9yIChsZXQgc3dpdGNoQ2FzZSBvZiBub2RlLnN3aXRj
aENhc2VzKSB7Ci0gICAgICAgICAgICBsZXQgYm9keVN0eWxlID0gc3dpdGNoQ2FzZS5ib2R5LnZp
c2l0KHRoaXMpOwotICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBmYWN0IHRoYXQgd2UgbmVlZCB0
aGlzIGRlbW9uc3RyYXRlcyB0aGUgbmVlZCBmb3IgQ0ZHIGFuYWx5c2lzLgotICAgICAgICAgICAg
aWYgKGJvZHlTdHlsZSA9PSB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlEb2VzbnRSZXR1cm4p
Ci0gICAgICAgICAgICAgICAgYm9keVN0eWxlID0gdGhpcy5yZXR1cm5TdHlsZS5IYXNudFJldHVy
bmVkWWV0OwotICAgICAgICAgICAgcmV0dXJuU3R5bGUgPSB0aGlzLl9tZXJnZVJldHVyblN0eWxl
KHJldHVyblN0eWxlLCBib2R5U3R5bGUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXR1
cm5TdHlsZTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRSZXR1cm4obm9kZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlSZXR1cm5zOwotICAgIH0KLSAg
ICAKLSAgICB2aXNpdFRyYXBTdGF0ZW1lbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLnJldHVyblN0eWxlLkRlZmluaXRlbHlSZXR1cm5zOwotICAgIH0KLQotICAgIHZpc2l0QnJl
YWsobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnJldHVyblN0eWxlLkRlZmluaXRl
bHlEb2VzbnRSZXR1cm47Ci0gICAgfQotCi0gICAgdmlzaXRDb250aW51ZShub2RlKQotICAgIHsK
LSAgICAgICAgLy8gRklYTUU6IFRoaXMgc2VlbXMgd3JvbmcuIENvbnNpZGVyIGEgbG9vcCBsaWtl
OgotICAgICAgICAvLwotICAgICAgICAvLyBpbnQgZm9vKCkgeyBmb3IgKDs7KSB7IGNvbnRpbnVl
OyB9IH0KLSAgICAgICAgLy8KLSAgICAgICAgLy8gVGhpcyBwcm9ncmFtIHNob3VsZG4ndCBjbGFp
bSB0aGF0IHRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgZG9lc24ndCByZXR1cm4uCi0gICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcxNzIKLSAgICAgICAg
cmV0dXJuIHRoaXMucmV0dXJuU3R5bGUuRGVmaW5pdGVseURvZXNudFJldHVybjsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXR1cm5FeGNlcHRp
b24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXR1cm5FeGNlcHRpb24uanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxZjA0N2NhNzkxLi4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXR1cm5FeGNlcHRpb24uanMKKysr
IC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFJldHVybkV4Y2VwdGlvbiB7
Ci0gICAgY29uc3RydWN0b3IodmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl92YWx1ZSA9IHZh
bHVlOwotICAgIH0KLSAgICAKLSAgICBnZXQgdmFsdWUoKSB7IHJldHVybiB0aGlzLl92YWx1ZTsg
fQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDhjNjk3ODhlYzYuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NDI0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUgc2Vuc2libGUgYmVo
YXZpb3Igd2hlbiBpdCBlbmNvdW50ZXJzIGRlZmluaXRpb25zIHRoYXQgaXQgY2Fubm90IGhhbmRs
ZS4gUmlnaHQKLS8vIG5vdyB3ZSBhcmUgaGFja2lzaGx5IHByZXZlbnRpbmcgdGhpcyBieSB3cmFw
cGluZyB0aGluZ3MgaW4gVHlwZVJlZi4gVGhhdCdzIHByb2JhYmx5IHdyb25nLgotLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwOAotY2xhc3MgUmV3cml0ZXIg
ewotICAgIGNvbnN0cnVjdG9yKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX21hcHBpbmcgPSBuZXcg
TWFwKCk7Ci0gICAgfQotICAgIAotICAgIF9tYXBOb2RlKG9sZEl0ZW0sIG5ld0l0ZW0pCi0gICAg
ewotICAgICAgICB0aGlzLl9tYXBwaW5nLnNldChvbGRJdGVtLCBuZXdJdGVtKTsKLSAgICAgICAg
cmV0dXJuIG5ld0l0ZW07Ci0gICAgfQotICAgIAotICAgIF9nZXRNYXBwaW5nKG9sZEl0ZW0pCi0g
ICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbWFwcGluZy5nZXQob2xkSXRlbSk7Ci0g
ICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICBy
ZXR1cm4gb2xkSXRlbTsKLSAgICB9Ci0gICAgCi0gICAgLy8gV2UgcmV0dXJuIGlkZW50aXR5IGZv
ciBhbnl0aGluZyB0aGF0IGlzIG5vdCBpbnNpZGUgYSBmdW5jdGlvbi9zdHJ1Y3QgYm9keS4gV2hl
biBwcm9jZXNzaW5nCi0gICAgLy8gZnVuY3Rpb24gYm9kaWVzLCB3ZSBvbmx5IHJlY3Vyc2UgaW50
byB0aGVtIGFuZCBuZXZlciBvdXQgb2YgdGhlbSAtIGZvciBleGFtcGxlIGlmIHRoZXJlIGlzIGEK
LSAgICAvLyBmdW5jdGlvbiBjYWxsIHRvIGFub3RoZXIgZnVuY3Rpb24gdGhlbiB3ZSBkb24ndCBy
ZXdyaXRlIHRoZSBvdGhlciBmdW5jdGlvbi4gVGhpcyBpcyBob3cgd2Ugc3RvcAotICAgIC8vIHRo
YXQuCi0gICAgdmlzaXRGdW5jRGVmKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdE5h
dGl2ZUZ1bmMobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0TmF0aXZlVHlwZShub2Rl
KSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlzaXRUeXBlRGVmKG5vZGUpIHsgcmV0dXJuIG5vZGU7
IH0KLSAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0
RW51bVR5cGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIAotICAgIHZpc2l0RnVuY1BhcmFt
ZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBGdW5jUGFyYW1ldGVy
KG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSwgTm9kZS52aXNp
dChub2RlLnNlbWFudGljLCB0aGlzKSk7Ci0gICAgICAgIHRoaXMuX21hcE5vZGUobm9kZSwgcmVz
dWx0KTsKLSAgICAgICAgcmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VmFyaWFibGVEZWNsKG5vZGUpCi0gICAgewot
ICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFZhcmlhYmxlRGVjbCgKLSAgICAgICAgICAgIG5vZGUu
b3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyksCi0g
ICAgICAgICAgICBOb2RlLnZpc2l0KG5vZGUuaW5pdGlhbGl6ZXIsIHRoaXMpKTsKLSAgICAgICAg
dGhpcy5fbWFwTm9kZShub2RlLCByZXN1bHQpOwotICAgICAgICByZXN1bHQuZVB0ciA9IG5vZGUu
ZVB0cjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRCbG9j
ayhub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBCbG9jayhub2RlLm9yaWdp
bik7Ci0gICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVudHMpCi0gICAg
ICAgICAgICByZXN1bHQuYWRkKHN0YXRlbWVudC52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29tbWFFeHByZXNzaW9uKG5vZGUpCi0g
ICAgewotICAgICAgICByZXR1cm4gbmV3IENvbW1hRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgbm9k
ZS5saXN0Lm1hcChleHByZXNzaW9uID0+IHsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSBleHBy
ZXNzaW9uLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJlc3VsdCBmcm9tICIgKyBleHByZXNzaW9uKTsK
LSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0pKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5
cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJndW1lbnRzLm1hcChhcmd1
bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlzKSkpOwotICAgICAgICBpZiAobm9kZS50eXBlKQot
ICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7Ci0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RmllbGQobm9kZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgRmllbGQobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwg
bm9kZS50eXBlLnZpc2l0KHRoaXMpLCBOb2RlLnZpc2l0KG5vZGUuc2VtYW50aWMsIHRoaXMpKTsK
LSAgICB9Ci0gICAgCi0gICAgdmlzaXRFbnVtTWVtYmVyKG5vZGUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gbmV3IEVudW1NZW1iZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS52YWx1ZS52
aXNpdCh0aGlzKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RW51bUxpdGVyYWwobm9kZSkKLSAg
ICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgRW51bUxpdGVyYWwobm9kZS5vcmlnaW4sIG5v
ZGUubWVtYmVyKTsKLSAgICAgICAgcmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UmVmZXJlbmNlVHlwZShub2RlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBub2RlLmNvbnN0cnVjdG9yKG5vZGUub3JpZ2luLCBu
b2RlLmFkZHJlc3NTcGFjZSwgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0UHRyVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
dmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEFycmF5UmVm
VHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRSZWZlcmVuY2VUeXBl
KG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEFycmF5VHlwZShub2RlKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIG5ldyBBcnJheVR5cGUobm9kZS5vcmlnaW4sIG5vZGUuZWxlbWVudFR5cGUu
dmlzaXQodGhpcyksIG5vZGUubnVtRWxlbWVudHMudmlzaXQodGhpcykpOwotICAgIH0KLSAgICAK
LSAgICB2aXNpdEFzc2lnbm1lbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgQXNzaWdubWVudChub2RlLm9yaWdpbiwgbm9kZS5saHMudmlzaXQodGhpcyksIG5vZGUucmhz
LnZpc2l0KHRoaXMpKTsKLSAgICAgICAgcmVzdWx0LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlw
ZSwgdGhpcyk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0
UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLmxWYWx1
ZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJlc3VsdC5vbGRWYWx1ZVZhciA9IG5vZGUub2xkVmFs
dWVWYXIudmlzaXQodGhpcyk7Ci0gICAgICAgIHJlc3VsdC5uZXdWYWx1ZVZhciA9IG5vZGUubmV3
VmFsdWVWYXIudmlzaXQodGhpcyk7Ci0gICAgICAgIHJlc3VsdC5uZXdWYWx1ZUV4cCA9IG5vZGUu
bmV3VmFsdWVFeHAudmlzaXQodGhpcyk7Ci0gICAgICAgIHJlc3VsdC5yZXN1bHRFeHAgPSBub2Rl
LnJlc3VsdEV4cC52aXNpdCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXREZXJlZmVyZW5jZUV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAg
IGxldCByZXN1bHQgPSBuZXcgRGVyZWZlcmVuY2VFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2Rl
LnB0ci52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2Rl
LnR5cGUsIHRoaXMpOwotICAgICAgICByZXN1bHQuYWRkcmVzc1NwYWNlID0gbm9kZS5hZGRyZXNz
U3BhY2U7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRUZXJuYXJ5
RXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBUZXJuYXJ5RXhwcmVz
c2lvbihub2RlLm9yaWdpbiwgbm9kZS5wcmVkaWNhdGUudmlzaXQodGhpcyksIG5vZGUuYm9keUV4
cHJlc3Npb24udmlzaXQodGhpcyksIG5vZGUuZWxzZUV4cHJlc3Npb24udmlzaXQodGhpcykpOwot
ICAgIH0KLSAgICAKLSAgICBfaGFuZGxlUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKHJlc3VsdCwg
bm9kZSkKLSAgICB7Ci0gICAgICAgIHJlc3VsdC5wb3NzaWJsZUdldE92ZXJsb2FkcyA9IG5vZGUu
cG9zc2libGVHZXRPdmVybG9hZHM7Ci0gICAgICAgIHJlc3VsdC5wb3NzaWJsZVNldE92ZXJsb2Fk
cyA9IG5vZGUucG9zc2libGVTZXRPdmVybG9hZHM7Ci0gICAgICAgIHJlc3VsdC5wb3NzaWJsZUFu
ZE92ZXJsb2FkcyA9IG5vZGUucG9zc2libGVBbmRPdmVybG9hZHM7Ci0gICAgICAgIHJlc3VsdC5i
YXNlVHlwZSA9IE5vZGUudmlzaXQobm9kZS5iYXNlVHlwZSwgdGhpcyk7Ci0gICAgICAgIHJlc3Vs
dC5jYWxsRm9yR2V0ID0gTm9kZS52aXNpdChub2RlLmNhbGxGb3JHZXQsIHRoaXMpOwotICAgICAg
ICByZXN1bHQucmVzdWx0VHlwZUZvckdldCA9IE5vZGUudmlzaXQobm9kZS5yZXN1bHRUeXBlRm9y
R2V0LCB0aGlzKTsKLSAgICAgICAgcmVzdWx0LmNhbGxGb3JBbmQgPSBOb2RlLnZpc2l0KG5vZGUu
Y2FsbEZvckFuZCwgdGhpcyk7Ci0gICAgICAgIHJlc3VsdC5yZXN1bHRUeXBlRm9yQW5kID0gTm9k
ZS52aXNpdChub2RlLnJlc3VsdFR5cGVGb3JBbmQsIHRoaXMpOwotICAgICAgICByZXN1bHQuY2Fs
bEZvclNldCA9IE5vZGUudmlzaXQobm9kZS5jYWxsRm9yU2V0LCB0aGlzKTsKLSAgICAgICAgcmVz
dWx0LmVycm9yRm9yU2V0ID0gbm9kZS5lcnJvckZvclNldDsKLSAgICAgICAgcmVzdWx0LnVwZGF0
ZUNhbGxzKCk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2RlKQotICAg
IHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBEb3RFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBu
b2RlLnN0cnVjdC52aXNpdCh0aGlzKSwgbm9kZS5maWVsZE5hbWUpOwotICAgICAgICB0aGlzLl9o
YW5kbGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24ocmVzdWx0LCBub2RlKTsKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSkK
LSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgSW5kZXhFeHByZXNzaW9uKG5vZGUub3Jp
Z2luLCBub2RlLmFycmF5LnZpc2l0KHRoaXMpLCBub2RlLmluZGV4LnZpc2l0KHRoaXMpKTsKLSAg
ICAgICAgdGhpcy5faGFuZGxlUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKHJlc3VsdCwgbm9kZSk7
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TWFrZVB0ckV4
cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgTWFrZVB0ckV4
cHJlc3Npb24obm9kZS5vcmlnaW4sIG5vZGUubFZhbHVlLnZpc2l0KHRoaXMpKTsKLSAgICAgICAg
cmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0TWFrZUFycmF5UmVmRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBNYWtlQXJyYXlSZWZFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBu
b2RlLmxWYWx1ZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIGlmIChub2RlLm51bUVsZW1lbnRzKQot
ICAgICAgICAgICAgcmVzdWx0Lm51bUVsZW1lbnRzID0gbm9kZS5udW1FbGVtZW50cy52aXNpdCh0
aGlzKTsKLSAgICAgICAgcmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29udmVydFB0clRvQXJyYXlSZWZFeHByZXNz
aW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENvbnZlcnRQdHJUb0Fy
cmF5UmVmRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgbm9kZS5sVmFsdWUudmlzaXQodGhpcykpOwot
ICAgICAgICByZXN1bHQuZVB0ciA9IG5vZGUuZVB0cjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9Ci0gICAgCi0gICAgdmlzaXRWYXJpYWJsZVJlZihub2RlKQotICAgIHsKLSAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBWYXJpYWJsZVJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAg
ICAgICAgcmVzdWx0LnZhcmlhYmxlID0gdGhpcy5fZ2V0TWFwcGluZyhub2RlLnZhcmlhYmxlKTsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRSZXR1cm4obm9k
ZSkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHJldHVyblN0YXRlbWVudCA9IG5ldyBSZXR1cm4obm9k
ZS5vcmlnaW4sIE5vZGUudmlzaXQobm9kZS52YWx1ZSwgdGhpcykpOwotICAgICAgICBpZiAobm9k
ZS5mdW5jKQotICAgICAgICAgICAgcmV0dXJuU3RhdGVtZW50LmZ1bmMgPSBub2RlLmZ1bmM7Ci0g
ICAgICAgIHJldHVybiByZXR1cm5TdGF0ZW1lbnQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29u
dGludWUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgQ29udGludWUobm9kZS5vcmln
aW4pOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEJyZWFrKG5vZGUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gbmV3IEJyZWFrKG5vZGUub3JpZ2luKTsKLSAgICB9Ci0KLSAgICB2aXNpdFRyYXBTdGF0
ZW1lbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgVHJhcFN0YXRlbWVudChub2Rl
Lm9yaWdpbik7Ci0gICAgfQotICAgIAotICAgIHZpc2l0R2VuZXJpY0xpdGVyYWwobm9kZSkKLSAg
ICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgc2VlbSByaWdodC4KLSAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBJbnRMaXRlcmFsKG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKLSAg
ICAgICAgcmVzdWx0LnR5cGUgPSBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIHJlc3Vs
dC5lUHRyID0gbm9kZS5lUHRyOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAK
LSAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBub2RlLmNvbnN0cnVjdG9yKG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKLSAg
ICAgICAgcmVzdWx0LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7Ci0gICAgICAg
IHJlc3VsdC5wcmVmZXJyZWRUeXBlID0gbm9kZS5wcmVmZXJyZWRUeXBlLnZpc2l0KHRoaXMpOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0Qm9vbExpdGVyYWwobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICAKLSAgICB2aXNpdE51
bGxMaXRlcmFsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IE51bGxMaXRl
cmFsKG5vZGUub3JpZ2luKTsKLSAgICAgICAgcmVzdWx0LnR5cGUgPSBub2RlLnR5cGUudmlzaXQo
dGhpcyk7Ci0gICAgICAgIHJlc3VsdC5lUHRyID0gbm9kZS5lUHRyOwotICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdE51bGxUeXBlKG5vZGUpCi0gICAgewotICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IE51bGxUeXBlKG5vZGUub3JpZ2luKTsKLSAgICAgICAgcmVz
dWx0LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotCi0gICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQp
Ci0gICAgewotICAgICAgICBsZXQgYXJndW1lbnRUeXBlcyA9IG5vZGUuYXJndW1lbnRUeXBlczsK
LSAgICAgICAgaWYgKGFyZ3VtZW50VHlwZXMpCi0gICAgICAgICAgICByZXN1bHQuYXJndW1lbnRU
eXBlcyA9IGFyZ3VtZW50VHlwZXMubWFwKGFyZ3VtZW50VHlwZSA9PiBhcmd1bWVudFR5cGUudmlz
aXQodGhpcykpOwotICAgICAgICByZXN1bHQuZnVuYyA9IG5vZGUuZnVuYzsKLSAgICAgICAgcmVz
dWx0LnBvc3NpYmxlT3ZlcmxvYWRzID0gbm9kZS5wb3NzaWJsZU92ZXJsb2FkczsKLSAgICAgICAg
aWYgKG5vZGUuaXNDYXN0KQotICAgICAgICAgICAgcmVzdWx0LnNldENhc3REYXRhKG5vZGUucmV0
dXJuVHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gTm9kZS52
aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwotICAgICAgICByZXN1bHQucmVzdWx0RVB0ciA9
IG5vZGUucmVzdWx0RVB0cjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICB2
aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IENhbGxFeHByZXNzaW9uKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAg
ICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBOb2RlLnZpc2l0KGFy
Z3VtZW50LCB0aGlzKSkpOwotICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRGVyaXZlZENhbGxE
YXRhKG5vZGUsIHJlc3VsdCk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RnVuY3Rpb25MaWtlQmxv
Y2sobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgRnVuY3Rpb25MaWtlQmxv
Y2soCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwKLSAgICAgICAgICAgIG5vZGUuZnVuYy52aXNp
dCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmcgPT4gYXJnLnZp
c2l0KHRoaXMpKQotICAgICAgICApOwotICAgICAgICByZXN1bHQucmV0dXJuRVB0ciA9IG5vZGUu
cmV0dXJuRVB0cjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlz
aXRMb2dpY2FsTm90KG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IExvZ2lj
YWxOb3Qobm9kZS5vcmlnaW4sIG5vZGUub3BlcmFuZC52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJl
c3VsdC5lUHRyID0gbm9kZS5lUHRyOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAg
ICAKLSAgICB2aXNpdExvZ2ljYWxFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IExvZ2ljYWxFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLnRleHQsIG5v
ZGUubGVmdC52aXNpdCh0aGlzKSwgbm9kZS5yaWdodC52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJl
c3VsdC5lUHRyID0gbm9kZS5lUHRyOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQot
ICAgIHZpc2l0SWZTdGF0ZW1lbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgSWZT
dGF0ZW1lbnQobm9kZS5vcmlnaW4sIG5vZGUuY29uZGl0aW9uYWwudmlzaXQodGhpcyksIG5vZGUu
Ym9keS52aXNpdCh0aGlzKSwgTm9kZS52aXNpdChub2RlLmVsc2VCb2R5LCB0aGlzKSk7Ci0gICAg
fQotCi0gICAgdmlzaXRXaGlsZUxvb3Aobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcg
V2hpbGVMb29wKG5vZGUub3JpZ2luLCBub2RlLmNvbmRpdGlvbmFsLnZpc2l0KHRoaXMpLCBub2Rl
LmJvZHkudmlzaXQodGhpcykpOwotICAgIH0KLQotICAgIHZpc2l0RG9XaGlsZUxvb3Aobm9kZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aobm9kZS5vcmlnaW4sIG5vZGUu
Ym9keS52aXNpdCh0aGlzKSwgbm9kZS5jb25kaXRpb25hbC52aXNpdCh0aGlzKSk7Ci0gICAgfQot
Ci0gICAgdmlzaXRGb3JMb29wKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IEZvckxv
b3Aobm9kZS5vcmlnaW4sCi0gICAgICAgICAgICBOb2RlLnZpc2l0KG5vZGUuaW5pdGlhbGl6YXRp
b24sIHRoaXMpLAotICAgICAgICAgICAgTm9kZS52aXNpdChub2RlLmNvbmRpdGlvbiwgdGhpcyks
Ci0gICAgICAgICAgICBOb2RlLnZpc2l0KG5vZGUuaW5jcmVtZW50LCB0aGlzKSwKLSAgICAgICAg
ICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0U3dpdGNo
U3RhdGVtZW50KG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN3aXRjaFN0
YXRlbWVudChub2RlLm9yaWdpbiwgTm9kZS52aXNpdChub2RlLnZhbHVlLCB0aGlzKSk7Ci0gICAg
ICAgIGZvciAobGV0IHN3aXRjaENhc2Ugb2Ygbm9kZS5zd2l0Y2hDYXNlcykKLSAgICAgICAgICAg
IHJlc3VsdC5hZGQoc3dpdGNoQ2FzZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJlc3VsdC50eXBl
ID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLSAgICAKLSAgICB2aXNpdFN3aXRjaENhc2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgU3dpdGNoQ2FzZShub2RlLm9yaWdpbiwgTm9kZS52aXNpdChub2RlLnZhbHVlLCB0
aGlzKSwgbm9kZS5ib2R5LnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRBbm9u
eW1vdXNWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBbm9u
eW1vdXNWYXJpYWJsZShub2RlLm9yaWdpbiwgTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpKTsK
LSAgICAgICAgcmVzdWx0Ll9pbmRleCA9IG5vZGUuX2luZGV4OwotICAgICAgICB0aGlzLl9tYXBO
b2RlKG5vZGUsIHJlc3VsdCk7Ci0gICAgICAgIHJlc3VsdC5lUHRyID0gbm9kZS5lUHRyOwotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdElkZW50aXR5RXhwcmVz
c2lvbihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBJZGVudGl0eUV4cHJlc3Npb24o
bm9kZS50YXJnZXQudmlzaXQodGhpcykpOwotICAgIH0KLQotICAgIHZpc2l0VmVjdG9yVHlwZShu
b2RlKQotICAgIHsKLSAgICAgICAgY29uc3QgdmVjVHlwZSA9IG5ldyBWZWN0b3JUeXBlKG5vZGUu
b3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAoYXJndW1lbnQgPT4gYXJn
dW1lbnQudmlzaXQodGhpcykpKTsKLSAgICAgICAgdmVjVHlwZS5fZWxlbWVudFR5cGUgPSBub2Rl
LmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICByZXR1cm4gdmVjVHlwZTsKLSAgICB9
Ci0KLSAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGNvbnN0IG1hdFR5
cGUgPSBuZXcgTWF0cml4VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1
bWVudHMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7Ci0gICAgICAgIHJl
dHVybiBtYXRUeXBlOwotICAgIH0KLQotICAgIHZpc2l0QnVpbHRJblNlbWFudGljKG5vZGUpCi0g
ICAgewotICAgICAgICByZXR1cm4gbmV3IEJ1aWx0SW5TZW1hbnRpYyhub2RlLm9yaWdpbiwgbm9k
ZS5uYW1lLCAuLi5ub2RlLmV4dHJhQXJndW1lbnRzKTsKLSAgICB9Ci0KLSAgICB2aXNpdFJlc291
cmNlU2VtYW50aWMobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VTZW1h
bnRpYyhub2RlLm9yaWdpbiwgbm9kZS5yZXNvdXJjZU1vZGUsIG5vZGUuaW5kZXgsIG5vZGUuc3Bh
Y2UpOwotICAgIH0KLQotICAgIHZpc2l0U3RhZ2VJbk91dFNlbWFudGljKG5vZGUpCi0gICAgewot
ICAgICAgICByZXR1cm4gbmV3IFN0YWdlSW5PdXRTZW1hbnRpYyhub2RlLm9yaWdpbiwgbm9kZS5p
bmRleCk7Ci0gICAgfQotCi0gICAgdmlzaXRTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMo
bm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgU3BlY2lhbGl6YXRpb25Db25zdGFudFNl
bWFudGljKG5vZGUub3JpZ2luKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1NQSVItVi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NQSVItVi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBjYTcwNDRhYjAu
LjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVItVi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDMzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLS8vIFRoaXMgZnVuY3Rpb24g
YWNjZXB0cyBhIEpTT04gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIFNQSVItViBzeW50YXguCi0vLyBG
b3IgZXhhbXBsZSwgaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC9TUElSVi1IZWFkZXJz
L2Jsb2IvbWFzdGVyL2luY2x1ZGUvc3BpcnYvMS4yL3NwaXJ2LmNvcmUuZ3JhbW1hci5qc29uCi1m
dW5jdGlvbiBTUElSVihqc29uKSB7Ci0gICAgbGV0IHJlc3VsdCA9IHsKLSAgICAgICAgb3BzOiB7
fSwKLSAgICAgICAga2luZHM6IHt9Ci0gICAgfQotCi0gICAgbGV0IGNvbXBvc2l0ZXMgPSBuZXcg
TWFwKCk7Ci0gICAgbGV0IGlkcyA9IG5ldyBNYXAoKTsKLSAgICBmb3IgKGxldCBraW5kIG9mIGpz
b24ub3BlcmFuZF9raW5kcykgewotICAgICAgICBzd2l0Y2ggKGtpbmQuY2F0ZWdvcnkpIHsKLSAg
ICAgICAgY2FzZSAiQml0RW51bSI6Ci0gICAgICAgIGNhc2UgIlZhbHVlRW51bSI6Ci0gICAgICAg
ICAgICBsZXQgZW51bWVyYW50cyA9IHsgY2F0ZWdvcnk6IGtpbmQuY2F0ZWdvcnkgfTsKLSAgICAg
ICAgICAgIGZvciAobGV0IGVudW1lcmFudCBvZiBraW5kLmVudW1lcmFudHMpIHsKLSAgICAgICAg
ICAgICAgICBlbnVtZXJhbnRzW2VudW1lcmFudC5lbnVtZXJhbnRdID0gZW51bWVyYW50OwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcmVzdWx0LmtpbmRzW2tpbmQua2luZF0gPSBlbnVtZXJh
bnRzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIkNvbXBvc2l0ZSI6Ci0gICAg
ICAgICAgICBjb21wb3NpdGVzLnNldChraW5kLmtpbmQsIGtpbmQpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgIklkIjoKLSAgICAgICAgICAgIGlkcy5zZXQoa2luZC5raW5kLCBr
aW5kKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gbWF0Y2hUeXBlKG9wZXJhbmRJbmZvS2luZCwgb3BlcmFuZCkgewotICAgICAgICBzd2l0Y2gg
KG9wZXJhbmRJbmZvS2luZCkgewotICAgICAgICAgICAgLy8gRklYTUU6IEknbSBub3QgYWN0dWFs
bHkgc3VyZSB0aGF0IElkcyBzaG91bGQgYmUgdW5zaWduZWQuCi0gICAgICAgICAgICBjYXNlICJJ
ZFJlc3VsdFR5cGUiOgotICAgICAgICAgICAgY2FzZSAiSWRSZXN1bHQiOgotICAgICAgICAgICAg
Y2FzZSAiSWRSZWYiOgotICAgICAgICAgICAgY2FzZSAiSWRTY29wZSI6Ci0gICAgICAgICAgICBj
YXNlICJJZE1lbW9yeVNlbWFudGljcyI6Ci0gICAgICAgICAgICBjYXNlICJMaXRlcmFsRXh0SW5z
dEludGVnZXIiOgotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3BlcmFuZCAhPSAibnVtYmVy
IikKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPcGVyYW5kIG5lZWRzIHRv
IGJlIGEgbnVtYmVyIik7Ci0gICAgICAgICAgICAgICAgaWYgKChvcGVyYW5kID4+PiAwKSAhPSBv
cGVyYW5kKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk9wZXJhbmQgbmVl
ZHMgdG8gZml0IGluIGFuIHVuc2lnbmVkIGludCIpOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIGNhc2UgIkxpdGVyYWxJbnRlZ2VyIjoKLSAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mIG9wZXJhbmQgIT0gIm51bWJlciIpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiT3BlcmFuZCBuZWVkcyB0byBiZSBhIG51bWJlciIpOwotICAgICAgICAgICAgICAg
IGlmICgob3BlcmFuZCB8IDApICE9IG9wZXJhbmQpCi0gICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiT3BlcmFuZCBuZWVkcyB0byBmaXQgaW4gYW4gaW50Iik7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgY2FzZSAiTGl0ZXJhbFN0cmluZyI6Ci0gICAgICAg
ICAgICAgICAgaWYgKHR5cGVvZiBvcGVyYW5kICE9ICJzdHJpbmciKQotICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk9wZXJhbmQgbmVlZHMgdG8gYmUgYSBzdHJpbmciKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBjYXNlICJMaXRlcmFsQ29udGV4dERl
cGVuZGVudE51bWJlciI6Ci0gICAgICAgICAgICBjYXNlICJMaXRlcmFsU3BlY0NvbnN0YW50T3BJ
bnRlZ2VyIjoKLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wZXJhbmQgIT0gIm51bWJlciIp
Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3BlcmFuZCBuZWVkcyB0byBi
ZSBhIG51bWJlciIpOwotICAgICAgICAgICAgICAgIGlmICgob3BlcmFuZCA+Pj4gMCkgIT0gb3Bl
cmFuZCAmJiAob3BlcmFuZCB8IDApICE9IG9wZXJhbmQpCi0gICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiT3BlcmFuZCBuZWVkcyB0byBmaXQgaW4gYW4gdW5zaWduZWQgaW50IG9y
IGFuIGludC4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAg
bGV0IGtpbmQgPSByZXN1bHQua2luZHNbb3BlcmFuZEluZm9LaW5kXTsKLSAgICAgICAgaWYgKGtp
bmQpIHsKLSAgICAgICAgICAgIGlmIChvcGVyYW5kIGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoa2luZC5jYXRlZ29yeSAhPSAiQml0RW51bSIpCi0gICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiUGFzc2luZyBhbiBhcnJheSB0byBhICIgKyBraW5kLmNh
dGVnb3J5ICsgIiBvcGVyYW5kIik7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgb3BlcmFuZEl0
ZW0gb2Ygb3BlcmFuZCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoa2luZFtvcGVyYW5kSXRl
bS5lbnVtZXJhbnRdICE9IG9wZXJhbmRJdGVtKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCIiICsgb3BlcmFuZEl0ZW0uZW51bWVyYW50ICsgIiBpcyBub3QgYSBtZW1i
ZXIgb2YgIiArIG9wZXJhbmRJbmZvS2luZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChraW5kW29wZXJh
bmQuZW51bWVyYW50XSAhPSBvcGVyYW5kKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiIiArIG9wZXJhbmQuZW51bWVyYW50ICsgIiBpcyBub3QgYSBtZW1iZXIgb2YgIiArIG9wZXJh
bmRJbmZvS2luZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJVbmtub3duIHR5cGU6ICIgKyBvcGVyYW5kSW5mb0tpbmQpOwotICAgIH0K
LQotICAgIGNsYXNzIE9wZXJhbmRDaGVja2VyIHsKLSAgICAgICAgY29uc3RydWN0b3Iob3BlcmFu
ZEluZm9zKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aGlzLl9vcGVyYW5kSW5mb3MgPSBvcGVy
YW5kSW5mb3MgfHwgW107Ci0gICAgICAgICAgICB0aGlzLl9vcGVyYW5kSW5kZXggPSAwOwotICAg
ICAgICAgICAgdGhpcy5fb3BlcmFuZEluZm9JbmRleCA9IDA7Ci0gICAgICAgICAgICB0aGlzLl9w
YXJhbWV0ZXJzID0gW107Ci0gICAgICAgIH0KLQotICAgICAgICBfaXNTdGFyKG9wZXJhbmRJbmZv
KQotICAgICAgICB7Ci0gICAgICAgICAgICBzd2l0Y2ggKG9wZXJhbmRJbmZvLmtpbmQpIHsKLSAg
ICAgICAgICAgICAgICBjYXNlICJMaXRlcmFsQ29udGV4dERlcGVuZGVudE51bWJlciI6Ci0gICAg
ICAgICAgICAgICAgY2FzZSAiTGl0ZXJhbFNwZWNDb25zdGFudE9wSW50ZWdlciI6Ci0gICAgICAg
ICAgICAgICAgICAgIC8vIFRoZXNlIHR5cGVzIGNhbiBiZSBhbnkgd2lkdGguCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJu
IG9wZXJhbmRJbmZvLnF1YW50aWZpZXIgJiYgb3BlcmFuZEluZm8ucXVhbnRpZmllciA9PSAiKiI7
Ci0gICAgICAgIH0KLQotICAgICAgICBuZXh0Q29tcGFyaXNvblR5cGUob3BlcmFuZCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKHRoaXMuX29wZXJhbmRJbmZvSW5kZXggPj0gdGhpcy5fb3Bl
cmFuZEluZm9zLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNwZWNp
ZmllZCBvcGVyYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW55IHRoYXQgdGhlIGluc3RydWN0
aW9uIGV4cGVjdHMuIik7Ci0gICAgICAgICAgICBsZXQgb3BlcmFuZEluZm8gPSB0aGlzLl9vcGVy
YW5kSW5mb3NbdGhpcy5fb3BlcmFuZEluZm9JbmRleF07Ci0KLSAgICAgICAgICAgIGxldCBpc1N0
YXIgPSB0aGlzLl9pc1N0YXIob3BlcmFuZEluZm8pOwotCi0gICAgICAgICAgICBpZiAodGhpcy5f
cGFyYW1ldGVycy5sZW5ndGggIT0gMCkgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0
aGlzLl9wYXJhbWV0ZXJzWzBdOwotICAgICAgICAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMuc3Bs
aWNlKDAsIDEpOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgcGFyYW1ldGVycyB0
aGF0IHJlcXVpcmUgdGhlaXIgb3duIHBhcmFtZXRlcnMKLSAgICAgICAgICAgICAgICArK3RoaXMu
X29wZXJhbmRJbmRleDsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyYW1ldGVycy5sZW5n
dGggPT0gMCAmJiAhaXNTdGFyKQotICAgICAgICAgICAgICAgICAgICArK3RoaXMuX29wZXJhbmRJ
bmZvSW5kZXg7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgbGV0IGNvbXBvc2l0ZSA9IGNvbXBvc2l0ZXMuZ2V0KG9wZXJhbmRJbmZv
LmtpbmQpOwotICAgICAgICAgICAgaWYgKGNvbXBvc2l0ZSkgewotICAgICAgICAgICAgICAgIGZv
ciAobGV0IGJhc2Ugb2YgY29tcG9zaXRlLmJhc2VzKQotICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9wYXJhbWV0ZXJzLnB1c2goYmFzZSk7Ci0gICAgICAgICAgICAgICAgbmV4dENvbXBhcmlzb25U
eXBlKG9wZXJhbmQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgbGV0IGtpbmQgPSByZXN1bHQua2luZHNbb3BlcmFuZEluZm8ua2luZF07Ci0g
ICAgICAgICAgICBpZiAoa2luZCkgewotICAgICAgICAgICAgICAgIGxldCBlbnVtZXJhbnQgPSBr
aW5kW29wZXJhbmQuZW51bWVyYW50XTsKLSAgICAgICAgICAgICAgICBpZiAoZW51bWVyYW50KSB7
Ci0gICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gZW51bWVyYW50LnBhcmFtZXRl
cnM7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2YgcGFyYW1ldGVycykgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMucHVzaChwYXJhbWV0ZXIua2luZCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICArK3Ro
aXMuX29wZXJhbmRJbmRleDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVyYW5k
SW5mby5raW5kOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICArK3RoaXMuX29wZXJhbmRJbmRleDsKLSAgICAgICAg
ICAgIGlmICghaXNTdGFyKQotICAgICAgICAgICAgICAgICsrdGhpcy5fb3BlcmFuZEluZm9JbmRl
eDsKLSAgICAgICAgICAgIHJldHVybiBvcGVyYW5kSW5mby5raW5kOwotICAgICAgICB9Ci0KLSAg
ICAgICAgY2hlY2sob3BlcmFuZCkKLSAgICAgICAgewotICAgICAgICAgICAgbWF0Y2hUeXBlKHRo
aXMubmV4dENvbXBhcmlzb25UeXBlKG9wZXJhbmQpLCBvcGVyYW5kKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGZpbmFsaXplKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHRoaXMuX3BhcmFt
ZXRlcnMubGVuZ3RoICE9IDApCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPcGVy
YW5kIG5vdCBzcGVjaWZpZWQgZm9yIHBhcmFtZXRlci4iKTsKLSAgICAgICAgICAgIGZvciAobGV0
IGkgPSB0aGlzLl9vcGVyYW5kSW5mb0luZGV4OyBpIDwgdGhpcy5fb3BlcmFuZEluZm9zLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgbGV0IG9wZXJhbmRJbmZvID0gdGhpcy5fb3BlcmFu
ZEluZm9zW2ldOwotICAgICAgICAgICAgICAgIGxldCBxdWFudGlmaWVyID0gb3BlcmFuZEluZm8u
cXVhbnRpZmllcjsKLSAgICAgICAgICAgICAgICBpZiAocXVhbnRpZmllciAhPSAiPyIgJiYgIXRo
aXMuX2lzU3RhcihvcGVyYW5kSW5mbykpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRGlkIG5vdCBzcGVjaWZ5IG9wZXJhbmQgIiArIGkgKyAiIHRvIGluc3RydWN0aW9uLiIp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yIChsZXQgaW5zdHJ1
Y3Rpb24gb2YganNvbi5pbnN0cnVjdGlvbnMpIHsKLSAgICAgICAgaWYgKCFpbnN0cnVjdGlvbi5v
cG5hbWUuc3RhcnRzV2l0aCgiT3AiKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBs
ZXQgYXR0cmlidXRlTmFtZSA9IGluc3RydWN0aW9uLm9wbmFtZS5zdWJzdHJpbmcoMik7Ci0gICAg
ICAgIHJlc3VsdC5vcHNbYXR0cmlidXRlTmFtZV0gPSBjbGFzcyB7Ci0gICAgICAgICAgICBjb25z
dHJ1Y3RvciguLi5vcGVyYW5kcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsZXQg
b3BlcmFuZENoZWNrZXIgPSBuZXcgT3BlcmFuZENoZWNrZXIoaW5zdHJ1Y3Rpb24ub3BlcmFuZHMp
OwotICAgICAgICAgICAgICAgIGZvciAobGV0IG9wZXJhbmQgb2Ygb3BlcmFuZHMpCi0gICAgICAg
ICAgICAgICAgICAgIG9wZXJhbmRDaGVja2VyLmNoZWNrKG9wZXJhbmQpOwotICAgICAgICAgICAg
ICAgIG9wZXJhbmRDaGVja2VyLmZpbmFsaXplKCk7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLl9v
cGVyYW5kcyA9IG9wZXJhbmRzOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZ2V0IG9wZXJh
bmRzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmFu
ZHM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBnZXQgb3BuYW1lKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gaW5zdHJ1Y3Rpb24ub3BuYW1lOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgZ2V0IG9wY29kZSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIGluc3RydWN0aW9uLm9wY29kZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGdldCBvcGVyYW5kSW5mbygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIGluc3RydWN0aW9uLm9wZXJhbmRzOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZ2V0
IHN0b3JhZ2VTaXplKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0
ID0gMTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBvcGVyYW5kIG9mIHRoaXMub3BlcmFuZHMp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcGVyYW5kID09ICJudW1iZXIiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgKytyZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKHR5cGVvZiBvcGVyYW5kID09ICJzdHJpbmciKQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0ICs9ICgoKG9wZXJhbmQubGVuZ3RoICsgMSkgKyAzKSAvIDQpIHwgMDsKLSAgICAg
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgKytyZXN1bHQ7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBnZXQgbGFyZ2VzdElkKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBsZXQgbWF4aW11bUlkID0gMDsKLSAgICAgICAgICAgICAgICBsZXQgb3BlcmFu
ZENoZWNrZXIgPSBuZXcgT3BlcmFuZENoZWNrZXIodGhpcy5vcGVyYW5kSW5mbyk7Ci0gICAgICAg
ICAgICAgICAgZm9yIChsZXQgb3BlcmFuZCBvZiB0aGlzLm9wZXJhbmRzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGxldCB0eXBlID0gb3BlcmFuZENoZWNrZXIubmV4dENvbXBhcmlzb25UeXBlKG9w
ZXJhbmQpOwotICAgICAgICAgICAgICAgICAgICBsZXQgaWRUeXBlID0gaWRzLmdldCh0eXBlKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGlkVHlwZSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1heGltdW1JZCA9IE1hdGgubWF4KG1heGltdW1JZCwgb3BlcmFuZCk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBtYXhpbXVtSWQ7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotY2xhc3MgU1BJUlZBc3Nl
bWJsZXIgewotICAgIGNvbnN0cnVjdG9yKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2xhcmdlc3RJ
ZCA9IDA7Ci0gICAgICAgIHRoaXMuX3NpemUgPSA1OwotICAgICAgICB0aGlzLl9zdG9yYWdlID0g
bmV3IFVpbnQzMkFycmF5KHRoaXMuc2l6ZSk7Ci0gICAgICAgIHRoaXMuc3RvcmFnZVswXSA9IDB4
MDcyMzAyMDM7IC8vIE1hZ2ljIG51bWJlcgotICAgICAgICB0aGlzLnN0b3JhZ2VbMV0gPSAweDAw
MDEwMDAwOyAvLyBWZXJzaW9uOiAxLjAKLSAgICAgICAgdGhpcy5zdG9yYWdlWzJdID0gMHg1NzRC
MDAwMDsgLy8gVG9vbDogIldLIgotICAgICAgICB0aGlzLnN0b3JhZ2VbM10gPSAwOyAvLyBQbGFj
ZWhvbGRlcjogQWxsIDxpZD5zIGFyZSBsZXNzIHRoYW4gdGhpcyB2YWx1ZS4KLSAgICAgICAgdGhp
cy5zdG9yYWdlWzRdID0gMDsgLy8gUmVzZXJ2ZWQKLSAgICB9Ci0KLSAgICBhcHBlbmQob3ApCi0g
ICAgewotICAgICAgICB0aGlzLl9sYXJnZXN0SWQgPSBNYXRoLm1heCh0aGlzLl9sYXJnZXN0SWQs
IG9wLmxhcmdlc3RJZCk7Ci0KLSAgICAgICAgbGV0IGRlbHRhU3RvcmFnZVNpemUgPSBvcC5zdG9y
YWdlU2l6ZTsKLSAgICAgICAgaWYgKHRoaXMuc2l6ZSArIGRlbHRhU3RvcmFnZVNpemUgPiB0aGlz
LnN0b3JhZ2UubGVuZ3RoKSB7Ci0gICAgICAgICAgICBsZXQgbmV3U3RvcmFnZVNpemUgPSAodGhp
cy5zaXplICsgZGVsdGFTdG9yYWdlU2l6ZSkgKiAxLjU7Ci0gICAgICAgICAgICBsZXQgbmV3U3Rv
cmFnZSA9IG5ldyBVaW50MzJBcnJheShuZXdTdG9yYWdlU2l6ZSk7Ci0gICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHRoaXMuc2l6ZTsgKytpKQotICAgICAgICAgICAgICAgIG5ld1N0b3Jh
Z2VbaV0gPSB0aGlzLnN0b3JhZ2VbaV07Ci0gICAgICAgICAgICB0aGlzLl9zdG9yYWdlID0gbmV3
U3RvcmFnZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKGRlbHRhU3RvcmFnZVNpemUgJiAweEZG
RkYpICE9IGRlbHRhU3RvcmFnZVNpemUgfHwgKG9wLm9wY29kZSAmIDB4RkZGRikgIT0gb3Aub3Bj
b2RlKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQgb2YgYm91bmRzISIpOwotICAg
ICAgICB0aGlzLnN0b3JhZ2VbdGhpcy5zaXplXSA9ICgoZGVsdGFTdG9yYWdlU2l6ZSAmIDB4RkZG
RikgPDwgMTYpIHwgKG9wLm9wY29kZSAmIDB4RkZGRik7Ci0gICAgICAgICsrdGhpcy5fc2l6ZTsK
LSAgICAgICAgaWYgKGRlbHRhU3RvcmFnZVNpemUgPD0gb3Aub3BlcmFuZHMuc2l6ZSkKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiVGhlIHN0b3JhZ2Ugc2l6ZSBtdXN0IGJlIGdyZWF0ZXIg
dGhhbiB0aGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBvcC5vcGVyYW5kcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgbGV0IG9wZXJhbmQg
PSBvcC5vcGVyYW5kc1tpXTsKLSAgICAgICAgICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PSAibnVt
YmVyIikgewotICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZVt0aGlzLnNpemVdID0gb3BlcmFu
ZDsKLSAgICAgICAgICAgICAgICArK3RoaXMuX3NpemU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KHR5cGVvZiBvcGVyYW5kID09ICJzdHJpbmciKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHdvcmQg
PSAwOwotICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgb3BlcmFuZC5sZW5ndGgg
KyAxOyArK2opIHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IGNoYXJDb2RlOwotICAgICAgICAg
ICAgICAgICAgICBpZiAoaiA8IG9wZXJhbmQubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhckNvZGUgPSBvcGVyYW5kLmNoYXJDb2RlQXQoaik7Ci0gICAgICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJDb2RlID0gMDsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGNoYXJDb2RlID4gMHhGRikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTm9uLUFTQ0lJIHN0cmluZ3MgZG9uJ3Qgd29yayB5ZXQiKTsKLSAgICAg
ICAgICAgICAgICAgICAgc3dpdGNoIChqICUgNCkgewotICAgICAgICAgICAgICAgICAgICBjYXNl
IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICB3b3JkIHw9IGNoYXJDb2RlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHdvcmQgfD0gKGNoYXJDb2RlIDw8IDgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHdvcmQgfD0gKGNoYXJDb2RlIDw8IDE2KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB3b3JkIHw9IChjaGFyQ29kZSA8PCAyNCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLnN0b3JhZ2VbdGhpcy5zaXplICsgKChqIC8gNCkgfCAwKV0gPSB3b3JkOwot
ICAgICAgICAgICAgICAgICAgICAgICAgd29yZCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBpZiAoKG9wZXJhbmQubGVuZ3RoICUgNCkgIT0gMCkKLSAgICAgICAgICAgICAg
ICAgICAgdGhpcy5zdG9yYWdlW3RoaXMuc2l6ZSArICgoKG9wZXJhbmQubGVuZ3RoICsgMSkgLyA0
KSB8IDApXSA9IHdvcmQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc2l6ZSArPSAoKChvcGVyYW5k
Lmxlbmd0aCArIDEpICsgMykgLyA0KSB8IDA7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHRoaXMuc3RvcmFnZVt0aGlzLnNpemVdID0gb3BlcmFuZC52YWx1ZTsKLSAgICAg
ICAgICAgICAgICArK3RoaXMuX3NpemU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBnZXQgc2l6ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTsKLSAg
ICB9Ci0KLSAgICBnZXQgc3RvcmFnZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc3Rv
cmFnZTsKLSAgICB9Ci0KLSAgICBnZXQgcmVzdWx0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuc3Rv
cmFnZVszXSA9IHRoaXMuX2xhcmdlc3RJZCArIDE7Ci0gICAgICAgIHJldHVybiB0aGlzLnN0b3Jh
Z2Uuc2xpY2UoMCwgdGhpcy5zaXplKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU1BJUlYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E0NTBmNzZl
NDguLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotdGQgewotICAgIGJvcmRlcjogc29saWQgYmxhY2sgMXB4
OwotfQotPC9zdHlsZT4KLSAgICA8IS0tIEZJWE1FOiBNaWdyYXRlIHRvIEVTNiBtb2R1bGVzIC0t
PgotICAgIDxzY3JpcHQgc3JjPSJOb2RlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
VHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlJlZmVyZW5jZVR5cGUuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWYWx1ZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJSZXdyaXRl
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpc2l0b3IuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQ
cm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJO
YXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iU2VtYW50aWMuanMiPjwv
c2NyaXB0PgotCi0gICAgPHNjcmlwdCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IkFsbG9jYXRlQXRFbnRyeVBvaW50cy5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9IkFub255bW91c1ZhcmlhYmxlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iQXJyYXlSZWZUeXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQXJyYXlU
eXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQXNzaWdubWVudC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkF1dG9XcmFwcGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iQmxvY2suanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJCb29sTGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iQnVpbHRJblNlbWFudGljLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iQnVpbHRpbk1hdHJpeEdldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJCdWls
dGluVmVjdG9yR2V0dGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQnVpbHRpblZl
Y3RvclNldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iQ2FzdHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJDaGVjay5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVz
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9IkNoZWNrTmF0aXZlRnVuY1N0YWdlcy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IkNoZWNrUmVjdXJzaW9uLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iQ2hlY2tSZWN1cnNpdmVUeXBlcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IkNoZWNrUmV0dXJucy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNoZWNrVHlwZXNX
aXRoQXJndW1lbnRzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ2hlY2tVbnJlYWNo
YWJsZUNvZGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDaGVja1dyYXBwZWQuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDaGVja2VyLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
Q29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ29uc3RleHBy
Rm9sZGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IkRvdEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJFQXJyYXlSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJFQnVmZmVyLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRUJ1ZmZlckJ1aWxkZXIuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJFUHRyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRW51
bUxpdGVyYWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJFbnVtTWVtYmVyLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRW51bVR5cGUuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJFdmFsdWF0aW9uQ29tbW9uLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iRXZhbHVhdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRXhwcmVzc2lvbkZp
bmRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJG
bGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkZsb2F0TGl0
ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJGb2xkQ29uc3RleHBycy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRnVuY0F0
dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJJZGVu
dGl0eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJJZlN0YXRlbWVu
dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkluZGV4RXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
SW5saW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJMYXlvdXRCdWZmZXJzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTGV4ZXIuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJMZXhlclRva2VuLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iTGl0ZXJhbFR5cGVDaGVja2VyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iTG9naWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJMb2dpY2FsTm90LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTG9vcENoZWNrZXIu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJNYXRyaXhUeXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJOYW1l
RmluZGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlcklu
ZGV4ZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJPcGVyYXRvckFycmF5UmVmTGVu
Z3RoLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iT3JpZ2luS2luZC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9IlByZXBhcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29s
dmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJSZXNvbHZlTmFtZXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJSZXNvbHZlT3Zl
cmxvYWRJbXBsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUmVzb2x2ZVByb3BlcnRp
ZXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJSZXNvbHZlVHlwZURlZnMuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJSZXNvdXJjZVNlbWFudGljLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
UmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlJldHVybkV4Y2Vw
dGlvbi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJTdGFnZUluT3V0U2VtYW50aWMuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iU3Ry
dWN0VHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlN3aXRjaENhc2UuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJTd2l0Y2hTdGF0ZW1lbnQuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0
b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlR5cGVEZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iVHlwZU92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJVaW50TGl0
ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJVbmlmaWNhdGlvbkNvbnRl
eHQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJVbnJlYWNoYWJsZUNvZGVDaGVja2Vy
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmFyaWFibGVEZWNsLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJWZWN0b3JUeXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlzaXRp
bmdTZXQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJXTGV4aWNhbEVycm9yLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iV1N5bnRheEVycm9yLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iV1RyYXBFcnJvci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IldUeXBlRXJyb3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJXaGlsZUxvb3AuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJXcmFwQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotICAgIGxldCBjb2RlID0gYAotc3RydWN0IFZlcnRleElucHV0IHsKLSAgICBmbG9h
dDIgcG9zaXRpb247Ci0gICAgZmxvYXQzIGNvbG9yOwotfQotCi1zdHJ1Y3QgVmVydGV4T3V0cHV0
IHsKLSAgICBmbG9hdDQgd3NsX1Bvc2l0aW9uOwotICAgIGZsb2F0NCBjb2xvcjsKLX0KLQotc3Ry
dWN0IEZyYWdtZW50T3V0cHV0IHsKLSAgICBmbG9hdDQgd3NsX0NvbG9yOwotfQotCi12ZXJ0ZXgg
VmVydGV4T3V0cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCkgewotICAg
IFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgcmVzdWx0LndzbF9Qb3NpdGlvbiA9IGZsb2F0NCh2
ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4sIDEuKTsKLSAgICByZXN1bHQuY29sb3IgPSBmbG9hdDQo
dmVydGV4SW5wdXQuY29sb3IsIDEpOwotICAgIAotICAgIGludFsxMF0gYTsKLSAgICBpbnRbMTB1
XSBiOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZy
YWdtZW50U2hhZGVyKFZlcnRleE91dHB1dCBzdGFnZUluKSB7Ci0gICAgRnJhZ21lbnRPdXRwdXQg
cmVzdWx0OwotICAgIHJlc3VsdC53c2xfQ29sb3IgPSBzdGFnZUluLmNvbG9yOwotICAgIHJldHVy
biByZXN1bHQ7Ci19YDsKLQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBmZXRjaCgic3BpcnYuY29yZS5ncmFtbWFyLmpzb24iKS50aGVu
KHJlc3BvbnNlID0+IHJlc3BvbnNlLmpzb24oKSkudGhlbihmdW5jdGlvbiAoanNvbikgewotICAg
ICAgICAgICAgbGV0IHNwaXJ2ID0gU1BJUlYoanNvbik7Ci0gICAgICAgICAgICBsZXQgcHJvZ3Jh
bSA9IHByZXBhcmUoIi9pbnRlcm5hbC90ZXN0IiwgMCwgY29kZSk7Ci0gICAgICAgICAgICBsZXQg
cmVzdWx0ID0gZ2VuZXJhdGVTUElSVihzcGlydiwgcHJvZ3JhbSk7Ci0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAg
ICAgbGV0IHJlc3VsdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiUmVzdWx0Iik7
Ci0gICAgICAgICAgICB3aGlsZSAocmVzdWx0RWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aCAhPSAw
KQotICAgICAgICAgICAgICAgIHJlc3VsdEVsZW1lbnQucmVtb3ZlQ2hpbGQocmVzdWx0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdKTsKLSAgICAgICAgICAgIGxldCBhbmNob3IgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJhIik7Ci0gICAgICAgICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtyZXN1bHQu
ZmlsZV0sIHsgdHlwZTogImFwcGxpY2F0aW9uL29jdGV0LWJpbmFyeSIgfSk7Ci0gICAgICAgICAg
ICBhbmNob3IuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7Ci0gICAgICAgICAgICBh
bmNob3IuZG93bmxvYWQgPSAicmVzdWx0LnNwdiI7Ci0gICAgICAgICAgICBhbmNob3IudGV4dENv
bnRlbnQgPSAiRG93bmxvYWQgZ2VuZXJhdGVkIFNQSVItViI7Ci0gICAgICAgICAgICByZXN1bHRF
bGVtZW50LmFwcGVuZENoaWxkKGFuY2hvcik7Ci0KLSAgICAgICAgICAgIGxldCB0YWJsZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7Ci0gICAgICAgICAgICBsZXQgdGFibGVIZWFk
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aGVhZCIpOwotICAgICAgICAgICAgbGV0IGhl
YWRlclJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7Ci0gICAgICAgICAgICBsZXQg
bmFtZUhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoIik7Ci0gICAgICAgICAgICBu
YW1lSGVhZGVyLnRleHRDb250ZW50ID0gIkF0dHJpYnV0ZSBuYW1lIjsKLSAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoIik7Ci0gICAgICAg
ICAgICBsb2NhdGlvbkhlYWRlci50ZXh0Q29udGVudCA9ICJMb2NhdGlvbiI7Ci0gICAgICAgICAg
ICBoZWFkZXJSb3cuYXBwZW5kQ2hpbGQobmFtZUhlYWRlcik7Ci0gICAgICAgICAgICBoZWFkZXJS
b3cuYXBwZW5kQ2hpbGQobG9jYXRpb25IZWFkZXIpOwotICAgICAgICAgICAgdGFibGVIZWFkZXIu
YXBwZW5kQ2hpbGQoaGVhZGVyUm93KTsKLSAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRh
YmxlSGVhZGVyKTsKLSAgICAgICAgICAgIGZvciAobGV0IGxvY2F0aW9uIG9mIHJlc3VsdC5sb2Nh
dGlvbnMpIHsKLSAgICAgICAgICAgICAgICBsZXQgdGFibGVSb3cgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ0ciIpOwotICAgICAgICAgICAgICAgIGxldCBuYW1lRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAgICAgICAgICAgICAgbmFtZUVsZW1lbnQudGV4dENv
bnRlbnQgPSBsb2NhdGlvbi5uYW1lOwotICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwotICAgICAgICAgICAgICAgIGxvY2F0
aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IGxvY2F0aW9uLmxvY2F0aW9uOwotICAgICAgICAgICAg
ICAgIHRhYmxlUm93LmFwcGVuZENoaWxkKG5hbWVFbGVtZW50KTsKLSAgICAgICAgICAgICAgICB0
YWJsZVJvdy5hcHBlbmRDaGlsZChsb2NhdGlvbkVsZW1lbnQpOwotICAgICAgICAgICAgICAgIHRh
YmxlLmFwcGVuZENoaWxkKHRhYmxlUm93KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
c3VsdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGFibGUpOwotICAgICAgICB9KS50aGVuKHVuZGVmaW5l
ZCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgbGV0IHJlc3VsdEVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiUmVzdWx0Iik7Ci0gICAgICAgICAgICB3aGlsZSAocmVzdWx0RWxl
bWVudC5jaGlsZE5vZGVzLmxlbmd0aCAhPSAwKQotICAgICAgICAgICAgICAgIHJlc3VsdEVsZW1l
bnQucmVtb3ZlQ2hpbGQocmVzdWx0RWxlbWVudC5jaGlsZE5vZGVzWzBdKTsKLSAgICAgICAgICAg
IHJlc3VsdEVsZW1lbnQudGV4dENvbnRlbnQgPSAiTG9hZCBmYWlsZWQuIjsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXYgaWQ9IlJlc3Vs
dCI+TG9hZGluZy4uLjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5ODQ0ZTA4NGYwOC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzI1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotZnVuY3Rpb24gZ2VuZXJhdGVTUElSVihzcGlydiwgcHJvZ3JhbSkKLXsKLQotICAgIGZ1
bmN0aW9uIGZpbmRFbnRyeVBvaW50cygpCi0gICAgewotICAgICAgICBsZXQgZW50cnlQb2ludHMg
PSBbXTsKLSAgICAgICAgZm9yIChsZXQgZnVuY3Rpb25OYW1lcyBvZiBwcm9ncmFtLmZ1bmN0aW9u
cy52YWx1ZXMoKSkgewotICAgICAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jdGlvbk5hbWVz
KSB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChmdW5jLnNoYWRlclR5cGUpIHsKLSAgICAgICAg
ICAgICAgICBjYXNlICJ2ZXJ0ZXgiOgotICAgICAgICAgICAgICAgIGNhc2UgImZyYWdtZW50IjoK
LSAgICAgICAgICAgICAgICAgICAgZW50cnlQb2ludHMucHVzaChmdW5jKTsKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBlbnRyeVBvaW50czsKLSAgICB9Ci0KLSAgICBsZXQgY3VycmVu
dElkID0gMzsKLSAgICBsZXQgY3VycmVudExvY2F0aW9uID0gMDsKLSAgICBsZXQgdHlwZU1hcCA9
IG5ldyBNYXAoKTsKLSAgICBsZXQgcmV2ZXJzZVR5cGVNYXAgPSBuZXcgTWFwKCk7Ci0gICAgbGV0
IGVudHJ5UG9pbnRzID0gW107Ci0KLSAgICB0eXBlTWFwLnNldChwcm9ncmFtLmludHJpbnNpY3Mu
dm9pZCwgY3VycmVudElkKyspOwotICAgIHR5cGVNYXAuc2V0KHByb2dyYW0uaW50cmluc2ljcy51
aW50MzIsIGN1cnJlbnRJZCsrKTsKLQotICAgIGZvciAobGV0IGVudHJ5UG9pbnQgb2YgZmluZEVu
dHJ5UG9pbnRzKCkpIHsKLSAgICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBlbnRyeVBvaW50Owot
ICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFNoYWRlciwgbmV3IFZpc2l0
aW5nU2V0KGVudHJ5UG9pbnQpKTsKLQotICAgICAgICBsZXQgdHlwZUFuYWx5emVyID0gbmV3IFNQ
SVJWVHlwZUFuYWx5emVyKHByb2dyYW0sIHR5cGVNYXAsIGN1cnJlbnRJZCk7Ci0gICAgICAgIGlu
bGluZWRTaGFkZXIudmlzaXQodHlwZUFuYWx5emVyKTsKLSAgICAgICAgY3VycmVudElkID0gdHlw
ZUFuYWx5emVyLmN1cnJlbnRJZDsKLQotICAgICAgICBjdXJyZW50TG9jYXRpb24gPSAwOwotICAg
ICAgICBsZXQgdmFsdWVBbmFseXplciA9IG5ldyBTUElSVlByaW1pdGl2ZVZhcmlhYmxlQW5hbHl6
ZXIocHJvZ3JhbSwgdHlwZU1hcCwgY3VycmVudElkLCBjdXJyZW50TG9jYXRpb24pOwotICAgICAg
ICBpbmxpbmVkU2hhZGVyLnJldHVyblR5cGUudmlzaXQodmFsdWVBbmFseXplcik7Ci0gICAgICAg
IGN1cnJlbnRJZCA9IHZhbHVlQW5hbHl6ZXIuY3VycmVudElkOwotICAgICAgICBsZXQgb3V0cHV0
VmFsdWVzID0gdmFsdWVBbmFseXplci5yZXN1bHQ7Ci0KLSAgICAgICAgbGV0IGlucHV0VmFsdWVz
ID0gW107Ci0gICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBpbmxpbmVkU2hhZGVyLnBhcmFt
ZXRlcnMpIHsKLSAgICAgICAgICAgIGlmIChwYXJhbWV0ZXIudHlwZS50eXBlIGluc3RhbmNlb2Yg
U3RydWN0VHlwZSkgewotICAgICAgICAgICAgICAgIGxldCB2YWx1ZUFuYWx5emVyID0gbmV3IFNQ
SVJWUHJpbWl0aXZlVmFyaWFibGVBbmFseXplcihwcm9ncmFtLCB0eXBlTWFwLCBjdXJyZW50SWQs
IGN1cnJlbnRMb2NhdGlvbiwgcGFyYW1ldGVyLm5hbWUpOwotICAgICAgICAgICAgICAgIHBhcmFt
ZXRlci52aXNpdCh2YWx1ZUFuYWx5emVyKTsKLSAgICAgICAgICAgICAgICBjdXJyZW50SWQgPSB2
YWx1ZUFuYWx5emVyLmN1cnJlbnRJZDsKLSAgICAgICAgICAgICAgICBjdXJyZW50TG9jYXRpb24g
PSB2YWx1ZUFuYWx5emVyLmN1cnJlbnRMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICBmb3IgKGxl
dCBpbnB1dFZhbHVlIG9mIHZhbHVlQW5hbHl6ZXIucmVzdWx0KQotICAgICAgICAgICAgICAgICAg
ICBpbnB1dFZhbHVlcy5wdXNoKGlucHV0VmFsdWUpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChw
YXJhbWV0ZXIudHlwZS50eXBlIGluc3RhbmNlb2YgQXJyYXlSZWZUeXBlKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0KLSAgICAgICAgZW50cnlQb2ludHMucHVzaCh7IGlkOiBjdXJyZW50SWQrKywgc2hhZGVyOiBp
bmxpbmVkU2hhZGVyLCBpbnB1dHM6IGlucHV0VmFsdWVzLCBvdXRwdXRzOiBvdXRwdXRWYWx1ZXMg
fSk7Ci0gICAgfQotICAgIAotICAgIGZvciAobGV0IHR5cGUgb2YgdHlwZU1hcCkgewotICAgICAg
ICBpZiAodHlwZW9mIHR5cGVbMV0gPT0gIm9iamVjdCIpCi0gICAgICAgICAgICByZXZlcnNlVHlw
ZU1hcC5zZXQodHlwZVsxXS5pZCwgdHlwZVswXSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHJldmVyc2VUeXBlTWFwLnNldCh0eXBlWzFdLCB0eXBlWzBdKTsKLSAgICB9Ci0KLQotCi0KLQot
Ci0KLQotCi0KLQotCi0KLQotICAgIGZ1bmN0aW9uIGVtaXRUeXBlcyhhc3NlbWJsZXIpIHsKLSAg
ICAgICAgbGV0IGVtaXR0ZWRUeXBlcyA9IG5ldyBTZXQoKTsKLSAgICAgICAgZnVuY3Rpb24gZG9F
bWl0VHlwZXModHlwZSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVtaXR0ZWRUeXBlcy5o
YXModHlwZVswXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgZW1pdHRl
ZFR5cGVzLmFkZCh0eXBlWzBdKTsKLSAgICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVsxXSA9PSAi
b2JqZWN0IikgewotICAgICAgICAgICAgICAgIGlmICh0eXBlWzFdLmZpZWxkVHlwZXMpIHsKLSAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZmllbGRUeXBlIG9mIHR5cGVbMV0uZmllbGRUeXBl
cykgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9IHJldmVyc2VUeXBlTWFwLmdl
dChmaWVsZFR5cGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdHlwZU1h
cC5nZXQoa2V5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvRW1pdFR5cGVzKFtrZXksIHZh
bHVlXSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc3dpdGNo
ICh0eXBlWzBdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgInN0cnVjdCB2ZWMyPD4geyBp
bnQzMiB4OyBpbnQzMiB5IH0iOgotICAgICAgICAgICAgICAgICAgICBjYXNlICJzdHJ1Y3QgdmVj
Mjw+IHsgdWludDMyIHg7IHVpbnQzMiB5OyB9IjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAi
c3RydWN0IHZlYzI8PiB7IGZsb2F0MzIgeDsgZmxvYXQzMiB5OyB9IjoKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZSAic3RydWN0IHZlYzI8PiB7IGZsb2F0NjQgeDsgZmxvYXQ2NCB5OyB9IjoKLSAg
ICAgICAgICAgICAgICAgICAgY2FzZSAic3RydWN0IHZlYzM8PiB7IGludDMyIHg7IGludDMyIHk7
IGludDMyIHo7IH0iOgotICAgICAgICAgICAgICAgICAgICBjYXNlICJzdHJ1Y3QgdmVjMzw+IHsg
dWludDMyIHg7IHVpbnQzMiB5OyB1aW50MzIgejsgfSI6Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgInN0cnVjdCB2ZWMzPD4geyBmbG9hdDMyIHg7IGZsb2F0MzIgeTsgZmxvYXQzMiB6OyB9IjoK
LSAgICAgICAgICAgICAgICAgICAgY2FzZSAic3RydWN0IHZlYzM8PiB7IGZsb2F0NjQgeDsgZmxv
YXQ2NCB5OyBmbG9hdDY0IHo7IH0iOgotICAgICAgICAgICAgICAgICAgICBjYXNlICJzdHJ1Y3Qg
dmVjNDw+IHsgaW50MzIgeDsgaW50MzIgeTsgaW50MzIgejsgaW50MzIgdzsgfSI6Ci0gICAgICAg
ICAgICAgICAgICAgIGNhc2UgInN0cnVjdCB2ZWM0PD4geyB1aW50MzIgeDsgdWludDMyIHk7IHVp
bnQzMiB6OyB1aW50MzIgdzsgfSI6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgInN0cnVjdCB2
ZWM0PD4geyBmbG9hdDMyIHg7IGZsb2F0MzIgeTsgZmxvYXQzMiB6OyBmbG9hdDMyIHc7IH0iOgot
ICAgICAgICAgICAgICAgICAgICBjYXNlICJzdHJ1Y3QgdmVjNDw+IHsgZmxvYXQ2NCB4OyBmbG9h
dDY0IHk7IGZsb2F0NjQgejsgZmxvYXQ2NCB3OyB9IjoKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VtYmxlci5hcHBlbmQobmV3IHNwaXJ2Lm9wcy5UeXBlVmVjdG9yKHR5cGVbMV0uaWQsIHR5
cGVbMV0uZmllbGRUeXBlc1swXSwgdHlwZVsxXS5maWVsZFR5cGVzLmxlbmd0aCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlbWJsZXIuYXBwZW5kKG5ldyBzcGlydi5vcHMuVHlw
ZVN0cnVjdCh0eXBlWzFdLmlkLCAuLi50eXBlWzFdLmZpZWxkVHlwZXMpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF0eXBlWzFdLmVsZW1lbnRUeXBl
KQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHR5cGUh
Iik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRUeXBlID0g
dHlwZVsxXS5lbGVtZW50VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9IHJldmVy
c2VUeXBlTWFwLmdldChlbGVtZW50VHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgIGxldCB2YWx1
ZSA9IHR5cGVNYXAuZ2V0KGtleSk7Ci0gICAgICAgICAgICAgICAgICAgIGRvRW1pdFR5cGVzKFtr
ZXksIHZhbHVlXSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgbGV0IGlkID0gY3VycmVudElkKys7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VtYmxlci5hcHBlbmQobmV3IHNwaXJ2Lm9wcy5Db25z
dGFudCh0eXBlTWFwLmdldChwcm9ncmFtLmludHJpbnNpY3MudWludDMyKSwgaWQsIHR5cGVbMV0u
bnVtRWxlbWVudHMpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcg
c3BpcnYub3BzLlR5cGVBcnJheSh0eXBlWzFdLmlkLCBlbGVtZW50VHlwZSwgaWQpKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHN3aXRj
aCAodHlwZVswXS5uYW1lKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSAidm9pZCI6Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VtYmxlci5hcHBlbmQobmV3IHNwaXJ2Lm9wcy5UeXBlVm9pZCh0eXBl
WzFdKSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2Ug
ImJvb2wiOgotICAgICAgICAgICAgICAgICAgICBhc3NlbWJsZXIuYXBwZW5kKG5ldyBzcGlydi5v
cHMuVHlwZUJvb2wodHlwZVsxXSkpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlICJpbnQzMiI6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VtYmxlci5h
cHBlbmQobmV3IHNwaXJ2Lm9wcy5UeXBlSW50KHR5cGVbMV0sIDMyLCAxKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgInVpbnQzMiI6Ci0gICAgICAg
ICAgICAgICAgY2FzZSAidWludDgiOgotICAgICAgICAgICAgICAgICAgICBhc3NlbWJsZXIuYXBw
ZW5kKG5ldyBzcGlydi5vcHMuVHlwZUludCh0eXBlWzFdLCAzMiwgMCkpOwotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDMyIjoKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcgc3BpcnYub3BzLlR5cGVGbG9hdCh0eXBl
WzFdLCAzMikpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBj
YXNlICJmbG9hdDY0IjoKLSAgICAgICAgICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcg
c3BpcnYub3BzLlR5cGVGbG9hdCh0eXBlWzFdLCA2NCkpOwotICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgZG9FbWl0VHlwZXMoW3Byb2dyYW0uaW50cmluc2ljcy51aW50MzIsIHR5cGVNYXAuZ2V0KHBy
b2dyYW0uaW50cmluc2ljcy51aW50MzIpXSk7Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgdHlw
ZU1hcCkKLSAgICAgICAgICAgIGRvRW1pdFR5cGVzKHR5cGUpCi0gICAgfQotCi0KLQotCi0KLQot
Ci0KLQotCi0KLQotICAgIGxldCBjb25zdGFudHMgPSBuZXcgTWFwKCk7Ci0gICAgY2xhc3MgQ29u
c3RhbnRGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICAgICAgdmlzaXRHZW5lcmljTGl0ZXJh
bFR5cGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5cGUgPSBub2RlLnR5cGU7
Ci0gICAgICAgICAgICB3aGlsZSAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYpCi0gICAgICAgICAg
ICAgICAgdHlwZSA9IHR5cGUudHlwZTsKLSAgICAgICAgICAgIGxldCB2YWx1ZXM7Ci0gICAgICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgcHJvZ3JhbS5pbnRyaW5zaWNz
LmJvb2w6Ci0gICAgICAgICAgICAgICAgdmFsdWVzID0gW25vZGUudmFsdWVdOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBwcm9ncmFtLmludHJpbnNpY3MuaW50MzI6
Ci0gICAgICAgICAgICBjYXNlIHByb2dyYW0uaW50cmluc2ljcy51aW50MzI6Ci0gICAgICAgICAg
ICBjYXNlIHByb2dyYW0uaW50cmluc2ljcy51aW50ODoKLSAgICAgICAgICAgICAgICB2YWx1ZXMg
PSBbbm9kZS52YWx1ZV0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
cHJvZ3JhbS5pbnRyaW5zaWNzLmZsb2F0OiB7Ci0gICAgICAgICAgICAgICAgbGV0IGFycmF5QnVm
ZmVyID0gbmV3IEFycmF5QnVmZmVyKE1hdGgubWF4KFVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVN
RU5ULCBGbG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQpKTsKLSAgICAgICAgICAgICAgICBs
ZXQgZmxvYXRWaWV3ID0gbmV3IEZsb2F0MzJBcnJheShhcnJheUJ1ZmZlcik7Ci0gICAgICAgICAg
ICAgICAgbGV0IHVpbnRWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGFycmF5QnVmZmVyKTsKLSAgICAg
ICAgICAgICAgICBmbG9hdFZpZXdbMF0gPSBub2RlLnZhbHVlOwotICAgICAgICAgICAgICAgIHZh
bHVlcyA9IHVpbnRWaWV3OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVu
cmVjb2duaXplZCBsaXRlcmFsLiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY29uc3Rh
bnRzLnNldChub2RlLCB7IGlkOiBjdXJyZW50SWQrKywgdHlwZUlkOiB0eXBlTWFwLmdldCh0eXBl
KSwgdHlwZTogdHlwZSwgdmFsdWVzOiB2YWx1ZXMgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
Zm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRyeVBvaW50cykKLSAgICAgICAgZW50cnlQb2ludC5z
aGFkZXIudmlzaXQobmV3IENvbnN0YW50RmluZGVyKCkpOwotCi0KLQotCi0KLQotCi0KLQotCi0K
LQotICAgIGxldCBhc3NlbWJsZXIgPSBuZXcgU1BJUlZBc3NlbWJsZXIoKTsKLSAgICAvLyAxLiBB
bGwgT3BDYXBhYmlsaXR5IGluc3RydWN0aW9ucwotICAgIGFzc2VtYmxlci5hcHBlbmQobmV3IHNw
aXJ2Lm9wcy5DYXBhYmlsaXR5KHNwaXJ2LmtpbmRzLkNhcGFiaWxpdHkuU2hhZGVyKSk7Ci0gICAg
YXNzZW1ibGVyLmFwcGVuZChuZXcgc3BpcnYub3BzLkNhcGFiaWxpdHkoc3BpcnYua2luZHMuQ2Fw
YWJpbGl0eS5GbG9hdDY0KSk7Ci0gICAgLy8gMi4gT3B0aW9uYWwgT3BFeHRlbnNpb24gaW5zdHJ1
Y3Rpb25zCi0gICAgLy8gMy4gT3B0aW9uYWwgT3BFeHRJbnN0SW1wb3J0IGluc3RydWN0aW9ucwot
ICAgIC8vIDQuIFRoZSBzaW5nbGUgcmVxdWlyZWQgT3BNZW1vcnlNb2RlbCBpbnN0cnVjdGlvbgot
ICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGlmIHdlIGNhbiB1c2UgdGhlIFNpbXBsZSBtZW1vcnkg
bW9kZWwgaW5zdGVhZCBvZiB0aGUgR0xTTCBtZW1vcnkgbW9kZWwuCi0gICAgLy8gVGhlIHNwZWMg
c2F5cyBub3RoaW5nIGFib3V0IHdoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVtIGlzLiDw
n5KvCi0gICAgYXNzZW1ibGVyLmFwcGVuZChuZXcgc3BpcnYub3BzLk1lbW9yeU1vZGVsKHNwaXJ2
LmtpbmRzLkFkZHJlc3NpbmdNb2RlbC5Mb2dpY2FsLCBzcGlydi5raW5kcy5NZW1vcnlNb2RlbC5H
TFNMNDUwKSk7Ci0KLSAgICAvLyA1LiBBbGwgZW50cnkgcG9pbnQgZGVjbGFyYXRpb25zCi0gICAg
Zm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRyeVBvaW50cykgewotICAgICAgICBsZXQgZXhlY3V0
aW9uTW9kZWw7Ci0gICAgICAgIHN3aXRjaCAoZW50cnlQb2ludC5zaGFkZXIuc2hhZGVyVHlwZSkg
ewotICAgICAgICBjYXNlICJ2ZXJ0ZXgiOgotICAgICAgICAgICAgZXhlY3V0aW9uTW9kZWwgPSBz
cGlydi5raW5kcy5FeGVjdXRpb25Nb2RlbC5WZXJ0ZXg7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSAiZnJhZ21lbnQiOgotICAgICAgICAgICAgZXhlY3V0aW9uTW9kZWwgPSBzcGly
di5raW5kcy5FeGVjdXRpb25Nb2RlbC5GcmFnbWVudDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGxldCBpZCA9IGVudHJ5UG9pbnQuaWQ7Ci0gICAgICAgIGxldCBuYW1l
ID0gZW50cnlQb2ludC5zaGFkZXIubmFtZTsKLSAgICAgICAgbGV0IGludGVyZmFjZUlkcyA9IFtd
Ci0gICAgICAgIGZvciAobGV0IHZhbHVlIG9mIGVudHJ5UG9pbnQuaW5wdXRzKQotICAgICAgICAg
ICAgaW50ZXJmYWNlSWRzLnB1c2godmFsdWUuaWQpOwotICAgICAgICBmb3IgKGxldCB2YWx1ZSBv
ZiBlbnRyeVBvaW50Lm91dHB1dHMpCi0gICAgICAgICAgICBpbnRlcmZhY2VJZHMucHVzaCh2YWx1
ZS5pZCk7Ci0gICAgICAgIGFzc2VtYmxlci5hcHBlbmQobmV3IHNwaXJ2Lm9wcy5FbnRyeVBvaW50
KGV4ZWN1dGlvbk1vZGVsLCBpZCwgbmFtZSwgLi4uaW50ZXJmYWNlSWRzKSk7Ci0gICAgfQotCi0g
ICAgLy8gNi4gQWxsIGV4ZWN1dGlvbiBtb2RlIGRlY2xhcmF0aW9ucwotICAgIGZvciAobGV0IGVu
dHJ5UG9pbnQgb2YgZW50cnlQb2ludHMpIHsKLSAgICAgICAgbGV0IGlkID0gZW50cnlQb2ludC5p
ZDsKLSAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcgc3BpcnYub3BzLkV4ZWN1dGlvbk1vZGUo
aWQsIHNwaXJ2LmtpbmRzLkV4ZWN1dGlvbk1vZGUuT3JpZ2luTG93ZXJMZWZ0KSk7Ci0gICAgfQot
Ci0gICAgLy8gNy4gVGhlc2UgZGVidWcgaW5zdHJ1Y3Rpb25zCi0gICAgLy8gOC4gQWxsIGFubm90
YXRpb24gaW5zdHJ1Y3Rpb25zCi0gICAgLy8gRklYTUU6IFRoZXJlIGFyZSBwcm9iYWJseSBtb3Jl
IGFubm90YXRpb25zIHRoYXQgYXJlIHJlcXVpcmVkIHRoYW4ganVzdCBsb2NhdGlvbi4KLSAgICBs
ZXQgbG9jYXRpb25zID0gW107Ci0gICAgZm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRyeVBvaW50
cykgewotICAgICAgICBzd2l0Y2ggKGVudHJ5UG9pbnQuc2hhZGVyLnNoYWRlclR5cGUpIHsKLSAg
ICAgICAgY2FzZSAidmVydGV4IjoKLSAgICAgICAgICAgIGZvciAobGV0IGlucHV0IG9mIGVudHJ5
UG9pbnQuaW5wdXRzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcgc3Bp
cnYub3BzLkRlY29yYXRlKGlucHV0LmlkLCBzcGlydi5raW5kcy5EZWNvcmF0aW9uLkxvY2F0aW9u
LCBpbnB1dC5sb2NhdGlvbikpOwotICAgICAgICAgICAgICAgIGxvY2F0aW9ucy5wdXNoKHsgbmFt
ZTogZW50cnlQb2ludC5zaGFkZXIubmFtZSArICIuIiArIGlucHV0Lm5hbWUsIGxvY2F0aW9uOiBp
bnB1dC5sb2NhdGlvbiB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlICJmcmFnbWVudCI6Ci0gICAgICAgICAgICBmb3IgKGxldCBvdXRwdXQgb2YgZW50
cnlQb2ludC5vdXRwdXRzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcg
c3BpcnYub3BzLkRlY29yYXRlKG91dHB1dC5pZCwgc3BpcnYua2luZHMuRGVjb3JhdGlvbi5Mb2Nh
dGlvbiwgb3V0cHV0LmxvY2F0aW9uKSk7Ci0gICAgICAgICAgICAgICAgbG9jYXRpb25zLnB1c2go
eyBuYW1lOiBlbnRyeVBvaW50LnNoYWRlci5uYW1lICsgIi4iICsgb3V0cHV0Lm5hbWUsIGxvY2F0
aW9uOiBvdXRwdXQubG9jYXRpb24gfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIDkuIEFsbCB0eXBlIGRlY2xhcmF0aW9ucywg
YWxsIGNvbnN0YW50IGluc3RydWN0aW9ucywgYW5kIGFsbCBnbG9iYWwgdmFyaWFibGUgZGVjbGFy
YXRpb25zCi0gICAgZW1pdFR5cGVzKGFzc2VtYmxlcik7Ci0gICAgbGV0IGZ1bmN0aW9uVHlwZSA9
IGN1cnJlbnRJZCsrOwotICAgIGFzc2VtYmxlci5hcHBlbmQobmV3IHNwaXJ2Lm9wcy5UeXBlRnVu
Y3Rpb24oZnVuY3Rpb25UeXBlLCB0eXBlTWFwLmdldChwcm9ncmFtLmludHJpbnNpY3Mudm9pZCkp
KTsKLSAgICBmb3IgKGxldCBjb25zdGFudCBvZiBjb25zdGFudHMpIHsKLSAgICAgICAgaWYgKGNv
bnN0YW50WzFdLnR5cGUgPT0gcHJvZ3JhbS5pbnRyaW5zaWNzLmJvb2wpIHsKLSAgICAgICAgICAg
IGlmIChjb25zdGFudFsxXS52YWx1ZVswXSkKLSAgICAgICAgICAgICAgICBhc3NlbWJsZXIuYXBw
ZW5kKG5ldyBzcGlydi5vcHMuQ29uc3RhbnRUcnVlKGNvbnN0YW50WzFdLmlkKSk7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcgc3BpcnYub3Bz
LkNvbnN0YW50RmFsc2UoY29uc3RhbnRbMV0uaWQpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBhc3NlbWJsZXIuYXBwZW5kKG5ldyBzcGlydi5vcHMuQ29uc3RhbnQoY29uc3RhbnRbMV0u
dHlwZUlkLCBjb25zdGFudFsxXS5pZCwgLi4uY29uc3RhbnRbMV0udmFsdWVzKSk7Ci0gICAgfQot
ICAgIGZvciAobGV0IGVudHJ5UG9pbnQgb2YgZW50cnlQb2ludHMpIHsKLSAgICAgICAgZm9yIChs
ZXQgaW5wdXQgb2YgZW50cnlQb2ludC5pbnB1dHMpCi0gICAgICAgICAgICBhc3NlbWJsZXIuYXBw
ZW5kKG5ldyBzcGlydi5vcHMuVmFyaWFibGUoaW5wdXQudHlwZSwgaW5wdXQuaWQsIHNwaXJ2Lmtp
bmRzLlN0b3JhZ2VDbGFzcy5JbnB1dCkpOwotICAgICAgICBmb3IgKGxldCBvdXRwdXQgb2YgZW50
cnlQb2ludC5vdXRwdXRzKQotICAgICAgICAgICAgYXNzZW1ibGVyLmFwcGVuZChuZXcgc3BpcnYu
b3BzLlZhcmlhYmxlKG91dHB1dC50eXBlLCBvdXRwdXQuaWQsIHNwaXJ2LmtpbmRzLlN0b3JhZ2VD
bGFzcy5PdXRwdXQpKTsKLSAgICB9Ci0KLSAgICAvLyAxMC4gQWxsIGZ1bmN0aW9uIGRlY2xhcmF0
aW9ucwotICAgIC8vIDExLiBBbGwgZnVuY3Rpb24gZGVmaW5pdGlvbnMKLSAgICBmb3IgKGxldCBl
bnRyeVBvaW50IG9mIGVudHJ5UG9pbnRzKSB7Ci0gICAgICAgIGFzc2VtYmxlci5hcHBlbmQobmV3
IHNwaXJ2Lm9wcy5GdW5jdGlvbih0eXBlTWFwLmdldChwcm9ncmFtLmludHJpbnNpY3Mudm9pZCks
IGVudHJ5UG9pbnQuaWQsIFtzcGlydi5raW5kcy5GdW5jdGlvbkNvbnRyb2wuTm9uZV0sIGZ1bmN0
aW9uVHlwZSkpOwotICAgICAgICBhc3NlbWJsZXIuYXBwZW5kKG5ldyBzcGlydi5vcHMuRnVuY3Rp
b25FbmQoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHsgZmlsZTogYXNzZW1ibGVyLnJlc3VsdCwg
bG9jYXRpb25zOiBsb2NhdGlvbnMgfTsKLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlZUeXBlQW5hbHl6ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVlR5cGVBbmFseXplci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjAxMjM3NDQ1ZGQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWVHlwZUFuYWx5emVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ug
c3RyaWN0IjsKLQotY2xhc3MgU1BJUlZUeXBlQW5hbHl6ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAg
ICBjb25zdHJ1Y3Rvcihwcm9ncmFtLCB0eXBlTWFwLCBjdXJyZW50SWQpCi0gICAgewotICAgICAg
ICBzdXBlcigpOwotICAgICAgICB0aGlzLl9wcm9ncmFtID0gcHJvZ3JhbTsKLSAgICAgICAgdGhp
cy5fdHlwZU1hcCA9IHR5cGVNYXA7Ci0gICAgICAgIHRoaXMuX2N1cnJlbnRJZCA9IGN1cnJlbnRJ
ZDsKLSAgICAgICAgdGhpcy5fc3RhY2sgPSBbXTsKLSAgICB9Ci0KLSAgICBnZXQgcHJvZ3JhbSgp
Ci0gICAgewotICAgICAgICB0aGlzLl9wcm9ncmFtOwotICAgIH0KLQotICAgIGdldCB0eXBlTWFw
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlTWFwOwotICAgIH0KLQotICAgIGdl
dCBjdXJyZW50SWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRJZDsKLSAg
ICB9Ci0KLSAgICBnZXQgc3RhY2soKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3N0YWNr
OwotICAgIH0KLQotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIF9lbmNvdW50ZXJUeXBlKGlkKQotICAgIHsK
LSAgICAgICAgaWYgKHRoaXMuc3RhY2subGVuZ3RoID4gMCkKLSAgICAgICAgICAgIHRoaXMuc3Rh
Y2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXS5wdXNoKGlkKTsKLSAgICB9Ci0KLSAgICB2aXNpdE51
bGxUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBzdXBlci52aXNpdCh0aGlzKTsKLSAgICB9Ci0K
LSAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQotICAg
IHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVNYXAuaGFzKG5vZGUpKQotICAgICAgICAgICAgdGhp
cy50eXBlTWFwLnNldChub2RlLCB0aGlzLl9jdXJyZW50SWQrKyk7Ci0gICAgICAgIGxldCBpZCA9
IHRoaXMudHlwZU1hcC5nZXQobm9kZSk7Ci0gICAgICAgIHRoaXMuX2VuY291bnRlclR5cGUoaWQp
OwotICAgIH0KLQotICAgIHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHN1cGVy
LnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0UHRyVHlwZShub2RlKQotICAgIHsKLSAg
ICAgICAgLy8gSW50ZW50aW9uYWxseSBibGFuawotICAgIH0KLQotICAgIHZpc2l0QXJyYXlSZWZU
eXBlKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLnZpc2l0TmF0aXZlVHlwZShwcm9ncmFtLmlu
dHJpbnNpY3MudWludDMyKTsKLSAgICAgICAgdGhpcy52aXNpdE5hdGl2ZVR5cGUocHJvZ3JhbS5p
bnRyaW5zaWNzLnVpbnQzMik7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IFVzaW5nIHRvU3RyaW5n
KCkgaW4gdGhlc2UgZnVuY3Rpb25zIGlzIGEgaGFjay4gSW5zdGVhZCwgd2Ugc2hvdWxkIGltcGxl
bWVudCBhIHByb3BlciB0eXBlIGRlZHVwZXIuCi0gICAgdmlzaXRBcnJheVR5cGUobm9kZSkKLSAg
ICB7Ci0gICAgICAgIGxldCBpZDsKLSAgICAgICAgaWYgKHRoaXMudHlwZU1hcC5oYXMobm9kZS50
b1N0cmluZygpKSkgewotICAgICAgICAgICAgaWQgPSB0aGlzLnR5cGVNYXAuZ2V0KG5vZGUpOwot
ICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PSAib2JqZWN0IikKLSAgICAgICAgICAgICAgICBp
ZCA9IGlkLmlkOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGV0IGZpZWxkVHlwZSA9
IFtdOwotICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGZpZWxkVHlwZSk7Ci0gICAgICAgICAg
ICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgdGhpcy5zdGFjay5w
b3AoKTsKLSAgICAgICAgICAgIGlmIChmaWVsZFR5cGUubGVuZ3RoICE9IDEpCi0gICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJBcnJheXMgY2FuIG9ubHkgaGF2ZSBvbmUgZWxlbWVudCB0
eXBlISIpOwotICAgICAgICAgICAgaWQgPSB0aGlzLl9jdXJyZW50SWQrKzsKLSAgICAgICAgICAg
IG5vZGUubnVtRWxlbWVudHMudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB0aGlzLnR5cGVNYXAu
c2V0KG5vZGUudG9TdHJpbmcoKSwge2lkOiBpZCwgZWxlbWVudFR5cGU6IGZpZWxkVHlwZVswXSwg
bnVtRWxlbWVudHM6IG5vZGUubnVtRWxlbWVudHMudmFsdWV9KTsKLSAgICAgICAgfQotICAgICAg
ICB0aGlzLl9lbmNvdW50ZXJUeXBlKGlkKTsKLSAgICB9Ci0KLSAgICB2aXNpdFN0cnVjdFR5cGUo
bm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBpZDsKLSAgICAgICAgaWYgKHRoaXMudHlwZU1hcC5o
YXMobm9kZS50b1N0cmluZygpKSkgewotICAgICAgICAgICAgaWQgPSB0aGlzLnR5cGVNYXAuZ2V0
KG5vZGUudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIGlkID09ICJvYmplY3Qi
KQotICAgICAgICAgICAgICAgIGlkID0gaWQuaWQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBsZXQgZmllbGRUeXBlcyA9IFtdOwotICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGZp
ZWxkVHlwZXMpOwotICAgICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCi0g
ICAgICAgICAgICAgICAgZmllbGQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB0aGlzLnN0YWNr
LnBvcCgpOwotICAgICAgICAgICAgaWQgPSB0aGlzLl9jdXJyZW50SWQrKzsKLSAgICAgICAgICAg
IHRoaXMudHlwZU1hcC5zZXQobm9kZS50b1N0cmluZygpLCB7aWQ6IGlkLCBmaWVsZFR5cGVzOiBm
aWVsZFR5cGVzfSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fZW5jb3VudGVyVHlwZShpZCk7
Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJ
UlZWYXJpYWJsZUFuYWx5emVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJ
UlZWYXJpYWJsZUFuYWx5emVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjM2
ZDljM2M0My4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlZWYXJpYWJsZUFuYWx5emVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgU1BJUlZQcmltaXRpdmVWYXJpYWJsZUFuYWx5emVyIGV4dGVuZHMgVmlzaXRv
ciB7Ci0gICAgY29uc3RydWN0b3IocHJvZ3JhbSwgdHlwZU1hcCwgY3VycmVudElkLCBjdXJyZW50
TG9jYXRpb24sIHN0YXJ0TmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRo
aXMuX3Byb2dyYW0gPSBwcm9ncmFtOwotICAgICAgICB0aGlzLl90eXBlTWFwID0gdHlwZU1hcDsK
LSAgICAgICAgdGhpcy5fY3VycmVudElkID0gY3VycmVudElkOwotICAgICAgICB0aGlzLl9jdXJy
ZW50TG9jYXRpb24gPSBjdXJyZW50TG9jYXRpb247Ci0gICAgICAgIHRoaXMuX25hbWVDb21wb25l
bnRzID0gW107Ci0gICAgICAgIGlmIChzdGFydE5hbWUpCi0gICAgICAgICAgICB0aGlzLl9uYW1l
Q29tcG9uZW50cy5wdXNoKHN0YXJ0TmFtZSk7Ci0gICAgICAgIHRoaXMuX3Jlc3VsdCA9IFtdOwot
ICAgIH0KLQotICAgIGdldCBwcm9ncmFtKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2dyYW07
Ci0gICAgfQotCi0gICAgZ2V0IHR5cGVNYXAoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3R5cGVNYXA7Ci0gICAgfQotCi0gICAgZ2V0IGN1cnJlbnRJZCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fY3VycmVudElkOwotICAgIH0KLQotICAgIGdldCBjdXJyZW50TG9jYXRpb24o
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMb2NhdGlvbjsKLSAgICB9Ci0K
LSAgICBnZXQgbmFtZUNvbXBvbmVudHMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX25h
bWVDb21wb25lbnRzOwotICAgIH0KLQotICAgIGdldCByZXN1bHQoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3Jlc3VsdDsKLSAgICB9Ci0KLSAgICB2aXNpdFR5cGVSZWYobm9kZSkKLSAg
ICB7Ci0gICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNpdE51
bGxUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBzdXBlci52aXNpdCh0aGlzKTsKLSAgICB9Ci0K
LSAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLQotICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQotICAg
IHsKLSAgICAgICAgdGhpcy5yZXN1bHQucHVzaCh7IG5hbWU6IHRoaXMubmFtZUNvbXBvbmVudHMu
am9pbigiIiksIGlkOiB0aGlzLl9jdXJyZW50SWQrKywgdHlwZTogdGhpcy50eXBlTWFwLmdldChu
b2RlKSwgbG9jYXRpb246IHRoaXMuX2N1cnJlbnRMb2NhdGlvbisrIH0pOwotICAgIH0KLQotICAg
IHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnZpc2l0KHRoaXMpOwot
ICAgIH0KLQotICAgIHZpc2l0UHRyVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgLy8gSW50ZW50
aW9uYWxseSBibGFuawotICAgIH0KLQotICAgIHZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpCi0gICAg
ewotICAgICAgICB0aGlzLnZpc2l0TmF0aXZlVHlwZShwcm9ncmFtLmludHJpbnNpY3MudWludDMy
KTsKLSAgICAgICAgdGhpcy52aXNpdE5hdGl2ZVR5cGUocHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQz
Mik7Ci0gICAgfQotCi0gICAgdmlzaXRBcnJheVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgbm9kZS5udW1FbGVtZW50cy52YWx1ZTsgKytpKSB7Ci0gICAgICAg
ICAgICB0aGlzLm5hbWVDb21wb25lbnRzLnB1c2goIlsiKTsKLSAgICAgICAgICAgIHRoaXMubmFt
ZUNvbXBvbmVudHMucHVzaChpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgdGhpcy5uYW1lQ29t
cG9uZW50cy5wdXNoKCJdIik7Ci0gICAgICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgdGhpcy5uYW1lQ29tcG9uZW50cy5wb3AoKTsKLSAgICAgICAgICAg
IHRoaXMubmFtZUNvbXBvbmVudHMucG9wKCk7Ci0gICAgICAgICAgICB0aGlzLm5hbWVDb21wb25l
bnRzLnBvcCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUp
Ci0gICAgewotICAgICAgICBsZXQgYnVpbHRJblN0cnVjdHMgPSBbCi0gICAgICAgICAgICAic3Ry
dWN0IHZlYzI8PiB7IGludDMyIHg7IGludDMyIHkgfSIsCi0gICAgICAgICAgICAic3RydWN0IHZl
YzI8PiB7IHVpbnQzMiB4OyB1aW50MzIgeTsgfSIsCi0gICAgICAgICAgICAic3RydWN0IHZlYzI8
PiB7IGZsb2F0MzIgeDsgZmxvYXQzMiB5OyB9IiwKLSAgICAgICAgICAgICJzdHJ1Y3QgdmVjMjw+
IHsgZmxvYXQ2NCB4OyBmbG9hdDY0IHk7IH0iLAotICAgICAgICAgICAgInN0cnVjdCB2ZWMzPD4g
eyBpbnQzMiB4OyBpbnQzMiB5OyBpbnQzMiB6OyB9IiwKLSAgICAgICAgICAgICJzdHJ1Y3QgdmVj
Mzw+IHsgdWludDMyIHg7IHVpbnQzMiB5OyB1aW50MzIgejsgfSIsCi0gICAgICAgICAgICAic3Ry
dWN0IHZlYzM8PiB7IGZsb2F0MzIgeDsgZmxvYXQzMiB5OyBmbG9hdDMyIHo7IH0iLAotICAgICAg
ICAgICAgInN0cnVjdCB2ZWMzPD4geyBmbG9hdDY0IHg7IGZsb2F0NjQgeTsgZmxvYXQ2NCB6OyB9
IiwKLSAgICAgICAgICAgICJzdHJ1Y3QgdmVjNDw+IHsgaW50MzIgeDsgaW50MzIgeTsgaW50MzIg
ejsgaW50MzIgdzsgfSIsCi0gICAgICAgICAgICAic3RydWN0IHZlYzQ8PiB7IHVpbnQzMiB4OyB1
aW50MzIgeTsgdWludDMyIHo7IHVpbnQzMiB3OyB9IiwKLSAgICAgICAgICAgICJzdHJ1Y3QgdmVj
NDw+IHsgZmxvYXQzMiB4OyBmbG9hdDMyIHk7IGZsb2F0MzIgejsgZmxvYXQzMiB3OyB9IiwKLSAg
ICAgICAgICAgICJzdHJ1Y3QgdmVjNDw+IHsgZmxvYXQ2NCB4OyBmbG9hdDY0IHk7IGZsb2F0NjQg
ejsgZmxvYXQ2NCB3OyB9IgotICAgICAgICBdOwotICAgICAgICBmb3IgKGxldCBidWlsdEluU3Ry
dWN0IG9mIGJ1aWx0SW5TdHJ1Y3RzKSB7Ci0gICAgICAgICAgICBpZiAobm9kZS50b1N0cmluZygp
ID09IGJ1aWx0SW5TdHJ1Y3QpIHsKLSAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKHsg
bmFtZTogdGhpcy5uYW1lQ29tcG9uZW50cy5qb2luKCIiKSwgaWQ6IHRoaXMuX2N1cnJlbnRJZCsr
LCB0eXBlOiB0aGlzLnR5cGVNYXAuZ2V0KG5vZGUudG9TdHJpbmcoKSkuaWQsIGxvY2F0aW9uOiB0
aGlzLl9jdXJyZW50TG9jYXRpb24rKyAgfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmll
bGRzKSB7Ci0gICAgICAgICAgICBsZXQgZG90UHJlZml4ID0gdGhpcy5uYW1lQ29tcG9uZW50cy5s
ZW5ndGggPiAwOwotICAgICAgICAgICAgaWYgKGRvdFByZWZpeCkKLSAgICAgICAgICAgICAgICB0
aGlzLm5hbWVDb21wb25lbnRzLnB1c2goIi4iKTsKLSAgICAgICAgICAgIHRoaXMubmFtZUNvbXBv
bmVudHMucHVzaChmaWVsZC5uYW1lKTsKLSAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwot
ICAgICAgICAgICAgdGhpcy5uYW1lQ29tcG9uZW50cy5wb3AoKTsKLSAgICAgICAgICAgIGlmIChk
b3RQcmVmaXgpCi0gICAgICAgICAgICAgICAgdGhpcy5uYW1lQ29tcG9uZW50cy5wb3AoKTsKLSAg
ICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NhbXBsZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTc3MTNkZmM4MS4uMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU2FtcGxlci5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDE2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgU2FtcGxlciB7Ci0gICAgY29uc3RydWN0
b3Iob3B0aW9ucykKLSAgICB7Ci0gICAgICAgIGlmIChvcHRpb25zLnJBZGRyZXNzTW9kZSA9PSB1
bmRlZmluZWQpCi0gICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2Ui
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSBvcHRpb25z
LnJBZGRyZXNzTW9kZTsKLSAgICAgICAgaWYgKG9wdGlvbnMuc0FkZHJlc3NNb2RlID09IHVuZGVm
aW5lZCkKLSAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9IG9wdGlvbnMuc0Fk
ZHJlc3NNb2RlOwotICAgICAgICBpZiAob3B0aW9ucy50QWRkcmVzc01vZGUgPT0gdW5kZWZpbmVk
KQotICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gb3B0aW9ucy50QWRkcmVz
c01vZGU7Ci0gICAgICAgIGlmIChvcHRpb25zLm1pbkZpbHRlciA9PSB1bmRlZmluZWQpCi0gICAg
ICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSAibmVhcmVzdCI7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRoaXMuX21pbkZpbHRlciA9IG9wdGlvbnMubWluRmlsdGVyOwotICAgICAgICBpZiAo
b3B0aW9ucy5tYWdGaWx0ZXIgPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgdGhpcy5fbWFnRmls
dGVyID0gIm5lYXJlc3QiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9tYWdGaWx0
ZXIgPSBvcHRpb25zLm1hZ0ZpbHRlcjsKLSAgICAgICAgaWYgKG9wdGlvbnMubWlwbWFwRmlsdGVy
ID09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHRoaXMuX21pcG1hcEZpbHRlciA9ICJuZWFyZXN0
IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0gb3B0aW9u
cy5taXBtYXBGaWx0ZXI7Ci0gICAgICAgIGlmIChvcHRpb25zLmxvZE1pbkNsYW1wID09IHVuZGVm
aW5lZCkKLSAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gLU51bWJlci5NQVhfVkFMVUU7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gb3B0aW9ucy5s
b2RNaW5DbGFtcDsKLSAgICAgICAgaWYgKG9wdGlvbnMubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVk
KQotICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFtcCA9IG9wdGlvbnMubG9kTWF4
Q2xhbXA7Ci0gICAgICAgIGlmIChvcHRpb25zLm1heEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQot
ICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9IDE7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSBvcHRpb25zLm1heEFuaXNvdHJvcHk7Ci0gICAg
ICAgIGlmIChvcHRpb25zLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRlZmluZWQpCi0gICAgICAgICAg
ICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSBvcHRpb25zLmNvbXBhcmVGdW5jdGlvbjsKLSAg
ICAgICAgaWYgKG9wdGlvbnMuYm9yZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAg
dGhpcy5fYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0gb3B0aW9ucy5ib3JkZXJDb2xvcjsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IHJBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3JBZGRyZXNzTW9k
ZTsgfQotICAgIGdldCBzQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9zQWRkcmVzc01vZGU7
IH0KLSAgICBnZXQgdEFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fdEFkZHJlc3NNb2RlOyB9
Ci0gICAgZ2V0IG1pbkZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21pbkZpbHRlcjsgfQotICAgIGdl
dCBtYWdGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9tYWdGaWx0ZXI7IH0KLSAgICBnZXQgbWlwbWFw
RmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWlwbWFwRmlsdGVyOyB9Ci0gICAgZ2V0IGxvZE1pbkNs
YW1wKCkgeyByZXR1cm4gdGhpcy5fbG9kTWluQ2xhbXA7IH0KLSAgICBnZXQgbG9kTWF4Q2xhbXAo
KSB7IHJldHVybiB0aGlzLl9sb2RNYXhDbGFtcDsgfQotICAgIGdldCBtYXhBbmlzb3Ryb3B5KCkg
eyByZXR1cm4gdGhpcy5fbWF4QW5pc290cm9weTsgfQotICAgIGdldCBjb21wYXJlRnVuY3Rpb24o
KSB7IHJldHVybiB0aGlzLl9jb21wYXJlRnVuY3Rpb247IH0KLSAgICBnZXQgYm9yZGVyQ29sb3Io
KSB7IHJldHVybiB0aGlzLl9ib3JkZXJDb2xvcjsgfQotCi0gICAgY2FsY3VsYXRlQm9yZGVyQ29s
b3IoaW5uZXJUeXBlKQotICAgIHsKLSAgICAgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1
LjMuMwotICAgICAgICBmdW5jdGlvbiBjb21wdXRlVmFsdWVzKCkgewotICAgICAgICAgICAgc3dp
dGNoIChpbm5lclR5cGUpIHsKLSAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhciI6Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAs
IG9wYXF1ZVdoaXRlOiAweEZGfTsKLSAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQiOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNr
OiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZGfTsKLSAgICAgICAgICAgICAgICBjYXNlICJ1aW50IjoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVC
bGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZGRkZGRkZ9OwotICAgICAgICAgICAgICAgIGNhc2Ug
ImNoYXIiOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAs
IG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3Rn07Ci0gICAgICAgICAgICAgICAgY2Fz
ZSAic2hvcnQiOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZGfTsKLSAgICAgICAgICAgICAg
ICBjYXNlICJpbnQiOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZGRkZGRn07Ci0gICAgICAg
ICAgICAgICAgY2FzZSAiaGFsZiI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKLSAgICAgICAg
ICAgICAgICBjYXNlICJmbG9hdCI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKLSAgICAgICAg
ICAgICAgICBjYXNlICJ1Y2hhcjIiOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsw
eEZGLCAweEZGXX07Ci0gICAgICAgICAgICAgICAgY2FzZSAidXNob3J0MiI6Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGXX07Ci0gICAgICAgICAgICAgICAg
Y2FzZSAidWludDIiOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZG
LCAweEZGRkZGRkZGXX07Ci0gICAgICAgICAgICAgICAgY2FzZSAiY2hhcjIiOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6
IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGXX07Ci0gICAgICAgICAgICAgICAgY2Fz
ZSAic2hvcnQyIjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdG
RkZdfTsKLSAgICAgICAgICAgICAgICBjYXNlICJpbnQyIjoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9w
YXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OwotICAgICAgICAgICAgICAgIGNh
c2UgImhhbGYyIjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19OwotICAg
ICAgICAgICAgICAgIGNhc2UgImZsb2F0MiI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0
ZTogWzEsIDFdfTsKLSAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjMiOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6
IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAweEZGXX07Ci0gICAgICAgICAg
ICAgICAgY2FzZSAidXNob3J0MyI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0
ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsKLSAgICAgICAgICAgICAgICBjYXNlICJ1aW50
MyI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4
RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKLSAgICAgICAgICAgICAgICBjYXNlICJjaGFyMyI6Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4N0ZdfTsK
LSAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDMiOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwg
b3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07Ci0gICAgICAgICAgICAgICAg
Y2FzZSAiaW50MyI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZG
RkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKLSAgICAgICAgICAgICAgICBjYXNlICJo
YWxmMyI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsK
LSAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDMiOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwg
b3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07Ci0gICAgICAgICAgICAgICAgY2FzZSAidWNoYXI0IjoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhG
RiwgMHhGRiwgMHhGRl19OwotICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDQiOgotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3Bh
cXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZG
LCAweEZGRkYsIDB4RkZGRl19OwotICAgICAgICAgICAgICAgIGNhc2UgInVpbnQ0IjoKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZG
RiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OwotICAgICAgICAgICAgICAg
IGNhc2UgImNoYXI0IjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJs
YWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3Rl0sIG9wYXF1ZVdo
aXRlOiBbMHg3RiwgMHg3RiwgMHg3RiwgMHg3Rl19OwotICAgICAgICAgICAgICAgIGNhc2UgInNo
b3J0NCI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZGRl0sIG9wYXF1ZVdoaXRlOiBb
MHg3RkZGLCAweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07Ci0gICAgICAgICAgICAgICAgY2FzZSAi
aW50NCI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZGRkZGRkZdLCBvcGFxdWVXaGl0
ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKLSAg
ICAgICAgICAgICAgICBjYXNlICJoYWxmNCI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDFd
LCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsKLSAgICAgICAgICAgICAgICBjYXNlICJmbG9h
dDQiOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAw
LCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAx
LCAxXX07Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlwZSIpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjb21wdXRlVmFsdWVzKClbdGhpcy5ib3JkZXJD
b2xvcl07Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU2VtYW50aWMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TZW1hbnRpYy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE3OGNmMTA1ZmQuLjAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NlbWFudGljLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFNlbWFudGljIGV4dGVuZHMgTm9kZSB7
Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgIH0KLQotICAgIGdldCBvcmlnaW4oKSB7IHJl
dHVybiB0aGlzLl9vcmlnaW47IH0KLQotICAgIGVxdWFsVG9PdGhlclNlbWFudGljKG90aGVyU2Vt
YW50aWMpCi0gICAgewotICAgICAgICBjbGFzcyBDb21wYXJlciBleHRlbmRzIFZpc2l0b3Igewot
ICAgICAgICAgICAgdmlzaXRCdWlsdEluU2VtYW50aWMobm9kZSkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIShvdGhlclNlbWFudGljIGluc3RhbmNlb2YgQnVpbHRJblNlbWFu
dGljKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAg
IGlmIChub2RlLm5hbWUgIT0gb3RoZXJTZW1hbnRpYy5uYW1lKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUuZXh0cmFBcmd1bWVudHMg
JiYgb3RoZXJTZW1hbnRpYy5leHRyYUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgICAgICBp
ZiAobm9kZS5leHRyYUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXJTZW1hbnRpYy5leHRyYUFyZ3Vt
ZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5leHRyYUFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUuZXh0cmFBcmd1
bWVudHNbaV0gIT0gb3RoZXJTZW1hbnRpYy5leHRyYUFyZ3VtZW50c1tpXSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGlmIChub2RlLmV4dHJhQXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbm9kZS5leHRyYUFyZ3VtZW50cy5sZW5ndGggPT0gMDsKLSAgICAgICAgICAgICAgICBp
ZiAob3RoZXJTZW1hbnRpYy5leHRyYUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG90aGVyU2VtYW50aWMuZXh0cmFBcmd1bWVudHMubGVuZ3RoID09IDA7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0UmVz
b3VyY2VTZW1hbnRpYyhub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICgh
KG90aGVyU2VtYW50aWMgaW5zdGFuY2VvZiBSZXNvdXJjZVNlbWFudGljKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiBub2RlLnJlc291
cmNlTW9kZSA9PSBvdGhlclNlbWFudGljLnJlc291cmNlTW9kZSAmJiBub2RlLmluZGV4ID09IG90
aGVyU2VtYW50aWMuaW5kZXggJiYgbm9kZS5zcGFjZSA9PSBvdGhlclNlbWFudGljLnNwYWNlOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdFN0YWdlSW5PdXRTZW1hbnRpYyhub2Rl
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICghKG90aGVyU2VtYW50aWMgaW5z
dGFuY2VvZiBTdGFnZUluT3V0U2VtYW50aWMpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuaW5kZXggPT0gb3RoZXJTZW1hbnRp
Yy5pbmRleDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRTcGVjaWFsaXphdGlv
bkNvbnN0YW50U2VtYW50aWMobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gb3RoZXIgaW5zdGFuY2VvZiBTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWM7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMudmlzaXQobmV3IENv
bXBhcmVyKCkpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDIyMDY5N2I5NC4uMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFu
dGljLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFNwZWNpYWxp
emF0aW9uQ29uc3RhbnRTZW1hbnRpYyBleHRlbmRzIFNlbWFudGljIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4pCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4pOwotICAgIH0KLQotICAgIGlz
QWNjZXB0YWJsZVR5cGUodHlwZSwgcHJvZ3JhbSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0eXBl
LmlzTnVtYmVyOwotICAgIH0KLQotICAgIGlzQWNjZXB0YWJsZUZvclNoYWRlclR5cGUoZGlyZWN0
aW9uLCBzaGFkZXJUeXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSAiaW5w
dXQiOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAic3Bl
Y2lhbGl6ZWQiOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3RhZ2VJbk91dFNlbWFudGljLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhZ2VJbk91dFNlbWFudGljLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiZTllZWE5OWJlNy4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhZ2VJbk91dFNlbWFudGljLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmlj
dCI7Ci0KLWNsYXNzIFN0YWdlSW5PdXRTZW1hbnRpYyBleHRlbmRzIFNlbWFudGljIHsKLSAgICBj
b25zdHJ1Y3RvcihvcmlnaW4sIGluZGV4KQotICAgIHsKLSAgICAgICAgIHN1cGVyKG9yaWdpbik7
Ci0gICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OwotICAgIH0KLQotICAgIGdldCBpbmRleCgp
IHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9Ci0KLSAgICBpc0FjY2VwdGFibGVUeXBlKHR5cGUsIHBy
b2dyYW0pCi0gICAgewotICAgICAgICByZXR1cm4gdHlwZSBpbnN0YW5jZW9mIEVudW1UeXBlIHx8
IHR5cGUgaW5zdGFuY2VvZiBBcnJheVR5cGUgfHwgdHlwZSBpbnN0YW5jZW9mIFZlY3RvclR5cGUg
fHwgdHlwZSBpbnN0YW5jZW9mIE1hdHJpeFR5cGUgfHwgdHlwZS5pc051bWJlcjsKLSAgICB9Ci0K
LSAgICBpc0FjY2VwdGFibGVGb3JTaGFkZXJUeXBlKGRpcmVjdGlvbiwgc2hhZGVyVHlwZSkKLSAg
ICB7Ci0gICAgICAgIHN3aXRjaCAoc2hhZGVyVHlwZSkgewotICAgICAgICBjYXNlICJ2ZXJ0ZXgi
OgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgImZyYWdtZW50IjoKLSAg
ICAgICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gImlucHV0IjsKLSAgICAgICAgY2FzZSAiY29t
cHV0ZSI6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGNhc2UgInRlc3QiOgot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2hhZGVyIHR5cGU6ICR7c2hhZGVyVHlwZX1gKTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBg
YXR0cmlidXRlKCR7dGhpcy5pbmRleH0pYDsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDYyNGU2ZDE0NzguLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgL2Rldi9udWxsCkBAIC0xLDIy
MTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1sZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewotICAg
IGxldCByZXN1bHQgPSAiIjsKLSAgICBmdW5jdGlvbiBwcmludChzKQotICAgIHsKLSAgICAgICAg
aWYgKHMpCi0gICAgICAgICAgICByZXN1bHQgKz0gczsKLSAgICAgICAgcmVzdWx0ICs9ICJcbiI7
Ci0gICAgfQotICAgIChmdW5jdGlvbigpIHsKLSAgICAgICAgcHJpbnQoYC8vIFRoaXMgd2FzIGF1
dG9nZW5lcmF0ZWQgZnJvbSBHZW5lcmF0ZV9TdGFuZGFyZF9MaWJyYXJ5LnN3aWZ0ISBEbyBub3Qg
ZWRpdCEhYCk7Ci0gICAgICAgIHByaW50KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBb
YHZvaWRgLCBgYm9vbGAsIGB1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0
YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YCwgYGF0b21pY19pbnRgLCBgYXRvbWljX3VpbnRgXSkg
ewotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmICR7dHlwZX07YCk7Ci0gICAgICAg
IH0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwg
YHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAg
ICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgdHlwZWRlZiB2ZWN0b3I8JHt0eXBlfSwgJHtzaXplfT47YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYHR5cGVkZWYgJHt0eXBlfSR7c2l6ZX0gPSB2ZWN0b3I8JHt0eXBlfSwg
JHtzaXplfT47YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsK
LQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAg
ICAgICBmb3IgKGxldCBpIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0
IGogb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdHlw
ZWRlZiBtYXRyaXg8JHt0eXBlfSwgJHtpfSwgJHtqfT47YCk7Ci0gICAgICAgICAgICAgICAgICAg
IHByaW50KGB0eXBlZGVmICR7dHlwZX0ke2l9eCR7an0gPSBtYXRyaXg8JHt0eXBlfSwgJHtpfSwg
JHtqfT47YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiBzYW1wbGVyO2ApOwotICAgICAgICBmb3IgKGxl
dCB0eXBlIG9mIFtgVGV4dHVyZTFEYCwgYFJXVGV4dHVyZTFEYCwgYFRleHR1cmUxREFycmF5YCwg
YFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1cmUy
REFycmF5YCwgYFJXVGV4dHVyZTJEQXJyYXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNEYCwg
YFRleHR1cmVDdWJlYF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudEJhc2Ug
b2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBo
YWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFtgYCwg
YDJgLCBgM2AsIGA0YF0pIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBl
ZGVmICR7dHlwZX08JHt0eXBlQXJndW1lbnRCYXNlfSR7c2l6ZX0+O2ApOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCB0eXBlIG9m
IFtgVGV4dHVyZURlcHRoMkRgLCBgUldUZXh0dXJlRGVwdGgyRGAsIGBUZXh0dXJlRGVwdGgyREFy
cmF5YCwgYFJXVGV4dHVyZURlcHRoMkRBcnJheWAsIGBUZXh0dXJlRGVwdGhDdWJlYF0pIHsKLSAg
ICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBbYGZsb2F0YCwgYGhhbGZgXSkgewot
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3Vt
ZW50fT47YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQot
ICAgICAgICBmb3IgKGxldCB0eXBlMSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNo
YXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgZm9y
IChsZXQgdHlwZTIgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0
YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgICAgICBpZiAodHlwZTEg
IT0gdHlwZTIpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSBvcGVyYXRvciAk
e3R5cGUxfSgke3R5cGUyfSk7YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIHByaW50KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBb
YHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZg
LCBgZmxvYXRgXSkgewotICAgICAgICAgICAgcHJpbnQoYG9wZXJhdG9yIGJvb2woJHt0eXBlfSB4
KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4ICE9IDA7YCk7Ci0gICAgICAg
ICAgICBwcmludChgfWApOwotICAgICAgICB9Ci0gICAgICAgIHByaW50KCk7Ci0KLSAgICAgICAg
cHJpbnQoYG5hdGl2ZSBvcGVyYXRvciBpbnQoYXRvbWljX2ludCk7YCk7Ci0gICAgICAgIHByaW50
KGBuYXRpdmUgb3BlcmF0b3IgdWludChhdG9taWNfdWludCk7YCk7Ci0gICAgICAgIHByaW50KCk7
Ci0KLSAgICAgICAgcHJpbnQoYG5hdGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCwgYm9vbCk7YCk7
Ci0KLSAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3ImKGJvb2wgYSwgYm9vbCBiKSB7YCk7Ci0g
ICAgICAgIHByaW50KGAgICAgcmV0dXJuIGEgJiYgYjtgKTsKLSAgICAgICAgcHJpbnQoYH1gKTsK
LQotICAgICAgICBwcmludChgYm9vbCBvcGVyYXRvcnwoYm9vbCBhLCBib29sIGIpIHtgKTsKLSAg
ICAgICAgcHJpbnQoYCAgICByZXR1cm4gYSB8fCBiO2ApOwotICAgICAgICBwcmludChgfWApOwot
Ci0gICAgICAgIHByaW50KGBib29sIG9wZXJhdG9yXihib29sIGEsIGJvb2wgYikge2ApOwotICAg
ICAgICBwcmludChgICAgIGlmIChhKWApOwotICAgICAgICBwcmludChgICAgICAgICByZXR1cm4g
IWI7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIGI7YCk7Ci0gICAgICAgIHByaW50KGB9
YCk7Ci0KLSAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3J+KGJvb2wgdmFsdWUpIHtgKTsKLSAg
ICAgICAgcHJpbnQoYCAgICByZXR1cm4gIXZhbHVlO2ApOwotICAgICAgICBwcmludChgfWApOwot
Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BpbnRgLCBgdWludGAsIGBmbG9hdGBdKSB7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gb3BlcmF0b3IrKCR7dHlwZX0sICR7dHlw
ZX0pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IG9wZXJhdG9yLSgke3R5
cGV9LCAke3R5cGV9KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBvcGVy
YXRvciooJHt0eXBlfSwgJHt0eXBlfSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gb3BlcmF0b3IvKCR7dHlwZX0sICR7dHlwZX0pO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSBib29sIG9wZXJhdG9yPT0oJHt0eXBlfSwgJHt0eXBlfSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlIGJvb2wgb3BlcmF0b3I8KCR7dHlwZX0sICR7dHlwZX0pO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSBib29sIG9wZXJhdG9yPD0oJHt0eXBlfSwgJHt0eXBlfSk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlIGJvb2wgb3BlcmF0b3I+KCR7dHlwZX0sICR7
dHlwZX0pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSBib29sIG9wZXJhdG9yPj0oJHt0
eXBlfSwgJHt0eXBlfSk7YCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9m
IFtgaW50YCwgYHVpbnRgXSkgewotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IG9w
ZXJhdG9yJigke3R5cGV9LCAke3R5cGV9KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBvcGVyYXRvcnwoJHt0eXBlfSwgJHt0eXBlfSk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gb3BlcmF0b3JeKCR7dHlwZX0sICR7dHlwZX0pO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IG9wZXJhdG9yfigke3R5cGV9KTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBvcGVyYXRvcjw8KCR7dHlwZX0sIHVpbnQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IG9wZXJhdG9yPj4oJHt0eXBlfSwg
dWludCk7YCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgdWNoYXJg
LCBgdXNob3J0YF0pIHsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IG9wZXJhdG9yKygke3R5
cGV9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gJHt0
eXBlfSh1aW50KGEpICsgdWludChiKSk7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgcHJpbnQoYCR7dHlwZX0gb3BlcmF0b3ItKCR7dHlwZX0gYSwgJHt0eXBlfSBiKSB7
YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiAke3R5cGV9KHVpbnQoYSkgLSB1aW50
KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0
eXBlfSBvcGVyYXRvciooJHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgcmV0dXJuICR7dHlwZX0odWludChhKSAqIHVpbnQoYikpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IG9wZXJhdG9yLygke3R5
cGV9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gJHt0
eXBlfSh1aW50KGEpIC8gdWludChiKSk7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgcHJpbnQoYCR7dHlwZX0gb3BlcmF0b3ImKCR7dHlwZX0gYSwgJHt0eXBlfSBiKSB7
YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiAke3R5cGV9KHVpbnQoYSkgJiB1aW50
KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0
eXBlfSBvcGVyYXRvcnwoJHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgcmV0dXJuICR7dHlwZX0odWludChhKSB8IHVpbnQoYikpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IG9wZXJhdG9yXigke3R5
cGV9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gJHt0
eXBlfSh1aW50KGEpIF4gdWludChiKSk7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgcHJpbnQoYCR7dHlwZX0gb3BlcmF0b3J+KCR7dHlwZX0gYSkge2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICByZXR1cm4gJHt0eXBlfSh+dWludChhKSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3I9PSgke3R5cGV9
IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gdWludChh
KSA9PSB1aW50KGIpO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHBy
aW50KGBib29sIG9wZXJhdG9yPCgke3R5cGV9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAg
ICAgcHJpbnQoYCAgICByZXR1cm4gdWludChhKSA8IHVpbnQoYik7YCk7Ci0gICAgICAgICAgICBw
cmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3I8PSgke3R5cGV9IGEs
ICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gdWludChhKSA8
PSB1aW50KGIpO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50
KGBib29sIG9wZXJhdG9yPigke3R5cGV9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAg
cHJpbnQoYCAgICByZXR1cm4gdWludChhKSA+IHVpbnQoYik7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3I+PSgke3R5cGV9IGEsICR7
dHlwZX0gYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gdWludChhKSA+PSB1
aW50KGIpO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgfQotICAgICAgICBw
cmludChgdWNoYXIgb3BlcmF0b3I8PCh1Y2hhciBhLCB1aW50IGIpIHtgKTsKLSAgICAgICAgcHJp
bnQoYCAgICByZXR1cm4gdWNoYXIodWludChhKSA8PCAoYiAmIDI1NSkpO2ApOwotICAgICAgICBw
cmludChgfWApOwotICAgICAgICBwcmludChgdXNob3J0IG9wZXJhdG9yPDwodXNob3J0IGEsIHVp
bnQgYikge2ApOwotICAgICAgICBwcmludChgICAgIHJldHVybiB1c2hvcnQodWludChhKSA8PCAo
YiAmIDY1NTM1KSk7YCk7Ci0gICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgIHByaW50KGB1Y2hh
ciBvcGVyYXRvcj4+KHVjaGFyIGEsIHVpbnQgYikge2ApOwotICAgICAgICBwcmludChgICAgIHJl
dHVybiB1Y2hhcih1aW50KGEpID4+IChiICYgMjU1KSk7YCk7Ci0gICAgICAgIHByaW50KGB9YCk7
Ci0gICAgICAgIHByaW50KGB1c2hvcnQgb3BlcmF0b3I+Pih1c2hvcnQgYSwgdWludCBiKSB7YCk7
Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpID4+IChiICYgNjU1MzUp
KTtgKTsKLSAgICAgICAgcHJpbnQoYH1gKTsKLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtg
Y2hhcmAsIGBzaG9ydGBdKSB7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfSBvcGVyYXRvciso
JHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJu
ICR7dHlwZX0oaW50KGEpICsgaW50KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0g
ICAgICAgICAgICBwcmludChgJHt0eXBlfSBvcGVyYXRvci0oJHt0eXBlfSBhLCAke3R5cGV9IGIp
IHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuICR7dHlwZX0oaW50KGEpIC0gaW50
KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0
eXBlfSBvcGVyYXRvciooJHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgcmV0dXJuICR7dHlwZX0oaW50KGEpICogaW50KGIpKTtgKTsKLSAgICAgICAgICAg
IHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfSBvcGVyYXRvci8oJHt0eXBl
fSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuICR7dHlw
ZX0oaW50KGEpIC8gaW50KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAg
ICAgICBwcmludChgJHt0eXBlfSBvcGVyYXRvciYoJHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsK
LSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuICR7dHlwZX0oaW50KGEpICYgaW50KGIpKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfSBv
cGVyYXRvcnwoJHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgcmV0dXJuICR7dHlwZX0oaW50KGEpIHwgaW50KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfSBvcGVyYXRvcl4oJHt0eXBlfSBhLCAk
e3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuICR7dHlwZX0oaW50
KGEpIF4gaW50KGIpKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBw
cmludChgJHt0eXBlfSBvcGVyYXRvcn4oJHt0eXBlfSBhKSB7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgICAgIHJldHVybiAke3R5cGV9KH5pbnQoYSkpO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1g
KTsKLSAgICAgICAgICAgIHByaW50KGBib29sIG9wZXJhdG9yPT0oJHt0eXBlfSBhLCAke3R5cGV9
IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7
YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYGJvb2wgb3Bl
cmF0b3I+KCR7dHlwZX0gYSwgJHt0eXBlfSBiKSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAg
IHJldHVybiBpbnQoYSkgPiBpbnQoYik7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3I+PSgke3R5cGV9IGEsICR7dHlwZX0gYikge2Ap
OwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gaW50KGEpID49IGludChiKTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgYm9vbCBvcGVyYXRvcjwo
JHt0eXBlfSBhLCAke3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJu
IGludChhKSA8IGludChiKTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAg
ICBwcmludChgYm9vbCBvcGVyYXRvcjw9KCR7dHlwZX0gYSwgJHt0eXBlfSBiKSB7YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgIHJldHVybiBpbnQoYSkgPD0gaW50KGIpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgfQotICAgICAgICBwcmludChgY2hhciBvcGVyYXRvcjw8
KGNoYXIgYSwgdWludCBiKSB7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIGNoYXIoaW50
KGEpIDw8IChiICYgMjU1KSk7YCk7Ci0gICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgIHByaW50
KGBzaG9ydCBvcGVyYXRvcjw8KHNob3J0IGEsIHVpbnQgYikge2ApOwotICAgICAgICBwcmludChg
ICAgIHJldHVybiBzaG9ydChpbnQoYSkgPDwgKGIgJiA2NTUzNSkpO2ApOwotICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICBwcmludChgY2hhciBvcGVyYXRvcj4+KGNoYXIgYSwgdWludCBiKSB7
YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIGNoYXIoaW50KGEpID4+IChiICYgMjU1KSk7
YCk7Ci0gICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgIHByaW50KGBzaG9ydCBvcGVyYXRvcj4+
KHNob3J0IGEsIHVpbnQgYikge2ApOwotICAgICAgICBwcmludChgICAgIHJldHVybiBzaG9ydChp
bnQoYSkgPj4gKGIgJiA2NTUzNSkpO2ApOwotICAgICAgICBwcmludChgfWApOwotCi0gICAgICAg
IGZvciAobGV0IHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNo
b3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIHByaW50KGAke3R5
cGV9IG9wZXJhdG9yKysoJHt0eXBlfSB2YWx1ZSkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXR1cm4gdmFsdWUgKyAxO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAg
ICAgIHByaW50KGAke3R5cGV9IG9wZXJhdG9yLS0oJHt0eXBlfSB2YWx1ZSkge2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICByZXR1cm4gdmFsdWUgLSAxO2ApOwotICAgICAgICAgICAgcHJpbnQo
YH1gKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaW50KGBoYWxmIG9wZXJhdG9yKyhoYWxmIGEs
IGhhbGYgYikge2ApOwotICAgICAgICBwcmludChgICAgIHJldHVybiBoYWxmKGZsb2F0KGEpICsg
ZmxvYXQoYikpO2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgaGFsZiBv
cGVyYXRvci0oaGFsZiBhLCBoYWxmIGIpIHtgKTsKLSAgICAgICAgcHJpbnQoYCAgICByZXR1cm4g
aGFsZihmbG9hdChhKSAtIGZsb2F0KGIpKTtgKTsKLSAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAg
ICAgcHJpbnQoYGhhbGYgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZiBiKSB7YCk7Ci0gICAgICAgIHBy
aW50KGAgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgKiBmbG9hdChiKSk7YCk7Ci0gICAgICAgIHBy
aW50KGB9YCk7Ci0gICAgICAgIHByaW50KGBoYWxmIG9wZXJhdG9yLyhoYWxmIGEsIGhhbGYgYikg
e2ApOwotICAgICAgICBwcmludChgICAgIHJldHVybiBoYWxmKGZsb2F0KGEpIC8gZmxvYXQoYikp
O2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgYm9vbCBvcGVyYXRvcj09
KGhhbGYgYSwgaGFsZiBiKSB7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIGZsb2F0KGEp
ID09IGZsb2F0KGIpO2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgYm9v
bCBvcGVyYXRvcjwoaGFsZiBhLCBoYWxmIGIpIHtgKTsKLSAgICAgICAgcHJpbnQoYCAgICByZXR1
cm4gZmxvYXQoYSkgPCBmbG9hdChiKTtgKTsKLSAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAg
cHJpbnQoYGJvb2wgb3BlcmF0b3I8PShoYWxmIGEsIGhhbGYgYikge2ApOwotICAgICAgICBwcmlu
dChgICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTtgKTsKLSAgICAgICAgcHJpbnQoYH1g
KTsKLSAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3I+KGhhbGYgYSwgaGFsZiBiKSB7YCk7Ci0g
ICAgICAgIHByaW50KGAgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxvYXQoYik7YCk7Ci0gICAgICAg
IHByaW50KGB9YCk7Ci0gICAgICAgIHByaW50KGBib29sIG9wZXJhdG9yPj0oaGFsZiBhLCBoYWxm
IGIpIHtgKTsKLSAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gZmxvYXQoYSkgPD0gZmxvYXQoYik7
YCk7Ci0gICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgIHByaW50KGBjaGFyIG9wZXJhdG9yLShj
aGFyIHgpIHtgKTsKLSAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gY2hhcigtaW50KHgpKTtgKTsK
LSAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgcHJpbnQoYHNob3J0IG9wZXJhdG9yLShzaG9y
dCB4KSB7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIHNob3J0KC1pbnQoeCkpO2ApOwot
ICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgaGFsZiBvcGVyYXRvci0oaGFsZiB4
KSB7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIGhhbGYoLWZsb2F0KHgpKTtgKTsKLSAg
ICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgcHJpbnQoYG5hdGl2ZSBpbnQgb3BlcmF0b3ItKGlu
dCk7YCk7Ci0gICAgICAgIHByaW50KGBuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KTtgKTsK
LSAgICAgICAgcHJpbnQoKTsKLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgdWNoYXJgLCBg
dXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBd
KSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAg
ICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBvcGVyYXRvcisoJHt0eXBlfSR7c2l6ZX0gYSwg
JHt0eXBlfSR7c2l6ZX0gYikge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBl
fSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwg
c2l6ZTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1d
ID0gYVske219XSArIGJbJHttfV07YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
fWApOwotICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBvcGVyYXRvci0oJHt0
eXBlfSR7c2l6ZX0gYSwgJHt0eXBlfSR7c2l6ZX0gYikge2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGAgICAgJHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIGZvciAo
bGV0IG0gPSAwOyBtIDwgc2l6ZTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAg
ICAgcmVzdWx0WyR7bX1dID0gYVske219XSAtIGJbJHttfV07YCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAg
ICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXpl
fSBvcGVyYXRvciooJHt0eXBlfSR7c2l6ZX0gYSwgJHt0eXBlfSR7c2l6ZX0gYikge2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAg
ICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgc2l6ZTsgKyttKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dID0gYVske219XSAqIGJbJHttfV07YCk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3Vs
dDtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIHByaW50
KGAke3R5cGV9JHtzaXplfSBvcGVyYXRvciooJHt0eXBlfSR7c2l6ZX0gYSwgJHt0eXBlfSBiKSB7
YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9JHtzaXplfSByZXN1bHQ7YCk7
Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBzaXplOyArK20pIHsKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHttfV0gPSBhWyR7bX1dICogYjtgKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVz
dWx0O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYCR7dHlwZX0ke3NpemV9IG9wZXJhdG9yKigke3R5cGV9IGEsICR7dHlwZX0ke3NpemV9IGIp
IHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke3NpemV9IHJlc3VsdDtg
KTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IHNpemU7ICsrbSkgewotICAg
ICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske219XSA9IGEgKiBiWyR7bX1dO2Ap
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBy
ZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICBw
cmludChgJHt0eXBlfSR7c2l6ZX0gb3BlcmF0b3IvKCR7dHlwZX0ke3NpemV9IGEsICR7dHlwZX0k
e3NpemV9IGIpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke3NpemV9
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IHNpemU7ICsr
bSkgewotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske219XSA9IGFbJHtt
fV0gLyBiWyR7bX1dO2ApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSR7c2l6ZX0gb3BlcmF0b3IvKCR7dHlwZX0ke3Np
emV9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBl
fSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwg
c2l6ZTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1d
ID0gYVske219XSAvIGI7YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHBy
aW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwot
ICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBvcGVyYXRvci8oJHt0eXBlfSBh
LCAke3R5cGV9JHtzaXplfSBiKSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5
cGV9JHtzaXplfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0g
PCBzaXplOyArK20pIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHtt
fV0gPSBhIC8gYlske219XTtgKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGNo
YXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgZm9y
IChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBl
fSR7c2l6ZX0gb3BlcmF0b3ItKCR7dHlwZX0ke3NpemV9IGEpIHtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgICAgICR7dHlwZX0ke3NpemV9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBm
b3IgKGxldCBtID0gMDsgbSA8IHNpemU7ICsrbSkgewotICAgICAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJlc3VsdFske219XSA9IC1hWyR7bX1dO2ApOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxl
dCB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBpIG9m
IFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIsIDMsIDRdKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgke2p9IG9wZXJhdG9yKygk
e3R5cGV9JHtpfXgke2p9IGEsICR7dHlwZX0ke2l9eCR7an0gYikge2ApOwotICAgICAgICAgICAg
ICAgICAgICBwcmludChgICAgICR7dHlwZX0ke2l9eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9IGFbJHttfV1bJHtufV0g
KyBiWyR7bX1dWyR7bn1dO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3Vs
dDtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYCR7dHlwZX0ke2l9eCR7an0gb3BlcmF0b3ItKCR7dHlwZX0ke2l9eCR7an0gYSwg
JHt0eXBlfSR7aX14JHtqfSBiKSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAg
JHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBu
ID0gMDsgbiA8IGo7ICsrbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAg
ICAgcmVzdWx0WyR7bX1dWyR7bn1dID0gYVske219XVske259XSAtIGJbJHttfV1bJHtufV07YCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAg
ICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSR7
aX14JHtqfSBvcGVyYXRvci0oJHt0eXBlfSR7aX14JHtqfSBhKSB7YCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7bn1dID0gLWFbJHttfV1bJHtufV07
YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAg
ICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgJHt0eXBl
fSR7aX14JHtqfSBvcGVyYXRvciooJHt0eXBlfSR7aX14JHtqfSBhLCAke3R5cGV9JHtpfXgke2p9
IGIpIHtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9JHtpfXgke2p9
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBpOyAr
K20pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgajsgKytu
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHttfV1b
JHtufV0gPSBhWyR7bX1dWyR7bn1dICogYlske219XVske259XTtgKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBw
cmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGB9
YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgke2p9IG9wZXJhdG9y
Kigke3R5cGV9JHtpfXgke2p9IGEsICR7dHlwZX0gYikge2ApOwotICAgICAgICAgICAgICAgICAg
ICBwcmludChgICAgICR7dHlwZX0ke2l9eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9IGFbJHttfV1bJHtufV0gKiBiO2Ap
OwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0k
e2l9eCR7an0gb3BlcmF0b3IqKCR7dHlwZX0gYSwgJHt0eXBlfSR7aX14JHtqfSBiKSB7YCk7Ci0g
ICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7bn1dID0gYSAq
IGJbJHttfV1bJHtufV07YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0
O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAg
ICBwcmludChgJHt0eXBlfSR7aX14JHtqfSBvcGVyYXRvci8oJHt0eXBlfSR7aX14JHtqfSBhLCAk
e3R5cGV9JHtpfXgke2p9IGIpIHtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICAk
e3R5cGV9JHtpfXgke2p9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQg
bSA9IDA7IG0gPCBpOyArK20pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG4g
PSAwOyBuIDwgajsgKytuKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXN1bHRbJHttfV1bJHtufV0gPSBhWyR7bX1dWyR7bn1dIC8gYlske219XVske259XTtgKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtp
fXgke2p9IG9wZXJhdG9yLygke3R5cGV9JHtpfXgke2p9IGEsICR7dHlwZX0gYikge2ApOwotICAg
ICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke2l9eCR7an0gcmVzdWx0O2ApOwot
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9IGFbJHtt
fV1bJHtufV0gLyBiO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtg
KTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYCR7dHlwZX0ke2l9eCR7an0gb3BlcmF0b3IvKCR7dHlwZX0gYSwgJHt0eXBlfSR7aX14
JHtqfSBiKSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7aX14
JHtqfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwg
aTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7
ICsrbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7
bX1dWyR7bn1dID0gYSAvIGJbJHttfV1bJHtufV07YCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZvciAo
bGV0IHR5cGUgb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBg
c2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgcHJpbnQoYG9w
ZXJhdG9yICR7dHlwZX0yKCR7dHlwZX0geCwgJHt0eXBlfSB5KSB7YCk7Ci0gICAgICAgICAgICBw
cmludChgICAgICR7dHlwZX0yIHJlc3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVz
dWx0LnggPSB4O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueSA9IHk7YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICAgICAgcHJpbnQoYG9wZXJhdG9yICR7dHlwZX0zKCR7dHlwZX0geCwg
JHt0eXBlfSB5LCAke3R5cGV9IHopIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBl
fTMgcmVzdWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueCA9IHg7YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC55ID0geTtgKTsKLSAgICAgICAgICAgIHByaW50
KGAgICAgcmVzdWx0LnogPSB6O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVz
dWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGBvcGVy
YXRvciAke3R5cGV9Mygke3R5cGV9MiB4LCAke3R5cGV9IHkpIHtgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgJHt0eXBlfTMgcmVzdWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1
bHQueCA9IHgueDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LnkgPSB4Lnk7YCk7
Ci0gICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC56ID0geTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAg
ICAgICAgICBwcmludChgb3BlcmF0b3IgJHt0eXBlfTMoJHt0eXBlfSB4LCAke3R5cGV9MiB5KSB7
YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0zIHJlc3VsdDtgKTsKLSAgICAgICAg
ICAgIHByaW50KGAgICAgcmVzdWx0LnggPSB4O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBy
ZXN1bHQueSA9IHkueDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LnogPSB5Lnk7
YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAg
ICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYG9wZXJhdG9yICR7dHlwZX00KCR7dHlw
ZX0geCwgJHt0eXBlfSB5LCAke3R5cGV9IHosICR7dHlwZX0gdykge2ApOwotICAgICAgICAgICAg
cHJpbnQoYCAgICAke3R5cGV9NCByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJl
c3VsdC54ID0geDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LnkgPSB5O2ApOwot
ICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueiA9IHo7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgICAgIHJlc3VsdC53ID0gdztgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJl
c3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgb3Bl
cmF0b3IgJHt0eXBlfTQoJHt0eXBlfTIgeCwgJHt0eXBlfSB5LCAke3R5cGV9IHopIHtgKTsKLSAg
ICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfTQgcmVzdWx0O2ApOwotICAgICAgICAgICAgcHJp
bnQoYCAgICByZXN1bHQueCA9IHgueDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0
LnkgPSB4Lnk7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC56ID0geTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LncgPSB6O2ApOwotICAgICAgICAgICAgcHJpbnQo
YCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAg
ICAgIHByaW50KGBvcGVyYXRvciAke3R5cGV9NCgke3R5cGV9IHgsICR7dHlwZX0yIHksICR7dHlw
ZX0geikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9NCByZXN1bHQ7YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC54ID0geDtgKTsKLSAgICAgICAgICAgIHByaW50
KGAgICAgcmVzdWx0LnkgPSB5Lng7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC56
ID0geS55O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQudyA9IHo7YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmludChg
fWApOwotICAgICAgICAgICAgcHJpbnQoYG9wZXJhdG9yICR7dHlwZX00KCR7dHlwZX0geCwgJHt0
eXBlfSB5LCAke3R5cGV9MiB6KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICR7dHlwZX00
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LnggPSB4O2ApOwotICAg
ICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueSA9IHk7YCk7Ci0gICAgICAgICAgICBwcmludChg
ICAgIHJlc3VsdC56ID0gei54O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQudyA9
IHoueTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAg
ICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgb3BlcmF0b3IgJHt0eXBlfTQo
JHt0eXBlfTIgeCwgJHt0eXBlfTIgeSkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5
cGV9NCByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC54ID0geC54O2Ap
OwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueSA9IHgueTtgKTsKLSAgICAgICAgICAg
IHByaW50KGAgICAgcmVzdWx0LnogPSB5Lng7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJl
c3VsdC53ID0geS55O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2Ap
OwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGBvcGVyYXRvciAk
e3R5cGV9NCgke3R5cGV9MyB4LCAke3R5cGV9IHkpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgJHt0eXBlfTQgcmVzdWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueCA9
IHgueDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LnkgPSB4Lnk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgIHJlc3VsdC56ID0geC56O2ApOwotICAgICAgICAgICAgcHJpbnQo
YCAgICByZXN1bHQudyA9IHk7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1
bHQ7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYG9wZXJh
dG9yICR7dHlwZX00KCR7dHlwZX0geCwgJHt0eXBlfTMgeSkge2ApOwotICAgICAgICAgICAgcHJp
bnQoYCAgICAke3R5cGV9NCByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJlc3Vs
dC54ID0geDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LnkgPSB5Lng7YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC56ID0geS55O2ApOwotICAgICAgICAgICAgcHJp
bnQoYCAgICByZXN1bHQudyA9IHkuejtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJu
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChg
dWludCBvcGVyYXRvci5sZW5ndGgoJHt0eXBlfTIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgcmV0dXJuIDI7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJp
bnQoYHVpbnQgb3BlcmF0b3IubGVuZ3RoKCR7dHlwZX0zKSB7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgICAgIHJldHVybiAzO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAg
IHByaW50KGB1aW50IG9wZXJhdG9yLmxlbmd0aCgke3R5cGV9NCkge2ApOwotICAgICAgICAgICAg
cHJpbnQoYCAgICByZXR1cm4gNDtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAg
IH0KLSAgICAgICAgcHJpbnQoKTsKLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgaGFsZmAs
IGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBsZXQgdmFyaWFibGVzID0gW2BhYCwgYGJgLCBgY2As
IGBkYF07Ci0gICAgICAgICAgICBmb3IgKGxldCBtIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAg
ICAgICAgIGZvciAobGV0IG4gb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxl
dCBzaWduYXR1cmUgPSBgb3BlcmF0b3IgJHt0eXBlfSR7bX14JHtufShgOwotICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG07ICsraSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGkgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVy
ZSArPSBgLCBgOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgc2lnbmF0dXJlICs9IGAke3R5cGV9JHtufSAke3ZhcmlhYmxlc1tpXX1gOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSArPSBgKSB7YDsK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnQoc2lnbmF0dXJlKTsKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYCAgICAke3R5cGV9JHttfXgke259IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50KGAgICAgcmVzdWx0WyR7aX1dID0gJHt2YXJpYWJsZXNbaV19O2ApOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJl
c3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQotICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIFtgYm9vbGAsIGB1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBj
aGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIHBy
aW50KGBib29sIG9wZXJhdG9yPT0oJHt0eXBlfTIgYSwgJHt0eXBlfTIgYikge2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55O2ApOwotICAg
ICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGBib29sIG9wZXJhdG9yPT0o
JHt0eXBlfTMgYSwgJHt0eXBlfTMgYikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1
cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7YCk7Ci0gICAgICAgICAg
ICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYGJvb2wgb3BlcmF0b3I9PSgke3R5cGV9
NCBhLCAke3R5cGV9NCBiKSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53O2ApOwotICAg
ICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBv
cGVyYXRvci54KCR7dHlwZX0yKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBvcGVyYXRvci55KCR7dHlwZX0yKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBvcGVyYXRvci54KCR7dHlwZX0zKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBvcGVyYXRvci55KCR7dHlwZX0zKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBvcGVyYXRvci56KCR7dHlwZX0zKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBvcGVyYXRvci54KCR7dHlwZX00KTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBvcGVyYXRvci55KCR7dHlwZX00KTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBvcGVyYXRvci56KCR7dHlwZX00KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBvcGVyYXRvci53KCR7dHlwZX00KTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTIgb3BlcmF0b3IueD0oJHt0eXBlfTIsICR7dHlwZX0p
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9MiBvcGVyYXRvci55PSgke3R5
cGV9MiwgJHt0eXBlfSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0zIG9w
ZXJhdG9yLng9KCR7dHlwZX0zLCAke3R5cGV9KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTMgb3BlcmF0b3IueT0oJHt0eXBlfTMsICR7dHlwZX0pO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9MyBvcGVyYXRvci56PSgke3R5cGV9MywgJHt0eXBlfSk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IG9wZXJhdG9yLng9KCR7dHlw
ZX00LCAke3R5cGV9KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgb3Bl
cmF0b3IueT0oJHt0eXBlfTQsICR7dHlwZX0pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBvcGVyYXRvci56PSgke3R5cGV9NCwgJHt0eXBlfSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IG9wZXJhdG9yLnc9KCR7dHlwZX00LCAke3R5cGV9KTtg
KTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IG9wZXJhdG9yW10oJHt0eXBlfTIgdiwgdWlu
dCBpbmRleCkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBzd2l0Y2ggKGluZGV4KSB7YCk7
Ci0gICAgICAgICAgICBwcmludChgICAgICAgICBjYXNlIDA6YCk7Ci0gICAgICAgICAgICBwcmlu
dChgICAgICAgICAgICAgcmV0dXJuIHYueDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAg
IGNhc2UgMTpgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgICByZXR1cm4gdi55O2Ap
OwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgZGVmYXVsdDpgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgICAgICAgICB0cmFwO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICB9YCk7Ci0g
ICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gb3BlcmF0
b3JbXSgke3R5cGV9MyB2LCB1aW50IGluZGV4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAg
IHN3aXRjaCAoaW5kZXgpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgIGNhc2UgMDpg
KTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgICByZXR1cm4gdi54O2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICAgICAgY2FzZSAxOmApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAg
ICAgICAgIHJldHVybiB2Lnk7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICBjYXNlIDI6
YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAgICAgcmV0dXJuIHYuejtgKTsKLSAgICAg
ICAgICAgIHByaW50KGAgICAgICAgIGRlZmF1bHQ6YCk7Ci0gICAgICAgICAgICBwcmludChgICAg
ICAgICAgICAgdHJhcDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgfWApOwotICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IG9wZXJhdG9yW10oJHt0
eXBlfTQgdiwgdWludCBpbmRleCkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBzd2l0Y2gg
KGluZGV4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICBjYXNlIDA6YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgICAgICAgICAgcmV0dXJuIHYueDtgKTsKLSAgICAgICAgICAgIHBy
aW50KGAgICAgICAgIGNhc2UgMTpgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgICBy
ZXR1cm4gdi55O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgY2FzZSAyOmApOwotICAg
ICAgICAgICAgcHJpbnQoYCAgICAgICAgICAgIHJldHVybiB2Lno7YCk7Ci0gICAgICAgICAgICBw
cmludChgICAgICAgICBjYXNlIDM6YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAgICAg
cmV0dXJuIHYudztgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgIGRlZmF1bHQ6YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgICAgICAgICAgdHJhcDtgKTsKLSAgICAgICAgICAgIHByaW50
KGAgICAgfWApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGAk
e3R5cGV9MiBvcGVyYXRvcltdPSgke3R5cGV9MiB2LCB1aW50IGluZGV4LCAke3R5cGV9IGEpIHtg
KTsKLSAgICAgICAgICAgIHByaW50KGAgICAgc3dpdGNoIChpbmRleCkge2ApOwotICAgICAgICAg
ICAgcHJpbnQoYCAgICAgICAgY2FzZSAwOmApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAg
ICAgIHYueCA9IGE7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAgICAgYnJlYWs7YCk7
Ci0gICAgICAgICAgICBwcmludChgICAgICAgICBjYXNlIDE6YCk7Ci0gICAgICAgICAgICBwcmlu
dChgICAgICAgICAgICAgdi55ID0gYTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAg
ICBicmVhaztgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgIGRlZmF1bHQ6YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgICAgICAgICAgdHJhcDtgKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgfWApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gdjtgKTsKLSAgICAgICAgICAg
IHByaW50KGB9YCk7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfTMgb3BlcmF0b3JbXT0oJHt0
eXBlfTMgdiwgdWludCBpbmRleCwgJHt0eXBlfSBhKSB7YCk7Ci0gICAgICAgICAgICBwcmludChg
ICAgIHN3aXRjaCAoaW5kZXgpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgIGNhc2Ug
MDpgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgICB2LnggPSBhO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICAgICAgICAgIGJyZWFrO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAg
ICAgICAgY2FzZSAxOmApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgICAgIHYueSA9IGE7
YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAgICAgYnJlYWs7YCk7Ci0gICAgICAgICAg
ICBwcmludChgICAgICAgICBjYXNlIDI6YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAg
ICAgdi56ID0gYTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgICBicmVhaztgKTsK
LSAgICAgICAgICAgIHByaW50KGAgICAgICAgIGRlZmF1bHQ6YCk7Ci0gICAgICAgICAgICBwcmlu
dChgICAgICAgICAgICAgdHJhcDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgfWApOwotICAg
ICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gdjtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7
Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfTQgb3BlcmF0b3JbXT0oJHt0eXBlfTQgdiwgdWlu
dCBpbmRleCwgJHt0eXBlfSBhKSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHN3aXRjaCAo
aW5kZXgpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgIGNhc2UgMDpgKTsKLSAgICAg
ICAgICAgIHByaW50KGAgICAgICAgICAgICB2LnggPSBhO2ApOwotICAgICAgICAgICAgcHJpbnQo
YCAgICAgICAgICAgIGJyZWFrO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgY2FzZSAx
OmApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgICAgIHYueSA9IGE7YCk7Ci0gICAgICAg
ICAgICBwcmludChgICAgICAgICAgICAgYnJlYWs7YCk7Ci0gICAgICAgICAgICBwcmludChgICAg
ICAgICBjYXNlIDI6YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAgICAgdi56ID0gYTtg
KTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgICBicmVhaztgKTsKLSAgICAgICAgICAg
IHByaW50KGAgICAgICAgIGNhc2UgMzpgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAg
ICB2LncgPSBhO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgICAgIGJyZWFrO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgZGVmYXVsdDpgKTsKLSAgICAgICAgICAgIHByaW50
KGAgICAgICAgICAgICB0cmFwO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICB9YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgIHJldHVybiB2O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsK
LSAgICAgICAgfQotICAgICAgICBwcmludCgpOwotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2Yg
W2BoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IG0gb2YgWzIsIDMsIDRd
KSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgbiBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtufSBvcGVyYXRvcltdKCR7dHlwZX0k
e219eCR7bn0sIHVpbnQpO2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0ke219eCR7bn0gb3BlcmF0b3JbXT0oJHt0eXBlfSR7bX14JHtufSwgdWludCwgJHt0eXBl
fSR7bn0pO2ApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBwcmludCgpOwotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZs
b2F0YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IGkgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAg
ICAgICAgICAgZm9yIChsZXQgaiBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYGJvb2wgb3BlcmF0b3I9PSgke3R5cGV9JHtpfXgke2p9IGEsICR7dHlwZX0ke2l9eCR7
an0gYikge2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybmApOwotICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludChgICAgICAgICBhWyR7bX1dWyR7bn1dID09IGJbJHttfV1b
JHtufV0gJiZgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHRydWU7YCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY29tcHV0ZVN3aXp6bGUoY29tcG9uZW50cywg
bWF4VmFsdWUsIG1heExlbmd0aCkgewotICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMubGVuZ3Ro
ID09IG1heExlbmd0aCkgewotICAgICAgICAgICAgICAgIHJldHVybiBbY29tcG9uZW50c107Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAg
ICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heFZhbHVlOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChjb21wdXRlU3dpenpsZShjb21w
b25lbnRzLmNvbmNhdChbaV0pLCBtYXhWYWx1ZSwgbWF4TGVuZ3RoKSk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBjb21wb25lbnQodmFsdWUpIHsKLSAgICAgICAgICAg
IHN3aXRjaCAodmFsdWUpIHsKLSAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBgeGA7Ci0gICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYHlgOwotICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGB6YDsKLSAgICAgICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBgd2A7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgICAgICAgZmF0YWxFcnJvcigpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gdW5pcXVlTGVuZ3RoKHN3aXp6bGUpIHsKLSAgICAgICAgICAgIGxldCBo
YXMwID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgaGFzMSA9IGZhbHNlOwotICAgICAgICAgICAg
bGV0IGhhczIgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBoYXMzID0gZmFsc2U7Ci0gICAgICAg
ICAgICBmb3IgKGxldCB2IG9mIHN3aXp6bGUpIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHYp
IHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAg
aGFzMCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgaGFzMSA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAy
OgotICAgICAgICAgICAgICAgICAgICAgICAgaGFzMiA9IHRydWU7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAg
ICAgICAgICAgICAgaGFzMyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGZh
dGFsRXJyb3IoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBsZXQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGlmIChoYXMwKSB7Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0ICs9IDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaGFzMSkgewot
ICAgICAgICAgICAgICAgIHJlc3VsdCArPSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKGhhczIpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gMTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChoYXMzKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IDE7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0KLSAg
ICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRg
LCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAg
ICBmb3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0
IG1heFZhbHVlIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBz
d2l6emxlIG9mIGNvbXB1dGVTd2l6emxlKFtdLCBtYXhWYWx1ZSwgc2l6ZSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBzd2l6emxlTmFtZSA9IHN3aXp6bGUubWFwKGNvbXBvbmVudCku
am9pbigiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSR7c2l6ZX0g
b3BlcmF0b3IuJHtzd2l6emxlTmFtZX0oJHt0eXBlfSR7bWF4VmFsdWV9IHYpIHtgKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwot
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdC4ke2NvbXBvbmVu
dChpKX0gPSB2LiR7Y29tcG9uZW50KHN3aXp6bGVbaV0pfTtgKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3Vs
dDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAodW5pcXVlTGVuZ3RoKHN3aXp6bGUpID09IHNpemUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSR7bWF4VmFsdWV9IG9wZXJhdG9yLiR7
c3dpenpsZU5hbWV9PSgke3R5cGV9JHttYXhWYWx1ZX0gdiwgJHt0eXBlfSR7c2l6ZX0gYykge2Ap
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7bWF4VmFs
dWV9IHJlc3VsdCA9IHY7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYCAgICByZXN1bHQuJHtjb21wb25lbnQoc3dpenpsZVtpXSl9ID0gYy4ke2NvbXBvbmVu
dChpKX07YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1bmFyeSBmbG9hdGluZy1w
b2ludCBzY2FsYXIgZnVuY3Rpb25zLAotICAgICAgICAvLyB3aGljaCBjYW4gYWxzbyBiZSBhcHBs
aWVkIHRvIHZlY3RvcnMgYW5kIG1hdHJpY2VzIGNvbXBvbmVudC13aXNlLgotICAgICAgICAoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBsZXQgbmF0aXZlRnVuY3Rpb25zID0gW2Bjb3NgLCBgc2lu
YCwgYHRhbmAsIGBhY29zYCwgYGFzaW5gLCBgYXRhbmAsIGBjb3NoYCwgYHNpbmhgLCBgdGFuaGAs
IGBjZWlsYCwgYGV4cGAsIGBmbG9vcmAsIGBsb2dgLCBgcm91bmRgLCBgdHJ1bmNgXTsKLSAgICAg
ICAgICAgIGxldCBuYXRpdmVGcmFnbWVudEZ1bmN0aW9ucyA9IFtgZGR4YCwgYGRkeWBdOwotICAg
ICAgICAgICAgbGV0IG5vbk5hdGl2ZUZ1bmN0aW9ucyA9IFtgc3FydGAsIGBsb2cyYCwgYGxvZzEw
YCwgYGZyYWNgLCBgZXhwMmAsIGBkZWdyZWVzYCwgYHJhZGlhbnNgLCBgcmNwYCwgYHJzcXJ0YCwg
YHNhdHVyYXRlYCwgYGRkeF9jb2Fyc2VgLCBgZGR4X2ZpbmVgLCBgZGR5X2NvYXJzZWAsIGBkZHlf
ZmluZWAsIGBmd2lkdGhgXTsKLQotICAgICAgICAgICAgZm9yIChsZXQgbmF0aXZlRnVuY3Rpb24g
b2YgbmF0aXZlRnVuY3Rpb25zKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSBmbG9h
dCAke25hdGl2ZUZ1bmN0aW9ufShmbG9hdCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYGhh
bGYgJHtuYXRpdmVGdW5jdGlvbn0oaGFsZiB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YCAgICByZXR1cm4gaGFsZigke25hdGl2ZUZ1bmN0aW9ufShmbG9hdCh4KSkpO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvciAo
bGV0IG5hdGl2ZUZ1bmN0aW9uIG9mIG5hdGl2ZUZyYWdtZW50RnVuY3Rpb25zKSB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSBmcmFnbWVudCBmbG9hdCAke25hdGl2ZUZ1bmN0aW9ufShm
bG9hdCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYGhhbGYgJHtuYXRpdmVGdW5jdGlvbn0o
aGFsZiB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gaGFsZigke25h
dGl2ZUZ1bmN0aW9ufShmbG9hdCh4KSkpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwg
YGZsb2F0YF0pIHsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBzcXJ0KCR7dHlwZX0g
eCkge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHBvdyh4LCAwLjUpO2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCR7
dHlwZX0gbG9nMigke3R5cGV9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJl
dHVybiBsb2coeCkgLyBsb2coJHt0eXBlfSgyKSk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YH1gKTsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBsb2cxMCgke3R5cGV9IHgpIHtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBsb2coeCkgLyBsb2coJHt0eXBl
fSgxMCkpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYCR7dHlwZX0gZnJhYygke3R5cGV9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJldHVybiB4IC0gZmxvb3IoeCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1g
KTsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBleHAyKCR7dHlwZX0geCkge2ApOwot
ICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIGV4cCh4ICogbG9nKCR7dHlwZX0oMikp
KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIHByaW50
KGAke3R5cGV9IGRlZ3JlZXMoJHt0eXBlfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YCAgICByZXR1cm4geCAqIDE4MCAvIDMuMTQxNTk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YH1gKTsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSByYWRpYW5zKCR7dHlwZX0geCkg
e2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHggKiAzLjE0MTU5IC8gMTgw
O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YCR7dHlwZX0gcmNwKCR7dHlwZX0geCkge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAg
cmV0dXJuIDEgLyB4O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAg
ICAgICAgcHJpbnQoYCR7dHlwZX0gcnNxcnQoJHt0eXBlfSB4KSB7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYCAgICByZXR1cm4gMSAvIHNxcnQoeCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYH1gKTsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBzYXR1cmF0ZSgke3R5cGV9
IHgpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBjbGFtcCh4LCAwLCAx
KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIHByaW50
KGAke3R5cGV9IGRkeF9jb2Fyc2UoJHt0eXBlfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYCAgICByZXR1cm4gZGR4KHgpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZGR4X2ZpbmUoJHt0eXBlfSB4KSB7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gZGR4KHgpO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZGR5X2NvYXJz
ZSgke3R5cGV9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBkZHko
eCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgJHt0eXBlfSBkZHlfZmluZSgke3R5cGV9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJldHVybiBkZHkoeCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBmd2lkdGgoJHt0eXBlfSB4KSB7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gYWJzKGRkeCh4KSkgKyBhYnMoZGR5KHgpKTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotCi0gICAgICAgICAgICAgICAgZm9yIChs
ZXQgb3V0cHV0RnVuY3Rpb24gb2YgbmF0aXZlRnVuY3Rpb25zLmNvbmNhdChuYXRpdmVGcmFnbWVu
dEZ1bmN0aW9ucy5jb25jYXQobm9uTmF0aXZlRnVuY3Rpb25zKSkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50KGAke3R5cGV9JHtzaXplfSAke291dHB1dEZ1bmN0aW9ufSgke3R5cGV9JHtzaXpl
fSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke3Np
emV9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICBy
ZXN1bHRbJHtpfV0gPSAke291dHB1dEZ1bmN0aW9ufSh4WyR7aX1dKTtgKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJu
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBbMiwgMywg
NF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIsIDMsIDRdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0ke2l9eCR7an0gJHtv
dXRwdXRGdW5jdGlvbn0oJHt0eXBlfSR7aX14JHtqfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9JHtpfXgke2p9IHJlc3VsdDtgKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRb
JHttfV1bJHtufV0gPSAke291dHB1dEZ1bmN0aW9ufSh4WyR7bX1dWyR7bn1dKTtgKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7
YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBwcmludCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KSgpOwot
Ci0gICAgICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgYmluYXJ5IGZsb2F0aW5nLXBvaW50IHNj
YWxhciBmdW5jdGlvbnMsCi0gICAgICAgIC8vIHdoaWNoIGNhbiBhbHNvIGJlIGFwcGxpZWQgdG8g
dmVjdG9ycyBhbmQgbWF0cmljZXMgY29tcG9uZW50LXdpc2UuCi0gICAgICAgIChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIGxldCBuYXRpdmVGdW5jdGlvbnMgPSBbYHBvd2BdOwotCi0gICAgICAg
ICAgICBmb3IgKGxldCBuYXRpdmVGdW5jdGlvbiBvZiBuYXRpdmVGdW5jdGlvbnMpIHsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlIGZsb2F0ICR7bmF0aXZlRnVuY3Rpb259KGZsb2F0LCBm
bG9hdCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYGhhbGYgJHtuYXRpdmVGdW5jdGlvbn0o
aGFsZiB4LCBoYWxmIHkpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBo
YWxmKCR7bmF0aXZlRnVuY3Rpb259KGZsb2F0KHgpLCBmbG9hdCh5KSkpO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvciAobGV0
IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgICAgICBsZXQgbm9uTmF0
aXZlRnVuY3Rpb25zID0gW2BzdGVwYCwgYGxkZXhwYCwgYGZtb2RgXTsKLQotICAgICAgICAgICAg
ICAgIHByaW50KGAke3R5cGV9IHN0ZXAoJHt0eXBlfSB5LCAke3R5cGV9IHgpIHtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4ID49IHkgPyAxIDogMDtgKTsKLSAgICAgICAg
ICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9IGxkZXhw
KCR7dHlwZX0geCwgJHt0eXBlfSBlKSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICBy
ZXR1cm4geCAqIHBvdygyLCBlKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgICAgIHByaW50KGAke3R5cGV9IGZtb2QoJHt0eXBlfSB4LCAke3R5cGV9IHkpIHtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHVpbnQgd2hvbGUgPSB1aW50KHggLyB5KTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0gbXVsdGlwbGUgPSAke3R5cGV9
KHdob2xlKSAqIHk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4geCAtIG11
bHRpcGxlO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0KLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBvdXRwdXRGdW5jdGlvbiBvZiBuYXRpdmVGdW5jdGlvbnMuY29uY2F0KG5vbk5h
dGl2ZUZ1bmN0aW9ucykpIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBb
MiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXpl
fSAke291dHB1dEZ1bmN0aW9ufSgke3R5cGV9JHtzaXplfSB4LCAke3R5cGV9JHtzaXplfSB5KSB7
YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke3NpemV9IHJl
c3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRb
JHtpfV0gPSAke291dHB1dEZ1bmN0aW9ufSh4WyR7aX1dLCB5WyR7aX1dKTtgKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0
dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBbMiwg
MywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIsIDMsIDRd
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0ke2l9eCR7an0g
JHtvdXRwdXRGdW5jdGlvbn0oJHt0eXBlfSR7aX14JHtqfSB4LCAke3R5cGV9JHtpfXgke2p9IHkp
IHtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke2l9
eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG0g
PSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IG4gPSAwOyBuIDwgajsgKytuKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9ICR7b3V0cHV0RnVuY3Rpb259KHhb
JHttfV1bJHtufV0sIHlbJHttfV1bJHtufV0pO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHBy
aW50KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pKCk7Ci0KLSAgICAgICAgLy8gVGhlc2Ug
ZnVuY3Rpb25zIGFyZSB0ZXJuYXJ5IGZsb2F0aW5nLXBvaW50IHNjYWxhciBmdW5jdGlvbnMsCi0g
ICAgICAgIC8vIHdoaWNoIGNhbiBhbHNvIGJlIGFwcGxpZWQgdG8gdmVjdG9ycyBhbmQgbWF0cmlj
ZXMgY29tcG9uZW50LXdpc2UuCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZs
b2F0YF0pIHsKLSAgICAgICAgICAgIGxldCBub25OYXRpdmVGdW5jdGlvbnMgPSBbYHNtb290aHN0
ZXBgLCBgbGVycGAsIGBmbWFgLCBgbWFkYF07Ci0KLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9
IHNtb290aHN0ZXAoJHt0eXBlfSBlZGdlMCwgJHt0eXBlfSBlZGdlMSwgJHt0eXBlfSB4KSB7YCk7
Ci0gICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0gdCA9IGNsYW1wKCh4IC0gZWRnZTApIC8g
KGVkZ2UxIC0gZWRnZTApLCAwLCAxKTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJu
IHQgKiB0ICogKDMgLSAyICogdCk7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAg
ICAgICAgcHJpbnQoYCR7dHlwZX0gbGVycCgke3R5cGV9IHgsICR7dHlwZX0geSwgJHt0eXBlfSBz
KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4ICogKDEgLSBzKSArIHkgKiBz
O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9
IGZtYSgke3R5cGV9IHgsICR7dHlwZX0geSwgJHt0eXBlfSB6KSB7YCk7Ci0gICAgICAgICAgICBw
cmludChgICAgIHJldHVybiB4ICogeSArIHo7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwot
ICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gbWFkKCR7dHlwZX0geCwgJHt0eXBlfSB5LCAke3R5
cGV9IHopIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHggKiB5ICsgejtgKTsK
LSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0KLSAgICAgICAgICAgIGZvciAobGV0IG5vbk5hdGl2
ZUZ1bmN0aW9uIG9mIG5vbk5hdGl2ZUZ1bmN0aW9ucykgewotICAgICAgICAgICAgICAgIGZvciAo
bGV0IHNpemUgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5
cGV9JHtzaXplfSAke25vbk5hdGl2ZUZ1bmN0aW9ufSgke3R5cGV9JHtzaXplfSB4LCAke3R5cGV9
JHtzaXplfSB5LCAke3R5cGV9JHtzaXplfSB6KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50KGAgICAgJHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYCAgICByZXN1bHRbJHtpfV0gPSAke25vbk5hdGl2ZUZ1bmN0aW9ufSh4WyR7aX1dLCB5
WyR7aX1dLCB6WyR7aX1dKTtgKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAg
IHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIs
IDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSR7aX14JHtq
fSAke25vbk5hdGl2ZUZ1bmN0aW9ufSgke3R5cGV9JHtpfXgke2p9IHgsICR7dHlwZX0ke2l9eCR7
an0geSwgJHt0eXBlfSR7aX14JHtqfSB6KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
cmludChgICAgICR7dHlwZX0ke2l9eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBpOyArK20pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9ICR7bm9uTmF0aXZl
RnVuY3Rpb259KHhbJHttfV1bJHtufV0sIHlbJHttfV1bJHtufV0sIHpbJHttfV1bJHtufV0pO2Ap
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCgp
OwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpbnQoYG5hdGl2ZSBib29sIGlzbm9ybWFsKGhhbGYp
O2ApOwotICAgICAgICBwcmludChgbmF0aXZlIGJvb2wgaXNub3JtYWwoZmxvYXQpO2ApOwotICAg
ICAgICBmb3IgKGxldCB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBm
b3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgIHByaW50KGBib29s
JHtzaXplfSBpc25vcm1hbCgke3R5cGV9JHtzaXplfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYCAgICBib29sJHtzaXplfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXN1bHRbJHtpfV0gPSBpc25vcm1hbCh4WyR7aX1dKTtgKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgbGV0IG5hdGl2
ZUZ1bmN0aW9ucyA9IFtgaXNmaW5pdGVgLCBgaXNpbmZgLCBgaXNuYW5gXTsKLQotICAgICAgICAg
ICAgZm9yIChsZXQgbmF0aXZlRnVuY3Rpb24gb2YgbmF0aXZlRnVuY3Rpb25zKSB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSBib29sICR7bmF0aXZlRnVuY3Rpb259KGZsb2F0KTtgKTsK
LSAgICAgICAgICAgICAgICBwcmludChgYm9vbCAke25hdGl2ZUZ1bmN0aW9ufShoYWxmIHgpIHtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiAke25hdGl2ZUZ1bmN0aW9ufShm
bG9hdCh4KSk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewotICAg
ICAgICAgICAgICAgIGZvciAobGV0IG5hdGl2ZUZ1bmN0aW9uIG9mIG5hdGl2ZUZ1bmN0aW9ucykg
ewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYGJvb2wke3NpemV9ICR7bmF0aXZlRnVuY3Rpb259
KCR7dHlwZX0ke3NpemV9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAg
ICAgYm9vbCR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmludChgICAgIHJlc3VsdFske2l9XSA9ICR7bmF0aXZlRnVuY3Rpb259KHhbJHtpfV0pO2ApOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1g
KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBwcmludCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KSgpCi0KLSAgICAgICAgZm9y
IChsZXQgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgbGV0IG5vbk5h
dGl2ZUZ1bmN0aW9ucyA9IFtgaXNvcmRlcmVkYCwgYGlzdW5vcmRlcmVkYF07Ci0KLSAgICAgICAg
ICAgIHByaW50KGBib29sIGlzb3JkZXJlZCgke3R5cGV9IHgsICR7dHlwZX0geSkge2ApOwotICAg
ICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gKHggPT0geCkgJiYgKHkgPT0geSk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYGJvb2wgaXN1bm9yZGVyZWQo
JHt0eXBlfSB4LCAke3R5cGV9IHkpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJu
IGlzbmFuKHgpIHx8IGlzbmFuKHkpO2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLQotICAg
ICAgICAgICAgZm9yIChsZXQgbm9uTmF0aXZlRnVuY3Rpb24gb2Ygbm9uTmF0aXZlRnVuY3Rpb25z
KSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYGJvb2wke3NpemV9ICR7bm9uTmF0aXZlRnVuY3Rpb259KCR7
dHlwZX0ke3NpemV9IHgsICR7dHlwZX0ke3NpemV9IHkpIHtgKTsKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYCAgICBib29sJHtzaXplfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBwcmludChgICAgIHJlc3VsdFske2l9XSA9ICR7bm9uTmF0aXZlRnVuY3Rpb259KHhbJHtpfV0s
IHlbJHtpfV0pO2ApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YH1gKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmlu
dCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpbnQoYG5hdGl2ZSBmbG9hdCBhdGFuMihmbG9h
dCwgZmxvYXQpO2ApOwotICAgICAgICBwcmludChgaGFsZiBhdGFuMihoYWxmIHgsIGhhbGYgeSkg
e2ApOwotICAgICAgICBwcmludChgICAgIHJldHVybiBoYWxmKGF0YW4yKGZsb2F0KHgpLCBmbG9h
dCh5KSkpO2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBmb3IgKGxldCB0eXBlIG9m
IFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAz
LCA0XSkgewotICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBhdGFuMigke3R5
cGV9JHtzaXplfSB4LCAke3R5cGV9JHtzaXplfSB5KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYCAgICAke3R5cGV9JHtzaXplfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXN1bHRbJHtpfV0gPSBhdGFuMih4WyR7aX1dLCB5WyR7aX1dKTtgKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3Ig
KGxldCBpIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIs
IDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgke2p9IGF0
YW4yKCR7dHlwZX0ke2l9eCR7an0geCwgJHt0eXBlfSR7aX14JHtqfSB5KSB7YCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7bn1dID0gYXRhbjIoeFsk
e219XVske259XSwgeVske219XVske259XSk7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICBy
ZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBwcmludCgpOwot
Ci0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTEgb2YgW2B0aHJlYWRgLCBgZGV2aWNlYCwg
YHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2Yg
W2B0aHJlYWRgLCBgZGV2aWNlYCwgYHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgICAgICBm
b3IgKGxldCB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHByaW50KGB2b2lkIHNpbmNvcygke3R5cGV9IHgsICR7YWRkcmVzc1NwYWNlMX0gJHt0eXBlfSog
eSwgJHthZGRyZXNzU3BhY2UyfSAke3R5cGV9KiB6KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAg
IHByaW50KGAgICAgaWYgKHkgIT0gbnVsbClgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YCAgICAgICAgKnkgPSBzaW4oeCk7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAg
aWYgKHogIT0gbnVsbClgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgKnog
PSBjb3MoeCk7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwcmludChgdm9pZCBzaW5jb3MoJHt0eXBlfSR7c2l6ZX0geCwgJHthZGRyZXNzU3Bh
Y2UxfSAke3R5cGV9JHtzaXplfSogeSwgJHthZGRyZXNzU3BhY2UyfSAke3R5cGV9JHtzaXplfSog
eikge2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuJ3QgdGFrZSBhIHBvaW50ZXIg
dG8gYSBtZW1iZXIgb2YgYSB2ZWN0b3IuCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChg
ICAgICR7dHlwZX0gc2luUmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YCAgICAke3R5cGV9IGNvc1Jlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYCAgICBzaW5jb3MoeFske2l9XSwgJnNpblJlc3VsdCwgJmNvc1Jlc3VsdCk7YCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICBpZiAoeSAhPSBudWxsKWApOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgICAgICgqeSlbJHtpfV0gPSBz
aW5SZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICBpZiAo
eiAhPSBudWxsKWApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgICAg
ICgqeilbJHtpfV0gPSBjb3NSZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBqIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KGB2b2lkIHNpbmNvcygke3R5cGV9JHtpfXgke2p9IHgsICR7
YWRkcmVzc1NwYWNlMX0gJHt0eXBlfSR7aX14JHtqfSogeSwgJHthZGRyZXNzU3BhY2UyfSAke3R5
cGV9JHtpfXgke2p9KiB6KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2Fu
J3QgdGFrZSBhIHBvaW50ZXIgdG8gYSBtZW1iZXIgb2YgYSBtYXRyaXguCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9IHNpblJlc3VsdDtgKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0gY29zUmVzdWx0O2ApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgajsgKytu
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHNpbmNv
cyh4WyR7bX1dWyR7bn1dLCAmc2luUmVzdWx0LCAmY29zUmVzdWx0KTtgKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgaWYgKHkgIT0gbnVsbClgKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgICAgICgqeSlbJHtt
fV1bJHtufV0gPSBzaW5SZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgICAgIGlmICh6ICE9IG51bGwpYCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgICAgICAgICAoKnopWyR7bX1dWyR7bn1dID0gY29zUmVzdWx0
O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQot
ICAgICAgICBmb3IgKGxldCBiaW5hcnlGdW5jdGlvbiBvZiBbW2BhbGxgLCBgdHJ1ZWAsIGAmJmBd
LCBbYGFueWAsIGBmYWxzZWAsIGB8fGBdXSkgewotICAgICAgICAgICAgcHJpbnQoYGJvb2wgJHti
aW5hcnlGdW5jdGlvblswXX0oYm9vbCB4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJl
dHVybiB4O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIGZvciAobGV0
IHNpemUgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYGJvb2wgJHtiaW5h
cnlGdW5jdGlvblswXX0oYm9vbCR7c2l6ZX0geCkge2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGAgICAgYm9vbCByZXN1bHQgPSAke2JpbmFyeUZ1bmN0aW9uWzFdfTtgKTsKLSAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAg
ICBwcmludChgICAgIHJlc3VsdCA9IHJlc3VsdCAke2JpbmFyeUZ1bmN0aW9uWzJdfSAoeFske2l9
XSk7YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0
dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50
YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAg
ICAgICAgIHByaW50KGBib29sICR7YmluYXJ5RnVuY3Rpb25bMF19KCR7dHlwZX0geCkge2ApOwot
ICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHggIT0gMDtgKTsKLSAgICAgICAgICAg
ICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgWzIsIDMs
IDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGBib29sICR7YmluYXJ5RnVuY3Rpb25b
MF19KCR7dHlwZX0ke3NpemV9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAg
ICBib29sIHJlc3VsdCA9ICR7YmluYXJ5RnVuY3Rpb25bMV19O2ApOwotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoYCAgICByZXN1bHQgPSByZXN1bHQgJHtiaW5hcnlGdW5jdGlvblsyXX0gKHhb
JHtpfV0gIT0gMCk7YCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBg
aGFsZmAgfHwgdHlwZSA9PSBgZmxvYXRgKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqIG9m
IFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBib29sICR7
YmluYXJ5RnVuY3Rpb25bMF19KCR7dHlwZX0ke2l9eCR7an0geCkge2ApOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KGAgICAgYm9vbCByZXN1bHQgPSAke2JpbmFyeUZ1bmN0aW9u
WzFdfTtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8
IGk7ICsrbSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0g
MDsgbiA8IGo7ICsrbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoYCAgICByZXN1bHQgPSByZXN1bHQgJHtiaW5hcnlGdW5jdGlvblsyXX0gKHhbJHttfV1bJHtu
fV0gIT0gMCk7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
KGB9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAs
IGB1aW50YF0pIHsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IGFicygke3R5cGV9IHgpIHtg
KTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHg7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BjaGFyYCwgYHNo
b3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIHByaW50KGAke3R5
cGV9IGFicygke3R5cGV9IHgpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgaWYgKHggPCAw
KWApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgcmV0dXJuIC14O2ApOwotICAgICAgICAg
ICAgcHJpbnQoYCAgICByZXR1cm4geDtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50
YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAg
ICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICBwcmludChg
JHt0eXBlfSR7c2l6ZX0gYWJzKCR7dHlwZX0ke3NpemV9IHgpIHtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgICAgICR7dHlwZX0ke3NpemV9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJlc3VsdFske2l9XSA9IGFicyh4WyR7aX1dKTtgKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAodHlwZSA9
PSBgaGFsZmAgfHwgdHlwZSA9PSBgZmxvYXRgKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQg
aSBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiBvZiBbMiwg
MywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgke2p9
IGFicygke3R5cGV9JHtpfXgke2p9IHgpIHtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50KGAgICAgJHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgajsgKytuKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7bn1dID0gYWJzKHhbJHttfV1b
JHtufV0pO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJl
c3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgcHJpbnQoKTsKLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgdWNoYXJgLCBg
dXNob3J0YCwgYHVpbnRgXSkgewotICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gc2lnbigke3R5
cGV9IHgpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHggPT0gMCA/IDAgOiAx
O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgfQotICAgICAgICBmb3IgKGxl
dCB0eXBlIG9mIFtgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7Ci0g
ICAgICAgICAgICBwcmludChgJHt0eXBlfSBzaWduKCR7dHlwZX0geCkge2ApOwotICAgICAgICAg
ICAgcHJpbnQoYCAgICBpZiAoeCA8IDApYCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICBy
ZXR1cm4gLTE7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIGlmICh4ID09IDApYCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgICAgICByZXR1cm4gMDtgKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgcmV0dXJuIDE7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICB9Ci0gICAg
ICAgIGZvciAobGV0IHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwg
YHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0
IHNpemUgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0ke3Np
emV9IHNpZ24oJHt0eXBlfSR7c2l6ZX0geCkge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAg
ICAgJHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVz
dWx0WyR7aX1dID0gc2lnbih4WyR7aX1dKTtgKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBgaGFsZmAg
fHwgdHlwZSA9PSBgZmxvYXRgKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBbMiwg
MywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiBvZiBbMiwgMywgNF0pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgke2p9IHNpZ24oJHt0
eXBlfSR7aX14JHtqfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAg
ICR7dHlwZX0ke2l9eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgbSA9IDA7IG0gPCBpOyArK20pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9IHNpZ24oeFske219XVske259XSk7
YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2Ap
OwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBwcmludCgpOwotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRg
LCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKLSAg
ICAgICAgICAgIGxldCBub25OYXRpdmVGdW5jdGlvbnMgPSBbYG1pbmAsIGBtYXhgXTsKLQotICAg
ICAgICAgICAgcHJpbnQoYCR7dHlwZX0gbWluKCR7dHlwZX0geCwgJHt0eXBlfSB5KSB7YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4ID4geSA/IHkgOiB4O2ApOwotICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IG1heCgke3R5cGV9IHgs
ICR7dHlwZX0geSkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4geCA+IHkgPyB4
IDogeTtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0KLSAgICAgICAgICAgIGZvciAobGV0
IG5vbk5hdGl2ZUZ1bmN0aW9uIG9mIG5vbk5hdGl2ZUZ1bmN0aW9ucykgewotICAgICAgICAgICAg
ICAgIGZvciAobGV0IHNpemUgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50KGAke3R5cGV9JHtzaXplfSAke25vbk5hdGl2ZUZ1bmN0aW9ufSgke3R5cGV9JHtzaXplfSB4
LCAke3R5cGV9JHtzaXplfSB5KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAg
JHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXN1bHRbJHtpfV0gPSAke25vbk5hdGl2ZUZ1bmN0aW9ufSh4WyR7aX1dLCB5WyR7aX1dKTtg
KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludChgICAg
IHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlID09IGBoYWxmYCB8fCB0eXBl
ID09IGBmbG9hdGApIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBbMiwgMywg
NF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIsIDMsIDRdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0ke2l9eCR7an0gJHtu
b25OYXRpdmVGdW5jdGlvbn0oJHt0eXBlfSR7aX14JHtqfSB4LCAke3R5cGV9JHtpfXgke2p9IHkp
IHtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke2l9
eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG0g
PSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IG4gPSAwOyBuIDwgajsgKytuKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgICAgIHJlc3VsdFske219XVske259XSA9ICR7bm9uTmF0aXZlRnVuY3Rpb259
KHhbJHttfV1bJHtufV0sIHlbJHttfV1bJHtufV0pO2ApOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IHR5cGUg
b2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBo
YWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIGxldCBub25OYXRpdmVGdW5jdGlvbnMgPSBb
YGNsYW1wYF07Ci0KLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IGNsYW1wKCR7dHlwZX0geCwg
JHt0eXBlfSBsb3dlciwgJHt0eXBlfSB1cHBlcikge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAg
ICByZXR1cm4gbWF4KG1pbih1cHBlciwgeCksIGxvd2VyKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGB9YCk7Ci0KLSAgICAgICAgICAgIGZvciAobGV0IG5vbk5hdGl2ZUZ1bmN0aW9uIG9mIG5vbk5h
dGl2ZUZ1bmN0aW9ucykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgWzIsIDMs
IDRdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSAke25vbk5h
dGl2ZUZ1bmN0aW9ufSgke3R5cGV9JHtzaXplfSB4LCAke3R5cGV9JHtzaXplfSB5LCAke3R5cGV9
JHtzaXplfSB6KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7
c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRb
JHtpfV0gPSAke25vbk5hdGl2ZUZ1bmN0aW9ufSh4WyR7aX1dLCB5WyR7aX1dLCB6WyR7aX1dKTtg
KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludChgICAg
IHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlID09IGBoYWxmYCB8fCB0eXBl
ID09IGBmbG9hdGApIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBbMiwgMywg
NF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogb2YgWzIsIDMsIDRdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0ke2l9eCR7an0gJHtu
b25OYXRpdmVGdW5jdGlvbn0oJHt0eXBlfSR7aX14JHtqfSB4LCAke3R5cGV9JHtpfXgke2p9IHks
ICR7dHlwZX0ke2l9eCR7an0geikge2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50KGAgICAgJHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBpOyArK20pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7bn1dID0g
JHtub25OYXRpdmVGdW5jdGlvbn0oeFske219XVske259XSwgeVske219XVske259XSwgelske219
XVske259XSk7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
KGB9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlIG9mIFtgdGhyZWFkYCwg
YGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlIG9m
IFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gbW9k
Zigke3R5cGV9IHgsICR7YWRkcmVzc1NwYWNlfSAke3R5cGV9KiBpcCkge2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGAgICAgdWludCByZXN1bHQgPSB1aW50KHgpO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGAgICAgaWYgKGlwICE9IG51bGwpYCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YCAgICAgICAgKmlwID0geCAtICR7dHlwZX0ocmVzdWx0KTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgICAgIHJldHVybiAke3R5cGV9KHJlc3VsdCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYH1gKTsKLQotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgWzIsIDMsIDRdKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBtb2RmKCR7dHlwZX0k
e3NpemV9IHgsICR7YWRkcmVzc1NwYWNlfSAke3R5cGV9JHtzaXplfSogeSkge2ApOwotICAgICAg
ICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke3NpemV9IHJlc3VsdDtgKTsKLSAgICAg
ICAgICAgICAgICAgICAgLy8gQ2FuJ3QgdGFrZSBhIHBvaW50ZXIgdG8gYSBtZW1iZXIgb2YgYSB2
ZWN0b3IuCi0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSBidWZmZXI7YCk7
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske2l9XSA9IG1vZGYoeFsk
e2l9XSwgJmJ1ZmZlcik7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIGlm
ICh5ICE9IG51bGwpYCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICAgICAo
KnkpWyR7aX1dID0gYnVmZmVyO2ApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yIChs
ZXQgaSBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiBvZiBb
MiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgk
e2p9IG1vZGYoJHt0eXBlfSR7aX14JHtqfSB4LCAke2FkZHJlc3NTcGFjZX0gJHt0eXBlfSR7aX14
JHtqfSogeSkge2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9
JHtpfXgke2p9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbid0IHRh
a2UgYSBwb2ludGVyIHRvIGEgbWVtYmVyIG9mIGEgbWF0cml4LgotICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoYCAgICAke3R5cGV9IGJ1ZmZlcjtgKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHttfV1bJHtufV0gPSBtb2RmKHhbJHttfV1b
JHtufV0sICZidWZmZXIpO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dChgICAgIGlmICh5ICE9IG51bGwpYCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50KGAgICAgICAgICgqeSlbJHttfV1bJHtufV0gPSBidWZmZXI7YCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0KLSAgICAgICAgcHJpbnQoYHVjaGFyIGNvdW50X2JpdHModWNoYXIgeCkge2ApOwotICAg
ICAgICBwcmludChgICAgIHJldHVybiB1Y2hhcigoKHggfCB1Y2hhcigxIDw8IDApKSA9PSAwID8g
MCA6IDEpICtgKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA3OyArK2kpIHsKLSAgICAg
ICAgICAgIHByaW50KGAgICAgICAgICAgICgoeCB8IHVjaGFyKDEgPDwgJHtpfSkpID09IDAgPyAw
IDogMSkgK2ApOwotICAgICAgICB9Ci0gICAgICAgIHByaW50KGAgICAgICAgICAgICgoeCB8IHVj
aGFyKDEgPDwgNykpID09IDAgPyAwIDogMSkpO2ApOwotICAgICAgICBwcmludChgfWApOwotICAg
ICAgICBwcmludChgdWNoYXIgY291bnRfYml0cyh1c2hvcnQgeCkge2ApOwotICAgICAgICBwcmlu
dChgICAgIHJldHVybiB1Y2hhcigoKHggfCB1c2hvcnQoMSA8PCAwKSkgPT0gMCA/IDAgOiAxKSAr
YCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgMTU7ICsraSkgewotICAgICAgICAgICAg
cHJpbnQoYCAgICAgICAgICAgKCh4IHwgdXNob3J0KDEgPDwgJHtpfSkpID09IDAgPyAwIDogMSkg
K2ApOwotICAgICAgICB9Ci0gICAgICAgIHByaW50KGAgICAgICAgICAgICgoeCB8IHVzaG9ydCgx
IDw8IDE1KSkgPT0gMCA/IDAgOiAxKSk7YCk7Ci0gICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAg
IHByaW50KGB1Y2hhciBjb3VudF9iaXRzKHVpbnQgeCkge2ApOwotICAgICAgICBwcmludChgICAg
IHJldHVybiB1Y2hhcigoKHggfCB1aW50KDEgPDwgMCkpID09IDAgPyAwIDogMSkgK2ApOwotICAg
ICAgICBmb3IgKGxldCBpID0gMTsgaSA8IDMxOyArK2kpIHsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgICAgICAgICgoeCB8IHVpbnQoMSA8PCAke2l9KSkgPT0gMCA/IDAgOiAxKSArYCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcHJpbnQoYCAgICAgICAgICAgKCh4IHwgdWludCgxIDw8IDMxKSkgPT0g
MCA/IDAgOiAxKSk7YCk7Ci0gICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgIHByaW50KGB1Y2hh
ciByZXZlcnNlYml0cyh1Y2hhciB4KSB7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIHVj
aGFyKCgoeCAmIHVjaGFyKDEgPDwgMCkpIDw8IDcpIHxgKTsKLSAgICAgICAgZm9yIChsZXQgaSA9
IDE7IGkgPCA3OyArK2kpIHsKLSAgICAgICAgICAgIGxldCBvZmZzZXQgPSA3IC0gMiAqIGkKLSAg
ICAgICAgICAgIHByaW50KGAgICAgICAgICAgICgoeCAmIHVjaGFyKDEgPDwgJHtpfSkpICR7b2Zm
c2V0ID4gMCA/IGA8PGAgOiBgPj5gfSAke01hdGguYWJzKG9mZnNldCl9KSB8YCk7Ci0gICAgICAg
IH0KLSAgICAgICAgcHJpbnQoYCAgICAgICAgICAgKCh4ICYgdWNoYXIoMSA8PCA3KSkgPj4gNykp
O2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgdXNob3J0IHJldmVyc2Vi
aXRzKHVzaG9ydCB4KSB7YCk7Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIHVzaG9ydCgoKHgg
JiB1c2hvcnQoMSA8PCAwKSkgPDwgMTUpIHxgKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkg
PCAxNTsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMTUgLSAyICogaQotICAgICAg
ICAgICAgcHJpbnQoYCAgICAgICAgICAgKCh4ICYgdXNob3J0KDEgPDwgJHtpfSkpICR7b2Zmc2V0
ID4gMCA/IGA8PGAgOiBgPj5gfSAke01hdGguYWJzKG9mZnNldCl9KSB8YCk7Ci0gICAgICAgIH0K
LSAgICAgICAgcHJpbnQoYCAgICAgICAgICAgKCh4ICYgdXNob3J0KDEgPDwgMTUpKSA+PiAxNSkp
O2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgdWludCByZXZlcnNlYml0
cyh1aW50IHgpIHtgKTsKLSAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gdWludCgoKHggJiB1aW50
KDEgPDwgMCkpIDw8IDMxKSB8YCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgMzE7ICsr
aSkgewotICAgICAgICAgICAgbGV0IG9mZnNldCA9IDMxIC0gMiAqIGkKLSAgICAgICAgICAgIHBy
aW50KGAgICAgICAgICAgICgoeCAmIHVpbnQoMSA8PCAke2l9KSkgJHtvZmZzZXQgPiAwID8gYDw8
YCA6IGA+PmB9ICR7TWF0aC5hYnMob2Zmc2V0KX0pIHxgKTsKLSAgICAgICAgfQotICAgICAgICBw
cmludChgICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMzEpKSA+PiAzMSkpO2ApOwotICAgICAg
ICBwcmludChgfWApOwotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgdWNoYXJgLCBgdXNob3J0
YCwgYHVpbnRgXSkgewotICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsK
LSAgICAgICAgICAgICAgICBwcmludChgdWNoYXIke3NpemV9IGNvdW50X2JpdHMoJHt0eXBlfSR7
c2l6ZX0geCkge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAgdWNoYXIke3NpemV9IHJl
c3VsdDtgKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkg
ewotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske2l9XSA9IGNvdW50X2Jp
dHMoeFske2l9XSk7YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByaW50
KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2B1Y2hhcmAs
IGB1c2hvcnRgLCBgdWludGBdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAz
LCA0XSkgewotICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSByZXZlcnNlYml0
cygke3R5cGV9JHtzaXplfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5
cGV9JHtzaXplfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHtp
fV0gPSByZXZlcnNlYml0cyh4WyR7aX1dKTtgKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGB9YCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQot
ICAgICAgICBwcmludChgdWludCBmaXJzdGJpdGhpZ2godWNoYXIgeCkge2ApOwotICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8PSA3OyArK2kpIHsKLSAgICAgICAgICAgIHByaW50KGAgICAgaWYg
KCh4ICYgdWNoYXIoMSA8PCAkezcgLSBpfSkpICE9IDApYCk7Ci0gICAgICAgICAgICBwcmludChg
ICAgICAgICByZXR1cm4gJHtpfTtgKTsKLSAgICAgICAgfQotICAgICAgICBwcmludChgICAgIHJl
dHVybiA4O2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgdWludCBmaXJz
dGJpdGhpZ2godXNob3J0IHgpIHtgKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMTU7
ICsraSkgewotICAgICAgICAgICAgcHJpbnQoYCAgICBpZiAoKHggJiB1c2hvcnQoMSA8PCAkezE1
IC0gaX0pKSAhPSAwKWApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgcmV0dXJuICR7aX07
YCk7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIDE2O2ApOwotICAg
ICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgdWludCBmaXJzdGJpdGhpZ2godWludCB4
KSB7YCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDMxOyArK2kpIHsKLSAgICAgICAg
ICAgIHByaW50KGAgICAgaWYgKCh4ICYgdWludCgxIDw8ICR7MzEgLSBpfSkpICE9IDApYCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgICAgICByZXR1cm4gJHtpfTtgKTsKLSAgICAgICAgfQotICAg
ICAgICBwcmludChgICAgIHJldHVybiAzMjtgKTsKLSAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAg
ICAgcHJpbnQoYHVpbnQgZmlyc3RiaXRoaWdoKGNoYXIgeCkge2ApOwotICAgICAgICBwcmludChg
ICAgIHJldHVybiBmaXJzdGJpdGhpZ2godWNoYXIoeCkpO2ApOwotICAgICAgICBwcmludChgfWAp
OwotICAgICAgICBwcmludChgdWludCBmaXJzdGJpdGhpZ2goc2hvcnQgeCkge2ApOwotICAgICAg
ICBwcmludChgICAgIHJldHVybiBmaXJzdGJpdGhpZ2godXNob3J0KHgpKTtgKTsKLSAgICAgICAg
cHJpbnQoYH1gKTsKLSAgICAgICAgcHJpbnQoYHVpbnQgZmlyc3RiaXRoaWdoKGludCB4KSB7YCk7
Ci0gICAgICAgIHByaW50KGAgICAgcmV0dXJuIGZpcnN0Yml0aGlnaCh1aW50KHgpKTtgKTsKLSAg
ICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgcHJpbnQoYHVpbnQgZmlyc3RiaXRsb3codWNoYXIg
eCkge2ApOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSA3OyArK2kpIHsKLSAgICAgICAg
ICAgIHByaW50KGAgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCAke2l9KSkgIT0gMClgKTsKLSAgICAg
ICAgICAgIHByaW50KGAgICAgICAgIHJldHVybiAkezcgLSBpfTtgKTsKLSAgICAgICAgfQotICAg
ICAgICBwcmludChgICAgIHJldHVybiA4O2ApOwotICAgICAgICBwcmludChgfWApOwotICAgICAg
ICBwcmludChgdWludCBmaXJzdGJpdGxvdyh1c2hvcnQgeCkge2ApOwotICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8PSAxNTsgKytpKSB7Ci0gICAgICAgICAgICBwcmludChgICAgIGlmICgoeCAm
IHVzaG9ydCgxIDw8ICR7aX0pKSAhPSAwKWApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAg
cmV0dXJuICR7MTUgLSBpfTtgKTsKLSAgICAgICAgfQotICAgICAgICBwcmludChgICAgIHJldHVy
biAxNjtgKTsKLSAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgcHJpbnQoYHVpbnQgZmlyc3Ri
aXRsb3codWludCB4KSB7YCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDMxOyArK2kp
IHsKLSAgICAgICAgICAgIHByaW50KGAgICAgaWYgKCh4ICYgdWludCgxIDw8ICR7aX0pKSAhPSAw
KWApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAgcmV0dXJuICR7MzEgLSBpfTtgKTsKLSAg
ICAgICAgfQotICAgICAgICBwcmludChgICAgIHJldHVybiAzMjtgKTsKLSAgICAgICAgcHJpbnQo
YH1gKTsKLSAgICAgICAgcHJpbnQoYHVpbnQgZmlyc3RiaXRsb3coY2hhciB4KSB7YCk7Ci0gICAg
ICAgIHByaW50KGAgICAgcmV0dXJuIGZpcnN0Yml0bG93KHVjaGFyKHgpKTtgKTsKLSAgICAgICAg
cHJpbnQoYH1gKTsKLSAgICAgICAgcHJpbnQoYHVpbnQgZmlyc3RiaXRsb3coc2hvcnQgeCkge2Ap
OwotICAgICAgICBwcmludChgICAgIHJldHVybiBmaXJzdGJpdGxvdyh1c2hvcnQoeCkpO2ApOwot
ICAgICAgICBwcmludChgfWApOwotICAgICAgICBwcmludChgdWludCBmaXJzdGJpdGxvdyhpbnQg
eCkge2ApOwotICAgICAgICBwcmludChgICAgIHJldHVybiBmaXJzdGJpdGxvdyh1aW50KHgpKTtg
KTsKLSAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgZm9yIChsZXQgZnVuY3Rpb25OYW1lIG9m
IFtgZmlyc3RiaXRoaWdoYCwgYGZpcnN0Yml0bG93YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0
IHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGlu
dGBdKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYHVpbnQke3NpemV9ICR7ZnVuY3Rpb25OYW1lfSgke3R5
cGV9JHtzaXplfSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgdWludCR7
c2l6ZX0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRb
JHtpfV0gPSAke2Z1bmN0aW9uTmFtZX0oeFske2l9XSk7YCk7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAg
ICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgICAgICBwcmludCgpOwotCi0gICAgICAgIC8vIFJvdy1tYWpv
ciwgc28gdGhlIGZpcnN0IGluZGV4IHNlbGVjdHMgd2hpY2ggcm93LCBhbmQgdGhlIHNlY29uZCBp
bmRleCBzZWxlY3RzIHdoaWNoIGNvbHVtbgotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgaGFs
ZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfSBkZXRlcm1pbmFudCgk
e3R5cGV9IHgpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHg7YCk7Ci0gICAg
ICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZGV0ZXJtaW5h
bnQoJHt0eXBlfTJ4MiB4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4WzBd
WzBdICogeFsxXVsxXSAtIHhbMF1bMV0gKiB4WzFdWzBdO2ApOwotICAgICAgICAgICAgcHJpbnQo
YH1gKTsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9IGRldGVybWluYW50KCR7dHlwZX0zeDMg
eCkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4geFswXVswXSAqIHhbMV1bMV0g
KiB4WzJdWzJdICtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgICAgICAgIHhbMF1bMV0gKiB4
WzFdWzJdICogeFsyXVswXSArYCk7Ci0gICAgICAgICAgICBwcmludChgICAgICAgICAgICB4WzBd
WzJdICogeFsxXVswXSAqIHhbMl1bMV0gLWApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAgICAg
ICAgeFsyXVswXSAqIHhbMV1bMV0gKiB4WzBdWzJdIC1gKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgICAgICAgIHhbMl1bMV0gKiB4WzFdWzJdICogeFswXVswXSAtYCk7Ci0gICAgICAgICAgICBw
cmludChgICAgICAgICAgICB4WzJdWzJdICogeFsxXVswXSAqIHhbMF1bMV07YCk7Ci0gICAgICAg
ICAgICBwcmludChgfWApOwotICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZGV0ZXJtaW5hbnQo
JHt0eXBlfTR4NCB4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0gcmVzdWx0
O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9M3gzIG1pbm9yO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICBtaW5vclswXVswXSA9IHhbMV1bMV07YCk7Ci0gICAgICAgICAgICBw
cmludChgICAgIG1pbm9yWzBdWzFdID0geFsxXVsyXTtgKTsKLSAgICAgICAgICAgIHByaW50KGAg
ICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5v
clsxXVswXSA9IHhbMl1bMV07YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzFdWzFd
ID0geFsyXVsyXTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlub3JbMV1bMl0gPSB4WzJd
WzNdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5vclsyXVswXSA9IHhbM11bMV07YCk7
Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzJdWzFdID0geFszXVsyXTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGAgICAgbWlub3JbMl1bMl0gPSB4WzNdWzNdO2ApOwotICAgICAgICAgICAg
cHJpbnQoYCAgICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzBdICogZGV0ZXJtaW5hbnQobWlub3Ip
O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5vclswXVswXSA9IHhbMV1bMF07YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzBdWzFdID0geFsxXVsyXTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGAgICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdO2ApOwotICAgICAgICAgICAgcHJp
bnQoYCAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07YCk7Ci0gICAgICAgICAgICBwcmludChgICAg
IG1pbm9yWzFdWzFdID0geFsyXVsyXTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlub3Jb
MV1bMl0gPSB4WzJdWzNdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5vclsyXVswXSA9
IHhbM11bMF07YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzJdWzFdID0geFszXVsy
XTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlub3JbMl1bMl0gPSB4WzNdWzNdO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQgPSByZXN1bHQgLSB4WzBdWzFdICogZGV0ZXJt
aW5hbnQobWlub3IpO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5vclswXVswXSA9IHhb
MV1bMF07YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzBdWzFdID0geFsxXVsxXTtg
KTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYCAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07YCk7Ci0gICAgICAgICAg
ICBwcmludChgICAgIG1pbm9yWzFdWzFdID0geFsyXVsxXTtgKTsKLSAgICAgICAgICAgIHByaW50
KGAgICAgbWlub3JbMV1bMl0gPSB4WzJdWzNdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBt
aW5vclsyXVswXSA9IHhbM11bMF07YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzJd
WzFdID0geFszXVsxXTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlub3JbMl1bMl0gPSB4
WzNdWzNdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQgPSByZXN1bHQgKyB4WzBd
WzJdICogZGV0ZXJtaW5hbnQobWlub3IpO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5v
clswXVswXSA9IHhbMV1bMF07YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzBdWzFd
ID0geFsxXVsxXTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlub3JbMF1bMl0gPSB4WzFd
WzJdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07YCk7
Ci0gICAgICAgICAgICBwcmludChgICAgIG1pbm9yWzFdWzFdID0geFsyXVsxXTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGAgICAgbWlub3JbMV1bMl0gPSB4WzJdWzJdO2ApOwotICAgICAgICAgICAg
cHJpbnQoYCAgICBtaW5vclsyXVswXSA9IHhbM11bMF07YCk7Ci0gICAgICAgICAgICBwcmludChg
ICAgIG1pbm9yWzJdWzFdID0geFszXVsxXTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgbWlu
b3JbMl1bMl0gPSB4WzNdWzJdO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQgPSBy
ZXN1bHQgLSB4WzBdWzNdICogZGV0ZXJtaW5hbnQobWlub3IpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAg
ICAgfQotICAgICAgICBwcmludCgpOwotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2B1Y2hh
cjRgLCBgdXNob3J0NGAsIGB1aW50NGAsIGBjaGFyNGAsIGBzaG9ydDRgLCBgaW50NGAsIGBoYWxm
NGAsIGBmbG9hdDRgXSkgewotICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZHN0KCR7dHlwZX0g
c3JjMCwgJHt0eXBlfSBzcmMxKSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0g
cmVzdWx0O2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHQueCA9IDE7YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgIHJlc3VsdC55ID0gc3JjMC55ICogc3JjMS55O2ApOwotICAgICAg
ICAgICAgcHJpbnQoYCAgICByZXN1bHQueiA9IHNyYzAuejtgKTsKLSAgICAgICAgICAgIHByaW50
KGAgICAgcmVzdWx0LncgPSBzcmMxLnc7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJldHVy
biByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICB9Ci0gICAgICAg
IHByaW50KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkg
ewotICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZGlzdGFuY2UoJHt0eXBlfSB4LCAke3R5cGV9
IHkpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7YCk7
Ci0gICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBb
MiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBkaXN0YW5jZSgke3R5
cGV9JHtzaXplfSB4LCAke3R5cGV9JHtzaXplfSB5KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYCAgICByZXR1cm4gbGVuZ3RoKHggLSB5KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
fWApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHByaW50KCk7Ci0KLSAgICAg
ICAgZm9yIChsZXQgdHlwZSBvZiBbYGhhbGYzYCwgYGZsb2F0M2BdKSB7Ci0gICAgICAgICAgICBw
cmludChgJHt0eXBlfSBjcm9zcygke3R5cGV9IHUsICR7dHlwZX0gdikge2ApOwotICAgICAgICAg
ICAgcHJpbnQoYCAgICAke3R5cGV9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAg
cmVzdWx0LnggPSB1LnkgKiB2LnogLSB1LnogKiB2Lnk7YCk7Ci0gICAgICAgICAgICBwcmludChg
ICAgIHJlc3VsdC55ID0gdS56ICogdi54IC0gdS54ICogdi56O2ApOwotICAgICAgICAgICAgcHJp
bnQoYCAgICByZXN1bHQueiA9IHUueCAqIHYueSAtIHUueSAqIHYueDtgKTsKLSAgICAgICAgICAg
IHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsKLSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtg
dWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAs
IGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBwcmludChgJHt0eXBlfSBkb3QoJHt0eXBlfSBhLCAk
e3R5cGV9IGIpIHtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIGEgKiBiO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgWzIs
IDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0gZG90KCR7dHlwZX0ke3Np
emV9IGEsICR7dHlwZX0ke3NpemV9IGIpIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAg
ICR7dHlwZX0gcmVzdWx0ID0gMDtgKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbJHtpfV0gKiBiWyR7aX1dO2ApOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYH1gKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBwcmludCgpOwot
Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAg
ICAgIGZvciAobGV0IHNpemUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewotICAgICAgICAgICAg
ICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBmYWNlZm9yd2FyZCgke3R5cGV9JHtzaXplfSBuLCAk
e3R5cGV9JHtzaXplfSBpLCAke3R5cGV9JHtzaXplfSBuZykge2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGAgICAgcmV0dXJuIC1uICogc2lnbihkb3QoaSwgbmcpKTtgKTsKLSAgICAgICAgICAg
ICAgICBwcmludChgfWApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHByaW50
KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewotICAg
ICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYCR7dHlwZX0gbGVuZ3RoKCR7dHlwZX0ke3NpemV9IHgpIHtgKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBzcXJ0KGRvdCh4LCB4KSk7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBwcmludCgpOwotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0p
IHsKLSAgICAgICAgICAgIHByaW50KGAke3R5cGV9NCBsaXQoJHt0eXBlfSBuX2RvdF9sLCAke3R5
cGV9IG5fZG90X2gsICR7dHlwZX0gbSkge2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5
cGV9IGFtYmllbnQgPSAxO2ApOwotICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9IGRpZmZ1
c2UgPSBtYXgoMCwgbl9kb3RfbCk7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0g
c3BlY3VsYXIgPSBuX2RvdF9sIDwgMCB8fCBuX2RvdF9oIDwgMCA/IDAgOiBuX2RvdF9oICogbTtg
KTsKLSAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfTQgcmVzdWx0O2ApOwotICAgICAgICAg
ICAgcHJpbnQoYCAgICByZXN1bHQueCA9IGFtYmllbnQ7YCk7Ci0gICAgICAgICAgICBwcmludChg
ICAgIHJlc3VsdC55ID0gZGlmZnVzZTtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0
LnogPSBzcGVjdWxhcjtgKTsKLSAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0LncgPSAxO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAg
cHJpbnQoYH1gKTsKLSAgICAgICAgfQotICAgICAgICBwcmludCgpOwotCi0gICAgICAgIGZvciAo
bGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IHNp
emUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewotICAgICAgICAgICAgICAgIHByaW50KGAke3R5
cGV9JHtzaXplfSBub3JtYWxpemUoJHt0eXBlfSR7c2l6ZX0geCkge2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGAgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYH1gKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBwcmludCgpOwot
Ci0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAg
ICAgIGZvciAobGV0IHNpemUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewotICAgICAgICAgICAg
ICAgIHByaW50KGAke3R5cGV9JHtzaXplfSByZWZsZWN0KCR7dHlwZX0ke3NpemV9IGksICR7dHlw
ZX0ke3NpemV9IG4pIHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBpIC0g
MiAqIG4gKiBkb3QoaSwgbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBwcmludCgpOwotCi0gICAgICAgIC8vIE9wZW5H
TCBFUyB2My4zMCBzZWN0aW9uIDguNAotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgaGFsZmAs
IGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFtgYCwgYDJgLCBgM2As
IGA0YF0pIHsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSR7c2l6ZX0gcmVmcmFjdCgk
e3R5cGV9JHtzaXplfSBpLCAke3R5cGV9JHtzaXplfSBuLCAke3R5cGV9IGV0YSkge2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7c2l6ZX0gcmVzdWx0O2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90
KG4sIGkpICogZG90KG4sIGkpKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgIGlmIChr
IDwgMClgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgICAgICByZXR1cm4gcmVzdWx0O2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIGV0YSAqIGkgLSAoZXRhICogZG90
KG4sIGkpICsgc3FydChrKSkgKiBuO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQotICAgICAgICBmb3Ig
KGxldCB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBwcmludChgJHt0
eXBlfSB0cmFuc3Bvc2UoJHt0eXBlfSB4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHJl
dHVybiB4O2ApOwotICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIGZvciAobGV0
IGkgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaiBvZiBbMiwgMywg
NF0pIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7dHlwZX0ke2l9eCR7an0gdHJhbnNw
b3NlKCR7dHlwZX0ke2p9eCR7aX0geCkge2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChg
ICAgICR7dHlwZX0ke2l9eCR7an0gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBtID0gMDsgbSA8IGk7ICsrbSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChs
ZXQgbiA9IDA7IG4gPCBqOyArK24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJlc3VsdFske219XVske259XSA9IHhbJHtufV1bJHttfV07YCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICBwcmludCgpOwotCi0gICAgICAgIGZvciAobGV0IHJlc3VsdFR5cGUgb2YgW2BpbnRgLCBg
dWludGAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgaW50YCwg
YHVpbnRgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgICAgIGlmICh0eXBlID09IHJlc3VsdFR5
cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7cmVzdWx0VHlwZX0gYXMke3Jlc3Vs
dFR5cGV9KCR7dHlwZX0geCkge2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJl
dHVybiB4O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSAgaWYgKHJlc3VsdFR5cGUgPT0gYGludGAgJiYgdHlwZSA9PSBgdWludGAgfHwg
cmVzdWx0VHlwZSA9PSBgdWludGAgJiYgdHlwZSA9PSBgaW50YCkgewotICAgICAgICAgICAgICAg
ICAgICBwcmludChgJHtyZXN1bHRUeXBlfSBhcyR7cmVzdWx0VHlwZX0oJHt0eXBlfSB4KSB7YCk7
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuICR7cmVzdWx0VHlwZX0oeCk7
YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3Jlc3VsdFR5cGV9IGFz
JHtyZXN1bHRUeXBlfSgke3R5cGV9KTtgKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHR5cGUgPT0gcmVzdWx0VHlwZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YCR7cmVzdWx0VHlwZX0ke3NpemV9IGFzJHtyZXN1bHRUeXBlfSgke3R5cGV9JHtzaXplfSB4KSB7
YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4O2ApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAke3Jlc3VsdFR5cGV9JHtzaXpl
fSBhcyR7cmVzdWx0VHlwZX0oJHt0eXBlfSR7c2l6ZX0geCkge2ApOwotICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoYCAgICAke3Jlc3VsdFR5cGV9JHtzaXplfSByZXN1bHQ7YCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7aX1dID0gYXMke3Jl
c3VsdFR5cGV9KHhbJHtpfV0pO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0VHlwZSA9PSBgZmxvYXRgICYm
IHR5cGUgPT0gYGZsb2F0YCkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpIG9mIFsy
LCAzLCA0XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiBvZiBbMiwgMywg
NF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSByZXN1bHRUeXBl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAke3Jlc3VsdFR5cGV9
JHtpfXgke2p9IGFzJHtyZXN1bHRUeXBlfSgke3R5cGV9JHtpfXgke2p9IHgpIHtgKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4geDtgKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dChgJHtyZXN1bHRUeXBlfSR7aX14JHtqfSBhcyR7cmVzdWx0VHlwZX0oJHt0eXBlfSR7aX14JHtq
fSB4KSB7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHty
ZXN1bHRUeXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7
bn1dID0gYXMke3Jlc3VsdFR5cGV9KHhbJHttfV1bJHtufV0pO2ApOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3Vs
dDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQotICAgICAgICBwcmludChgbmF0aXZlIGZsb2F0IGYx
NnRvZjMyKHVpbnQpO2ApOwotICAgICAgICBwcmludChgbmF0aXZlIHVpbnQgZjMydG9mMTYoZmxv
YXQpO2ApOwotICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAg
ICAgcHJpbnQoYGZsb2F0JHtzaXplfSBmMTZ0b2YzMih1aW50JHtzaXplfSB4KSB7YCk7Ci0gICAg
ICAgICAgICBwcmludChgICAgIGZsb2F0JHtzaXplfSByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgIHByaW50KGAg
ICAgcmVzdWx0WyR7aX1dID0gZjE2dG9mMzIoeFske2l9XSk7YCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgfWApOwotICAgICAgICAgICAgcHJpbnQoYHVpbnQke3NpemV9IGYzMnRvZjE2KGZsb2F0JHtz
aXplfSB4KSB7YCk7Ci0gICAgICAgICAgICBwcmludChgICAgIHVpbnQke3NpemV9IHJlc3VsdDtg
KTsKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHtpfV0gPSBmMzJ0b2YxNih4WyR7aX1dKTtgKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50KGAgICAgcmV0dXJuIHJlc3VsdDtgKTsK
LSAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQoKTsKLQot
ICAgICAgICBwcmludChgbmF0aXZlIGNvbXB1dGUgdm9pZCBBbGxNZW1vcnlCYXJyaWVyV2l0aEdy
b3VwU3luYygpO2ApOwotICAgICAgICBwcmludChgbmF0aXZlIGNvbXB1dGUgdm9pZCBEZXZpY2VN
ZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYygpO2ApOwotICAgICAgICBwcmludChgbmF0aXZlIGNv
bXB1dGUgdm9pZCBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7YCk7Ci0gICAgICAg
IHByaW50KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAs
IGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAg
ICAgICAgICAgcHJpbnQoYCR7dHlwZX0gbXVsKCR7dHlwZX0geCwgJHt0eXBlfSB5KSB7YCk7Ci0g
ICAgICAgICAgICBwcmludChgICAgIHJldHVybiB4ICogeTtgKTsKLSAgICAgICAgICAgIHByaW50
KGB9YCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFtgdWNoYXJgLCBg
dXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBd
KSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAg
ICAgICAgIHByaW50KGAke3R5cGV9JHtzaXplfSBtdWwoJHt0eXBlfSB4LCAke3R5cGV9JHtzaXpl
fSB5KSB7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9JHtzaXplfSByZXN1
bHQ7YCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHtpfV0gPSB4ICogeVske2l9
XTtgKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1
cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYCR7dHlwZX0ke3NpemV9IG11bCgke3R5cGV9JHtzaXplfSB4LCAke3R5cGV9IHkp
IHtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke3NpemV9IHJlc3VsdDtg
KTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAg
ICAgICAgICAgICAgICAgICBwcmludChgICAgIHJlc3VsdFske2l9XSA9IHhbJHtpfV0gKiB5O2Ap
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludChgICAgIHJldHVybiBy
ZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYH1gKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsK
LSAgICAgICAgICAgIGZvciAobGV0IGkgb2YgWzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAg
Zm9yIChsZXQgaiBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCR7
dHlwZX0ke2l9eCR7an0gbXVsKCR7dHlwZX0geCwgJHt0eXBlfSR7aX14JHtqfSB5KSB7YCk7Ci0g
ICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgJHt0eXBlfSR7aX14JHtqfSByZXN1bHQ7YCk7
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgaTsgKyttKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGo7ICsrbikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dWyR7bn1dID0geCAq
IHlbJHttfV1bJHtufV07YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4gcmVzdWx0
O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAgICAgICAg
ICBwcmludChgJHt0eXBlfSR7aX14JHtqfSBtdWwoJHt0eXBlfSR7aX14JHtqfSB4LCAke3R5cGV9
IHkpIHtgKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICAke3R5cGV9JHtpfXgke2p9
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBpOyAr
K20pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgajsgKytu
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHttfV1b
JHtufV0gPSB4WyR7bX1dWyR7bn1dICogeTtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgIHJl
dHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGB9YCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQg
dHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50
YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBbMiwg
MywgNF0pIHsKLSAgICAgICAgICAgICAgICBwcmludChgJHt0eXBlfSBtdWwoJHt0eXBlfSR7c2l6
ZX0geCwgJHt0eXBlfSR7c2l6ZX0geSkge2ApOwotICAgICAgICAgICAgICAgIHByaW50KGAgICAg
cmV0dXJuIGRvdCh4LCB5KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbYGhhbGZgLCBg
ZmxvYXRgXSkgewotICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBbMiwgMywgNF0pIHsKLSAgICAg
ICAgICAgICAgICBmb3IgKGxldCBqIG9mIFsyLCAzLCA0XSkgewotICAgICAgICAgICAgICAgICAg
ICBwcmludChgJHt0eXBlfSR7an0gbXVsKCR7dHlwZX0ke2l9IHgsICR7dHlwZX0ke2l9eCR7an0g
eSkge2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke2p9IHJlc3Vs
dDtgKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBqOyArK20pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dID0gMDtgKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgaTsgKytuKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHttfV0gKz0geFsk
e259XSAqIHlbJHtufV1bJHttfV07YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXR1cm4g
cmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAgICAgICAg
ICAgICAgICBwcmludChgJHt0eXBlfSR7aX0gbXVsKCR7dHlwZX0ke2l9eCR7an0geCwgJHt0eXBl
fSR7an0geSkge2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgICAgICR7dHlwZX0ke2l9
IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCBpOyAr
K20pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGAgICAgcmVzdWx0WyR7bX1dID0g
MDtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgajsgKytu
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHttfV0g
Kz0geFske219XVske259XSAqIHlbJHtufV07YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICBy
ZXR1cm4gcmVzdWx0O2ApOwotICAgICAgICAgICAgICAgICAgICBwcmludChgfWApOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0
IHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IGkgb2Yg
WzIsIDMsIDRdKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaiBvZiBbMiwgMywgNF0pIHsK
LSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgayBvZiBbMiwgMywgNF0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KGAke3R5cGV9JHtpfXgke2t9IG11bCgke3R5cGV9JHtpfXgk
e2p9IHgsICR7dHlwZX0ke2p9eCR7a30geSkge2ApOwotICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYCAgICAke3R5cGV9JHtpfXgke2t9IHJlc3VsdDtgKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IHAgPSAwOyBwIDwgaTsgKytwKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgciA9IDA7IHIgPCBrOyArK3IpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRbJHtwfV1bJHtyfV0gPSAwO2ApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBxID0gMDsgcSA8IGo7ICsrcSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYCAgICByZXN1bHRb
JHtwfV1bJHtyfV0gKz0geFske3B9XVske3F9XSAqIHlbJHtxfV1bJHtyfV07YCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dChgICAgIHJldHVybiByZXN1bHQ7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChg
fWApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIHByaW50KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgYWRk
cmVzc1NwYWNlMSBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAg
ICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBg
dGhyZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHR5cGUgb2YgW2B1aW50
YCwgYGludGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGZ1bmN0aW9uTmFtZSBv
ZiBbYEFkZGAsIGBBbmRgLCBgRXhjaGFuZ2VgLCBgTWF4YCwgYE1pbmAsIGBPcmAsIGBYb3JgXSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZCR7
ZnVuY3Rpb25OYW1lfSgke2FkZHJlc3NTcGFjZTF9IGF0b21pY18ke3R5cGV9KiwgJHt0eXBlfSwg
JHthZGRyZXNzU3BhY2UyfSAke3R5cGV9Kik7YCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgke2FkZHJlc3NTcGFjZTF9
IGF0b21pY18ke3R5cGV9KiwgJHt0eXBlfSwgJHt0eXBlfSwgJHthZGRyZXNzU3BhY2UyfSAke3R5
cGV9Kik7YCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIHByaW50KCk7Ci0KLSAgICAgICAgLy8gWW91IG1pZ2h0IHRoaW5rIHRoYXQgdGhlIHNh
bXBsaW5nIGZ1bmN0aW9ucyB0aGF0IHJlbHkgb24gaW1wbGljaXQgZGVyaXZhdGl2ZXMgY2FuJ3Qg
YmUgY2FsbGVkIGluIHZlcnRleCBzaGFkZXJzLgotICAgICAgICAvLyBIb3dldmVyLCB0aGV5IGRv
IHdvcms7IHRoZXkganVzdCBhIGxldmVsIG9mIDAuCi0gICAgICAgIGZvciAobGV0IHR5cGUgb2Yg
W2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxm
YCwgYGZsb2F0YF0pIHsKLSAgICAgICAgICAgIGZvciAobGV0IGxlbmd0aCBvZiBbYGAsIGAyYCwg
YDNgLCBgNGBdKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9j
YXRpb24sIGludCBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50MiBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zm
c2V0KTtgKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UxIG9mIFtgdGhy
ZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgW2B0aHJlYWRgLCBgZGV2aWNlYCwgYHRocmVhZGdyb3Vw
YF0pCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHVpbnQgTWlwTGV2ZWwsICR7YWRkcmVz
c1NwYWNlMX0gdWludCogV2lkdGgsICR7YWRkcmVzc1NwYWNlMn0gdWludCogTnVtYmVyT2ZMZXZl
bHMpO2ApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludCgpOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVy
ZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShU
ZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBpbnQgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgaW50MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIGludDMgbG9jYXRpb24sIGlu
dCBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTEgb2Yg
W2B0aHJlYWRgLCBgZGV2aWNlYCwgYHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFk
Z3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNl
MyBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMURB
cnJheTwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgJHthZGRyZXNzU3BhY2UxfSB1
aW50KiBXaWR0aCwgJHthZGRyZXNzU3BhY2UyfSB1aW50KiBFbGVtZW50cywgJHthZGRyZXNzU3Bh
Y2UzfSB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZs
b2F0IEJpYXMpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZs
b2F0MiBERFkpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZLCBpbnQyIG9mZnNldCk7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVs
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBm
bG9hdCBMT0QpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4o
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8
IGxlbmd0aCA9PSAiNCIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50MyBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMSBvZiBbYHRocmVhZGAsIGBk
ZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBh
ZGRyZXNzU3BhY2UyIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKQotICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMyBvZiBbYHRocmVhZGAs
IGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9PiwgdWludCBNaXBMZXZlbCwgJHthZGRyZXNzU3BhY2UxfSB1aW50KiBXaWR0aCwgJHthZGRy
ZXNzU3BhY2UyfSB1aW50KiBIZWlnaHQsICR7YWRkcmVzc1NwYWNlM30gdWludCogTnVtYmVyT2ZM
ZXZlbHMpO2ApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBC
aWFzKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQyIERE
WCwgZmxvYXQyIEREWSk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QsIGludDIgb2Zmc2V0
KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0g
IjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgewotICAgICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zm
c2V0KTtgKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3Ro
ID09ICI0IikgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGlu
dDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwg
aW50NCBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9j
YXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNz
U3BhY2UxIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgW2B0aHJlYWRgLCBgZGV2aWNl
YCwgYHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFk
ZHJlc3NTcGFjZTMgb2YgW2B0aHJlYWRgLCBgZGV2aWNlYCwgYHRocmVhZGdyb3VwYF0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2U0IG9mIFtgdGhy
ZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgJHthZGRyZXNzU3BhY2UxfSB1aW50KiBX
aWR0aCwgJHthZGRyZXNzU3BhY2UyfSB1aW50KiBIZWlnaHQsICR7YWRkcmVzc1NwYWNlM30gdWlu
dCogRWxlbWVudHMsICR7YWRkcmVzc1NwYWNlNH0gdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0
aH0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgZm9y
IChsZXQgYWRkcmVzc1NwYWNlMSBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBg
XSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFtgdGhy
ZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBhZGRyZXNzU3BhY2UzIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRn
cm91cGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1Nw
YWNlNCBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4
dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCAke2FkZHJlc3NTcGFjZTF9
IHVpbnQqIFdpZHRoLCAke2FkZHJlc3NTcGFjZTJ9IHVpbnQqIEhlaWdodCwgJHthZGRyZXNzU3Bh
Y2UzfSB1aW50KiBEZXB0aCwgJHthZGRyZXNzU3BhY2U0fSB1aW50KiBOdW1iZXJPZkxldmVscyk7
YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmVDdWJl
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMp
O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0MyBERFgsIGZsb2F0MyBERFkpO2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVDdWJlPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
ICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikg
ewotICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0g
IjQiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICI0IikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTEgb2YgW2B0aHJlYWRgLCBgZGV2aWNl
YCwgYHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVz
c1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMyBvZiBbYHRocmVhZGAsIGBk
ZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9
PiwgdWludCBNaXBMZXZlbCwgJHthZGRyZXNzU3BhY2UxfSB1aW50KiBXaWR0aCwgJHthZGRyZXNz
U3BhY2UyfSB1aW50KiBIZWlnaHQsICR7YWRkcmVzc1NwYWNlM30gdWludCogTnVtYmVyT2ZMZXZl
bHMpO2ApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNl
IG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LCAke2FkZHJlc3NTcGFjZX0gdWludCogV2lkdGgpO2ApOwotICAgICAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PiwgJHthZGRyZXNzU3BhY2V9IGZsb2F0KiBXaWR0aCk7YCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PiwgJHt0eXBlfSR7bGVuZ3RofSwgdWludCBsb2NhdGlvbik7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNz
U3BhY2UxIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgW2B0aHJlYWRgLCBgZGV2aWNl
YCwgYHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
ICR7YWRkcmVzc1NwYWNlMX0gdWludCogV2lkdGgsICR7YWRkcmVzc1NwYWNlMn0gdWludCogRWxl
bWVudHMpO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgJHthZGRyZXNz
U3BhY2UxfSBmbG9hdCogV2lkdGgsICR7YWRkcmVzc1NwYWNlMn0gdWludCogRWxlbWVudHMpO2Ap
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sIGludDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LCAke3R5cGV9JHtsZW5ndGh9LCB1aW50MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UxIG9mIFtgdGhy
ZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGFkZHJlc3NTcGFjZTIgb2YgW2B0aHJlYWRgLCBgZGV2aWNlYCwgYHRocmVhZGdyb3Vw
YF0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCAke2FkZHJlc3NTcGFjZTF9IHVp
bnQqIFdpZHRoLCAke2FkZHJlc3NTcGFjZTJ9IHVpbnQqIEhlaWdodCk7YCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PiwgJHthZGRyZXNzU3BhY2UxfSBmbG9hdCogV2lkdGgsICR7YWRk
cmVzc1NwYWNlMn0gZmxvYXQqIEhlaWdodCk7YCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIGludDIgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PiwgJHt0eXBlfSR7bGVuZ3RofSwgdWludDIgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYWRk
cmVzc1NwYWNlMSBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFtgdGhyZWFkYCwgYGRl
dmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxl
dCBhZGRyZXNzU3BhY2UzIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgJHthZGRyZXNzU3BhY2Ux
fSB1aW50KiBXaWR0aCwgJHthZGRyZXNzU3BhY2UyfSB1aW50KiBIZWlnaHQsICR7YWRkcmVzc1Nw
YWNlM30gdWludCogRWxlbWVudHMpO2ApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sICR7YWRkcmVzc1NwYWNlMX0gZmxvYXQqIFdpZHRoLCAke2FkZHJlc3NTcGFjZTJ9
IGZsb2F0KiBIZWlnaHQsICR7YWRkcmVzc1NwYWNlM30gZmxvYXQqIEVsZW1lbnRzKTtgKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
TG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQzIGxvY2F0aW9uKTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PiwgJHt0eXBlfSR7bGVuZ3RofSwgdWludDMgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQg
YWRkcmVzc1NwYWNlMSBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhyZWFkZ3JvdXBgXSkgewot
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2UyIG9mIFtgdGhyZWFkYCwg
YGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBhZGRyZXNzU3BhY2UzIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBd
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sICR7YWRkcmVzc1NwYWNlMX0g
dWludCogV2lkdGgsICR7YWRkcmVzc1NwYWNlMn0gdWludCogSGVpZ2h0LCAke2FkZHJlc3NTcGFj
ZTN9IHVpbnQqIERlcHRoKTtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwg
JHthZGRyZXNzU3BhY2UxfSBmbG9hdCogV2lkdGgsICR7YWRkcmVzc1NwYWNlMn0gZmxvYXQqIEhl
aWdodCwgJHthZGRyZXNzU3BhY2UzfSBmbG9hdCogRGVwdGgpO2ApOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVy
ZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
ICR7dHlwZX0ke2xlbmd0aH0sIHVpbnQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgdHlw
ZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJl
RGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBh
cmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21w
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlw
ZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJl
VmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IEJpYXMpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbiwgZmxvYXQgQmlhcywgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2
ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxv
YXQgTE9EKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZl
bChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBMT0QsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIGludDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24sIGludDIgb2Zm
c2V0KTtgKTsKLSAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTEgb2YgW2B0aHJlYWRg
LCBgZGV2aWNlYCwgYHRocmVhZGdyb3VwYF0pIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBh
ZGRyZXNzU3BhY2UyIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZTMgb2YgW2B0aHJlYWRgLCBg
ZGV2aWNlYCwgYHRocmVhZGdyb3VwYF0pCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgdWludCBN
aXBMZXZlbCwgJHthZGRyZXNzU3BhY2UxfSB1aW50KiBXaWR0aCwgJHthZGRyZXNzU3BhY2UyfSB1
aW50KiBIZWlnaHQsICR7YWRkcmVzc1NwYWNlM30gdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50KCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBh
cmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBh
cmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcywgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZ
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQy
IEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9EKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCwgaW50MiBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFy
ZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBh
ZGRyZXNzU3BhY2UxIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0g
ICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZp
Y2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRy
ZXNzU3BhY2UzIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2U0IG9mIFtgdGhyZWFkYCwg
YGRldmljZWAsIGB0aHJlYWRncm91cGBdKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHVpbnQgTWlwTGV2ZWwsICR7YWRkcmVzc1NwYWNlMX0gdWludCogV2lkdGgsICR7YWRkcmVz
c1NwYWNlMn0gdWludCogSGVpZ2h0LCAke2FkZHJlc3NTcGFjZTN9IHVpbnQqIEVsZW1lbnRzLCAk
e2FkZHJlc3NTcGFjZTR9IHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBy
aW50KCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVE
ZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlw
ZX0gQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgQmlhcyk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlR3JhZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0MyBERFgsIGZsb2F0MyBERFkpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9EKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBh
ZGRyZXNzU3BhY2UxIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0g
ICAgICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZp
Y2VgLCBgdGhyZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRy
ZXNzU3BhY2UzIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKQotICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PiwgdWludCBNaXBMZXZlbCwgJHthZGRyZXNzU3BhY2UxfSB1aW50
KiBXaWR0aCwgJHthZGRyZXNzU3BhY2UyfSB1aW50KiBIZWlnaHQsICR7YWRkcmVzc1NwYWNlM30g
dWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3Bh
Y2UxIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAgICAg
ICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZpY2VgLCBgdGhy
ZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCAke2FkZHJlc3NTcGFjZTF9IHVp
bnQqIFdpZHRoLCAke2FkZHJlc3NTcGFjZTJ9IHVpbnQqIEhlaWdodCk7YCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sICR7YWRkcmVzc1NwYWNlMX0gZmxvYXQqIFdpZHRoLCAke2FkZHJlc3NTcGFj
ZTJ9IGZsb2F0KiBIZWlnaHQpO2ApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIGludDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2
b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sICR7dHlwZX0sIHVpbnQyIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBhZGRy
ZXNzU3BhY2UxIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAg
ICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlMiBvZiBbYHRocmVhZGAsIGBkZXZpY2Vg
LCBgdGhyZWFkZ3JvdXBgXSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNz
U3BhY2UzIG9mIFtgdGhyZWFkYCwgYGRldmljZWAsIGB0aHJlYWRncm91cGBdKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sICR7YWRkcmVzc1NwYWNlMX0gdWludCogV2lkdGgsICR7
YWRkcmVzc1NwYWNlMn0gdWludCogSGVpZ2h0LCAke2FkZHJlc3NTcGFjZTN9IHVpbnQqIEVsZW1l
bnRzKTtgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgJHthZGRyZXNzU3BhY2Ux
fSBmbG9hdCogV2lkdGgsICR7YWRkcmVzc1NwYWNlMn0gZmxvYXQqIEhlaWdodCwgJHthZGRyZXNz
U3BhY2UzfSBmbG9hdCogRWxlbWVudHMpO2ApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBpbnQzIGxvY2F0aW9u
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sICR7dHlwZX0sIHVpbnQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KCk7Ci0gICAgICAgIH0KLSAgICB9KSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
KSgpOwotCi0vLyBGSVhNRTogT25jZSB0aGUgc3RhbmRhcmQgbGlicmFyeSBoYXMgYmVlbiByZXBs
YWNlZCB3aXRoIGEgbmV3IHZlcnNpb24sIHRoaXMgY29tbWVudHMgc2hvdWxkIGJlIHJlbW92ZWQu
Ci0vLyBUaGlzIGxpc3QgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYXZhaWxhYmlsaXR5IG9mIHZl
Y3RvciB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIGxhbmdhdWdlLgotLy8gUGVybWlzc2libGUgdmVj
dG9yIGVsZW1lbnQgdHlwZXMgbXVzdCBhcHBlYXIgaW4gdGhpcyBsaXN0IGFuZCBpbiB0aGUgc3Rh
bmRhcmQgbGlicmFyeQotY29uc3QgVmVjdG9yRWxlbWVudFR5cGVzID0gWyAiYm9vbCIsICJ1Y2hh
ciIsICJjaGFyIiwgInVzaG9ydCIsICJzaG9ydCIsICJ1aW50IiwgImludCIsICJoYWxmIiwgImZs
b2F0IiBdOwotY29uc3QgVmVjdG9yRWxlbWVudFNpemVzID0gWyAyLCAzLCA0IF07Ci0KLWZ1bmN0
aW9uIGFsbFZlY3RvclR5cGVOYW1lcygpCi17Ci0gICAgY29uc3QgbmFtZXMgPSBbXTsKLSAgICBm
b3IgKGxldCBlbGVtZW50VHlwZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgZm9y
IChsZXQgc2l6ZSBvZiBWZWN0b3JFbGVtZW50U2l6ZXMpCi0gICAgICAgICAgICBuYW1lcy5wdXNo
KGAke2VsZW1lbnRUeXBlfSR7c2l6ZX1gKTsKLSAgICB9Ci0gICAgcmV0dXJuIG5hbWVzOwotfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVy
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2E2OTZlNGRiZi4uMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0
ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRGdW5jRGVmKG5vZGUpCi0gICAgewotICAgICAgICBs
ZXQgYXR0cmlidXRlQmxvY2sgPSBudWxsOwotICAgICAgICBpZiAobm9kZS5hdHRyaWJ1dGVCbG9j
aykKLSAgICAgICAgICAgIGF0dHJpYnV0ZUJsb2NrID0gbm9kZS5hdHRyaWJ1dGVCbG9jay5tYXAo
YXR0cmlidXRlID0+IGF0dHJpYnV0ZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIGxldCByZXN1bHQg
PSBuZXcgRnVuY0RlZigKLSAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAg
ICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBub2RlLnBh
cmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAg
ICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5v
ZGUuc2hhZGVyVHlwZSwgYXR0cmlidXRlQmxvY2spOwotICAgICAgICByZXN1bHQuaXNSZXN0cmlj
dGVkID0gbm9kZS5pc1Jlc3RyaWN0ZWQ7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0TmF0aXZlRnVuYyhub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwK
LSAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5v
ZGUucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0g
ICAgICAgICAgICBub2RlLmlzQ2FzdCwgbm9kZS5zdGFnZSk7Ci0gICAgICAgIHJlc3VsdC5pc1Jl
c3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICB9Ci0gICAgCi0gICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1
cm4gbmV3IE5hdGl2ZVR5cGUobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJndW1l
bnRzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlzKSkpOwotICAgIH0KLSAgICAK
LSAgICB2aXNpdFR5cGVEZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZURl
Zihub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGUudmlzaXQodGhpcykpOwotICAgIH0K
LSAgICAKLSAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1
bHQgPSBuZXcgU3RydWN0VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICAgICAgZm9y
IChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCi0gICAgICAgICAgICByZXN1bHQuYWRkKGZpZWxk
LnZpc2l0KHRoaXMpKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRCb29sTGl0ZXJhbChub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBCb29sTGl0
ZXJhbChub2RlLm9yaWdpbiwgbm9kZS52YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RW51
bVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgRW51bVR5cGUobm9k
ZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS5iYXNlVHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgICAg
IGZvciAobGV0IG1lbWJlciBvZiBub2RlLm1lbWJlcnMpCi0gICAgICAgICAgICByZXN1bHQuYWRk
KG1lbWJlcik7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRGdW5j
TnVtVGhyZWFkc0F0dHJpYnV0ZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5j
TnVtVGhyZWFkc0F0dHJpYnV0ZShub2RlLngsIG5vZGUueSwgbm9kZS56KTsKLSAgICB9Ci19Ci0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1
aWxkZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWls
ZGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMWI0NGI5MzM2MC4uMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVp
bGRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgU3RydWN0
TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewotICAgIGNvbnN0cnVjdG9yKCkKLSAgICB7
Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29mZnNldCA9IDA7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0UmVmZXJlbmNlVHlwZShub2RlKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBpZiAobm9kZS5zaXplICE9IG51
bGwpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGxldCBvbGRPZmZzZXQgPSB0aGlzLl9v
ZmZzZXQ7Ci0gICAgICAgIHRoaXMuX29mZnNldCA9IDA7Ci0gICAgICAgIHN1cGVyLnZpc2l0U3Ry
dWN0VHlwZShub2RlKTsKLSAgICAgICAgbm9kZS5zaXplID0gdGhpcy5fb2Zmc2V0OwotICAgICAg
ICB0aGlzLl9vZmZzZXQgKz0gb2xkT2Zmc2V0OwotICAgIH0KLSAgICAKLSAgICBnZXQgb2Zmc2V0
KCkgeyByZXR1cm4gdGhpcy5fb2Zmc2V0OyB9Ci0gICAgCi0gICAgdmlzaXRGaWVsZChub2RlKQot
ICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXRGaWVsZChub2RlKTsKLSAgICAgICAgbm9kZS5vZmZz
ZXQgPSB0aGlzLl9vZmZzZXQ7Ci0gICAgICAgIGxldCBzaXplID0gbm9kZS50eXBlLnNpemU7Ci0g
ICAgICAgIGlmIChzaXplID09IG51bGwpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlR5
cGUgZG9lcyBub3QgaGF2ZSBzaXplOiAiICsgbm9kZS50eXBlKTsKLSAgICAgICAgdGhpcy5fb2Zm
c2V0ICs9IHNpemU7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsK
LSAgICAgICAgc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwotICAgICAgICBub2RlLnR5cGUudmlz
aXQodGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAg
ICB7Ci0gICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRMaXN0KQotICAg
ICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAgIE5vZGUudmlzaXQo
bm9kZS5yZXN1bHRUeXBlLCB0aGlzKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MGZmOTU4M2I0OS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RydWN0VHlwZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xh
c3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFt
ZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdp
bjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX2ZpZWxkcyA9IG5l
dyBNYXAoKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkKGZpZWxkKQotICAgIHsKLSAgICAgICAgZmll
bGQuc3RydWN0ID0gdGhpczsKLSAgICAgICAgaWYgKHRoaXMuX2ZpZWxkcy5oYXMoZmllbGQubmFt
ZSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmaWVsZC5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCAiRHVwbGljYXRlIGZpZWxkIG5hbWU6ICIgKyBmaWVsZC5uYW1lKTsKLSAgICAgICAg
dGhpcy5fZmllbGRzLnNldChmaWVsZC5uYW1lLCBmaWVsZCk7Ci0gICAgfQotICAgIAotICAgIGdl
dCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBvcmlnaW4oKSB7IHJldHVy
biB0aGlzLl9vcmlnaW47IH0KLSAgICAKLSAgICBnZXQgZmllbGROYW1lcygpIHsgcmV0dXJuIHRo
aXMuX2ZpZWxkcy5rZXlzKCk7IH0KLSAgICBmaWVsZEJ5TmFtZShuYW1lKSB7IHJldHVybiB0aGlz
Ll9maWVsZHMuZ2V0KG5hbWUpOyB9Ci0gICAgZ2V0IGZpZWxkcygpIHsgcmV0dXJuIHRoaXMuX2Zp
ZWxkcy52YWx1ZXMoKTsgfQotICAgIGdldCBmaWVsZE1hcCgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxk
czsgfQotICAgIGdldCBpc1ByaW1pdGl2ZSgpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0g
dHJ1ZTsKLSAgICAgICAgZm9yIChsZXQgZmllbGQgb2YgdGhpcy5maWVsZHMpCi0gICAgICAgICAg
ICByZXN1bHQgJj0gZmllbGQudHlwZS5pc1ByaW1pdGl2ZTsKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICB9Ci0gICAgCi0gICAgcG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5zaXplID09IG51bGwpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlN0cnVjdCBkb2VzIG5vdCBoYXZlIGxheW91dDogIiArIHRoaXMgKyAiICIg
KyBkZXNjcmliZSh0aGlzKSk7Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMuZmllbGRz
KQotICAgICAgICAgICAgZmllbGQudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9m
ZnNldCArIGZpZWxkLm9mZnNldCk7Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBgc3RydWN0ICR7dGhpcy5uYW1lfSB7ICR7QXJyYXkuZnJvbSh0aGlz
LmZpZWxkcykuam9pbigiOyAiKX07IH1gOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N3aXRjaENhc2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Td2l0Y2hDYXNlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MjFkZjAxMmFiMS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3dpdGNoQ2FzZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xh
c3MgU3dpdGNoQ2FzZSBleHRlbmRzIE5vZGUgewotICAgIC8vIE51bGwgdmFsdWUgbWVhbnMgZGVm
YXVsdC4KLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIHZhbHVlLCBib2R5KQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlz
Ll92YWx1ZSA9IHZhbHVlOwotICAgICAgICB0aGlzLl9ib2R5ID0gYm9keTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBpc0Rl
ZmF1bHQoKSB7IHJldHVybiAhdGhpcy5fdmFsdWU7IH0KLSAgICBnZXQgdmFsdWUoKSB7IHJldHVy
biB0aGlzLl92YWx1ZTsgfQotICAgIGdldCBib2R5KCkgeyByZXR1cm4gdGhpcy5fYm9keTsgfQot
ICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSAiIjsKLSAg
ICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0KQotICAgICAgICAgICAgcmVzdWx0ICs9ICJkZWZhdWx0
IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9ICJjYXN0ICIgKyB0aGlzLnZh
bHVlOwotICAgICAgICByZXR1cm4gcmVzdWx0ICsgIjogIiArIHRoaXMuYm9keTsKLSAgICB9Ci19
Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N3aXRjaFN0YXRl
bWVudC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N3aXRjaFN0YXRlbWVudC5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVkYzQ3Y2M5ZmEuLjAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N3aXRjaFN0YXRlbWVudC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgU3dpdGNoU3RhdGVtZW50
IGV4dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCB2YWx1ZSkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAg
dGhpcy5fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgdGhpcy5fc3dpdGNoQ2FzZXMgPSBbXTsKLSAg
ICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAg
IGdldCB2YWx1ZSgpIHsgcmV0dXJuIHRoaXMuX3ZhbHVlOyB9Ci0gICAgCi0gICAgYWRkKHN3aXRj
aENhc2UpCi0gICAgewotICAgICAgICB0aGlzLl9zd2l0Y2hDYXNlcy5wdXNoKHN3aXRjaENhc2Up
OwotICAgIH0KLSAgICAKLSAgICBnZXQgc3dpdGNoQ2FzZXMoKSB7IHJldHVybiB0aGlzLl9zd2l0
Y2hDYXNlczsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1
bHQgPSAic3dpdGNoICgiICsgdGhpcy52YWx1ZSArICIpIHsgIjsKLSAgICAgICAgaWYgKHRoaXMu
c3dpdGNoQ2FzZXMubGVuZ3RoKQotICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuc3dpdGNoQ2Fz
ZXMuam9pbigiOyAiKTsgKyAiOyAiOwotICAgICAgICByZXR1cm4gcmVzdWx0ICsgIn0iOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhl
c2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWEyODE1OGE4YjQuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIHN5bnRoZXNpemVBcnJheU9wZXJhdG9y
TGVuZ3RoKHByb2dyYW0pCi17Ci0gICAgY29uc3QgYXJyYXlUeXBlcyA9IG5ldyBTZXQoKTsKLQot
ICAgIGNsYXNzIEZpbmRBcnJheVR5cGVzIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgIHZpc2l0
QXJyYXlUeXBlKG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGFycmF5VHlwZXMuYWRkKG5v
ZGUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJvZ3JhbS52aXNpdChuZXcgRmluZEFycmF5
VHlwZXMoKSk7Ci0KLSAgICBjb25zdCB1aW50ID0gVHlwZVJlZi53cmFwKHByb2dyYW0uZ2xvYmFs
TmFtZUNvbnRleHQuZ2V0KFR5cGUsICJ1aW50IikpOwotICAgIGNvbnN0IG5hbWVSZXNvbHZlciA9
IG5ldyBOYW1lUmVzb2x2ZXIocHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dCk7Ci0gICAgdWludC52
aXNpdChuYW1lUmVzb2x2ZXIpOwotCi0gICAgZm9yIChsZXQgYXJyYXlUeXBlIG9mIGFycmF5VHlw
ZXMpIHsKLSAgICAgICAgY29uc3QgcGFyYW1UeXBlID0gVHlwZVJlZi53cmFwKGFycmF5VHlwZSk7
Ci0gICAgICAgIHBhcmFtVHlwZS52aXNpdChuYW1lUmVzb2x2ZXIpOwotICAgICAgICBwYXJhbVR5
cGUudHlwZS5lbGVtZW50VHlwZS52aXNpdChuYW1lUmVzb2x2ZXIpOwotCi0gICAgICAgIGxldCBw
b3NzaWJsZUV4aXN0aW5nRnVuY3Rpb25zID0gcHJvZ3JhbS5mdW5jdGlvbnMuZ2V0KCJvcGVyYXRv
ci5sZW5ndGgiKTsKLSAgICAgICAgaWYgKHBvc3NpYmxlRXhpc3RpbmdGdW5jdGlvbnMpIHsKLSAg
ICAgICAgICAgIC8vIElnbm9yZSB1c2VyLWRlZmluZWQgZnVuY3Rpb25zLCBvbmx5IGluY2x1ZGUg
dGhvc2UgaW50cm9kdWNlZCBiZWxvdy4KLSAgICAgICAgICAgIHBvc3NpYmxlRXhpc3RpbmdGdW5j
dGlvbnMgPSBwb3NzaWJsZUV4aXN0aW5nRnVuY3Rpb25zLmZpbHRlcih0ID0+IHQgaW5zdGFuY2Vv
ZiBOYXRpdmVGdW5jKTsKLSAgICAgICAgICAgIGNvbnN0IG92ZXJsb2FkcyA9IHJlc29sdmVPdmVy
bG9hZEltcGwocG9zc2libGVFeGlzdGluZ0Z1bmN0aW9ucywgWyBwYXJhbVR5cGUgXSwgdWludCk7
Ci0gICAgICAgICAgICBpZiAob3ZlcmxvYWRzLmZ1bmMpCi0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5j
KAotICAgICAgICAgICAgYXJyYXlUeXBlLm9yaWdpbiwgIm9wZXJhdG9yLmxlbmd0aCIsIHVpbnQs
Ci0gICAgICAgICAgICBbIG5ldyBGdW5jUGFyYW1ldGVyKGFycmF5VHlwZS5vcmlnaW4sIG51bGws
IHBhcmFtVHlwZSkgXSwKLSAgICAgICAgICAgIGZhbHNlKTsKLSAgICAgICAgbmF0aXZlRnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbYXJyYXldKSA9PiBFUHRyLmJveChhcnJheVR5cGUubnVtRWxlbWVu
dHNWYWx1ZSk7Ci0gICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwotCi0gICAgfQotfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUNvcHlD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3lu
dGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMzllYWVmMWQ0Ni4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIHN5bnRoZXNpemVDb3B5Q29uc3Ry
dWN0b3JPcGVyYXRvcihwcm9ncmFtKQotewotICAgIGNvbnN0IHR5cGVzID0gbmV3IFNldCgpOwot
Ci0gICAgY2xhc3MgRmluZEFsbFR5cGVzIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgIHZpc2l0
TmF0aXZlVHlwZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB0eXBlcy5hZGQobm9kZSk7
Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgdHlwZXMuYWRkKG5vZGUpOwotICAgICAgICAgICAgc3VwZXIudmlzaXRTdHJ1
Y3RUeXBlKG5vZGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRFbGVtZW50YWxUeXBlKG5v
ZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHR5cGVzLmFkZChub2RlKTsKLSAgICAgICAgICAg
IHN1cGVyLnZpc2l0RWxlbWVudGFsVHlwZShub2RlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHByb2dyYW0udmlzaXQobmV3IEZpbmRBbGxUeXBlcygpKTsKLQotICAgIGZvciAobGV0IHR5cGUg
b2YgdHlwZXMpIHsKLSAgICAgICAgbGV0IG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYyh0eXBl
Lm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCBUeXBlUmVmLndyYXAodHlwZSksIFsKLSAgICAgICAg
ICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBUeXBlUmVmLndyYXAodHlw
ZSkpCi0gICAgICAgIF0sIHRydWUpOwotICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9u
ID0gKFthcmddLCBub2RlKSA9PiB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIo
bmV3IEVCdWZmZXIodHlwZS5zaXplKSwgMCk7Ci0gICAgICAgICAgICByZXN1bHQuY29weUZyb20o
YXJnLCB0eXBlLnNpemUpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfTsK
LSAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZURl
ZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1YmM1ZGQ5MzlhZC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIHN5bnRoZXNpemVEZWZhdWx0Q29uc3Ry
dWN0b3JPcGVyYXRvcihwcm9ncmFtKQotewotICAgIGNvbnN0IHR5cGVzID0gbmV3IFNldCgpOwot
Ci0gICAgY2xhc3MgRmluZEFsbFR5cGVzIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgIHZpc2l0
TmF0aXZlVHlwZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB0eXBlcy5hZGQobm9kZSk7
Ci0gICAgICAgIH0KLQotICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgdHlwZXMuYWRkKG5vZGUpOwotICAgICAgICAgICAgc3VwZXIudmlzaXRTdHJ1
Y3RUeXBlKG5vZGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlzaXRFbGVtZW50YWxUeXBlKG5v
ZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHR5cGVzLmFkZChub2RlKTsKLSAgICAgICAgICAg
IHN1cGVyLnZpc2l0RWxlbWVudGFsVHlwZShub2RlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZp
c2l0VmVjdG9yVHlwZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB0eXBlcy5hZGQobm9k
ZSk7Ci0gICAgICAgICAgICBzdXBlci52aXNpdFZlY3RvclR5cGUobm9kZSk7Ci0gICAgICAgIH0K
LQotICAgICAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAg
dHlwZXMuYWRkKG5vZGUpOwotICAgICAgICAgICAgc3VwZXIudmlzaXRNYXRyaXhUeXBlKG5vZGUp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJvZ3JhbS52aXNpdChuZXcgRmluZEFsbFR5cGVz
KCkpOwotCi0gICAgZm9yIChsZXQgdHlwZSBvZiB0eXBlcykgewotICAgICAgICBsZXQgbmF0aXZl
RnVuYyA9IG5ldyBOYXRpdmVGdW5jKHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIFR5cGVS
ZWYud3JhcCh0eXBlKSwgW10sIHRydWUpOwotICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0
aW9uID0gKFtdLCBub2RlKSA9PiB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIo
bmV3IEVCdWZmZXIodHlwZS5zaXplKSwgMCk7Ci0gICAgICAgICAgICBub2RlLnR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUocmVzdWx0LmJ1ZmZlciwgMCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICB9OwotICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKLSAgICB9
Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
RW51bUZ1bmN0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNp
emVFbnVtRnVuY3Rpb25zLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjY2YTE4
YjY3ZC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3lu
dGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotZnVuY3Rpb24gc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSkKLXsKLSAgICBmb3Ig
KGxldCB0eXBlIG9mIHByb2dyYW0udHlwZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCEodHlw
ZSBpbnN0YW5jZW9mIEVudW1UeXBlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAg
IGxldCBuYXRpdmVGdW5jOwotICAgICAgICBsZXQgaXNDYXN0ID0gZmFsc2U7Ci0KLSAgICAgICAg
bmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJv
cGVyYXRvcj09IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sICJib29sIiksCi0gICAgICAgICAg
ICBbCi0gICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGws
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKSwKLSAgICAgICAgICAgICAgICBu
ZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIHR5cGUubmFtZSkpCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgaXNDYXN0KTsKLSAg
ICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PiBFUHRy
LmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgcHJv
Z3JhbS5hZGQobmF0aXZlRnVuYyk7Ci0KLSAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVG
dW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFz
ZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLAotICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1l
dGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1l
KSldLAotICAgICAgICAgICAgaXNDYXN0KTsKLSAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKLSAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVu
Yyk7Ci0KLSAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAg
dHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3
cml0ZXIoKSksCi0gICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51
bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKV0sCi0gICAgICAgICAgICBp
c0Nhc3QpOwotICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IHZhbHVlOwotICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKLQotICAgICAgICBuYXRp
dmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJh
dG9yIGNhc3QiLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSwKLSAgICAgICAg
ICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgdHlwZS5iYXNlVHlwZS52
aXNpdChuZXcgUmV3cml0ZXIoKSkpXSwKLSAgICAgICAgICAgIGlzQ2FzdCk7Ci0gICAgICAgIG5h
dGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7Ci0gICAgICAgIHBy
b2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzdmZmQ3MTgxMS4uMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gc3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29yc0ZvclN0cnVjdFR5cGUocHJvZ3JhbSwgdHlwZSkKLXsKLSAgICBmb3Ig
KGxldCBmaWVsZCBvZiB0eXBlLmZpZWxkcykgewotICAgICAgICBmdW5jdGlvbiBzZXR1cEltcGxl
bWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCBpbXBsZW1lbnRhdGlvbikKLSAgICAgICAgewotICAg
ICAgICAgICAgbmF0aXZlRnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1lbnRh
dGlvbkRhdGEsIHZpc2l0b3IpID0+IHsKLSAgICAgICAgICAgICAgICAvLyBWaXNpdGluZyB0aGUg
dHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHN0cnVjdCBsYXlvdXQgYnVpbGRlciBmaWd1cmVz
IG91dCB0aGUgZmllbGQncwotICAgICAgICAgICAgICAgIC8vIG9mZnNldC4KLSAgICAgICAgICAg
ICAgICBpbXBsZW1lbnRhdGlvbkRhdGEudHlwZS52aXNpdCh2aXNpdG9yKTsKLSAgICAgICAgICAg
IH07Ci0KLSAgICAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoYXJndW1lbnRM
aXN0LCBub2RlKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGltcGxlbWVudGF0aW9uKGFy
Z3VtZW50TGlzdCwgZmllbGQub2Zmc2V0LCB0eXBlLnNpemUsIGZpZWxkLnR5cGUuc2l6ZSk7Ci0g
ICAgICAgICAgICB9OwotCi0gICAgICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uRGF0
YSA9IHsKLSAgICAgICAgICAgICAgICBzdHJ1Y3RUeXBlOiB0eXBlLAotICAgICAgICAgICAgICAg
IG5hbWU6IGZpZWxkLm5hbWUsCi0gICAgICAgICAgICAgICAgdHlwZTogZmllbGQudHlwZSwKLSAg
ICAgICAgICAgICAgICBvZmZzZXQ6IGZpZWxkLm9mZnNldCwKLSAgICAgICAgICAgICAgICBzaXpl
OiBmaWVsZC50eXBlLnNpemUKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0KLQotICAgICAgICBs
ZXQgaXNDYXN0ID0gZmFsc2U7Ci0gICAgICAgIGxldCBuYXRpdmVGdW5jOwotCi0gICAgICAgIC8v
IFRoZSBnZXR0ZXI6IG9wZXJhdG9yLmZpZWxkCi0gICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0
aXZlRnVuYygKLSAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5u
YW1lLCBmaWVsZC50eXBlLAotICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9y
aWdpbiwgbnVsbCwgVHlwZVJlZi53cmFwKHR5cGUpKV0sIGlzQ2FzdCk7Ci0gICAgICAgIHNldHVw
SW1wbGVtZW50YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIChbYmFzZV0sIG9mZnNldCwgc3RydWN0U2l6
ZSwgZmllbGRTaXplKSA9PiB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3
IEVCdWZmZXIoZmllbGRTaXplKSwgMCk7Ci0gICAgICAgICAgICByZXN1bHQuY29weUZyb20oYmFz
ZS5wbHVzKG9mZnNldCksIGZpZWxkU2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9KTsKLSAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7Ci0KLSAgICAgICAg
Ly8gVGhlIHNldHRlcjogb3BlcmF0b3IuZmllbGQ9Ci0gICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcg
TmF0aXZlRnVuYygKLSAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVs
ZC5uYW1lICsgIj0iLCBUeXBlUmVmLndyYXAodHlwZSksCi0gICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2luLCBudWxsLCBUeXBlUmVmLndy
YXAodHlwZSkpLAotICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdp
biwgbnVsbCwgZmllbGQudHlwZSkKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBpc0Nhc3Qp
OwotICAgICAgICBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCAoW2Jhc2UsIHZh
bHVlXSwgb2Zmc2V0LCBzdHJ1Y3RTaXplLCBmaWVsZFNpemUpID0+IHsKLSAgICAgICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihzdHJ1Y3RTaXplKSwgMCk7Ci0gICAgICAg
ICAgICByZXN1bHQuY29weUZyb20oYmFzZSwgc3RydWN0U2l6ZSk7Ci0gICAgICAgICAgICByZXN1
bHQucGx1cyhvZmZzZXQpLmNvcHlGcm9tKHZhbHVlLCBmaWVsZFNpemUpOwotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfSk7Ci0gICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1
bmMpOwotCi0gICAgICAgIC8vIFRoZSBhbmRlcjogb3BlcmF0b3ImLmZpZWxkCi0gICAgICAgIGZ1
bmN0aW9uIHNldHVwQW5kZXIoYWRkcmVzc1NwYWNlKQotICAgICAgICB7Ci0gICAgICAgICAgICBu
YXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICAgICAgZmllbGQub3JpZ2lu
LCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBuZXcgUHRyVHlwZShmaWVsZC5vcmlnaW4sIGFk
ZHJlc3NTcGFjZSwgZmllbGQudHlwZSksCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAg
ICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxk
Lm9yaWdpbiwgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQdHJUeXBlKGZpZWxk
Lm9yaWdpbiwgYWRkcmVzc1NwYWNlLCBUeXBlUmVmLndyYXAodHlwZSkpKQotICAgICAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAgICAgaXNDYXN0KTsKLSAgICAgICAgICAgIHNldHVwSW1wbGVt
ZW50YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIChbYmFzZV0sIG9mZnNldCwgc3RydWN0U2l6ZSwgZmll
bGRTaXplKSA9PiB7Ci0gICAgICAgICAgICAgICAgYmFzZSA9IGJhc2UubG9hZFZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFiYXNlKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcihmaWVsZC5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIp
OwotICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChiYXNlLnBsdXMob2Zmc2V0KSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgc2V0dXBBbmRlcigidGhyZWFkIik7Ci0gICAgICAgIHNldHVwQW5k
ZXIoInRocmVhZGdyb3VwIik7Ci0gICAgICAgIHNldHVwQW5kZXIoImRldmljZSIpOwotICAgICAg
ICBzZXR1cEFuZGVyKCJjb25zdGFudCIpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gc3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQotewotICAgIGZvciAobGV0IHR5cGUgb2YgcHJvZ3Jh
bS50eXBlcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAoISh0eXBlIGluc3RhbmNlb2YgU3RydWN0
VHlwZSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBzeW50aGVzaXplU3RydWN0
QWNjZXNzb3JzRm9yU3RydWN0VHlwZShwcm9ncmFtLCB0eXBlKTsKLSAgICB9Ci19CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlcm5hcnlFeHByZXNzaW9uLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjI4MDU1YmE5Yy4uMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVybmFyeUV4cHJlc3Npb24uanMKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFRlcm5hcnlFeHByZXNzaW9uIGV4
dGVuZHMgRXhwcmVzc2lvbiB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBwcmVkaWNhdGUsIGJv
ZHlFeHByZXNzaW9uLCBlbHNlRXhwcmVzc2lvbikKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdp
bik7Ci0gICAgICAgIHRoaXMuX3ByZWRpY2F0ZSA9IHByZWRpY2F0ZTsKLSAgICAgICAgdGhpcy5f
Ym9keUV4cHJlc3Npb24gPSBib2R5RXhwcmVzc2lvbjsKLSAgICAgICAgdGhpcy5fZWxzZUV4cHJl
c3Npb24gPSBlbHNlRXhwcmVzc2lvbjsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHByZWRpY2F0ZSgp
IHsgcmV0dXJuIHRoaXMuX3ByZWRpY2F0ZTsgfQotICAgIGdldCBib2R5RXhwcmVzc2lvbigpIHsg
cmV0dXJuIHRoaXMuX2JvZHlFeHByZXNzaW9uOyB9Ci0gICAgZ2V0IGVsc2VFeHByZXNzaW9uKCkg
eyByZXR1cm4gdGhpcy5fZWxzZUV4cHJlc3Npb247IH0KLSAgICAKLSAgICAvLyBMaWtlIGluIEMs
IGl0IGlzIG5vdCBuZXZlciBwb3NzaWJsZSB0byB1c2UgYSB0ZXJuYXJ5IGV4cHJlc3Npb24gYXMg
YW4gbFZhbHVlLgotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICIoIiAr
IHRoaXMucHJlZGljYXRlICsgIikgPyAoIiArIHRoaXMuYm9keUV4cHJlc3Npb24gKyAiKSA6ICgi
ICsgdGhpcy5lbHNlRXhwcmVzc2lvbiArICIpIjsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMDMx
NTJlOGQ2Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTx0aXRsZT5XSExTTCBUZXN0PC90aXRsZT4KLTxzY3JpcHQgc3JjPSJOb2RlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZWZlcmVu
Y2VUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJWYWx1ZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmV3cml0
ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlZpc2l0b3IuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNyZWF0
ZUxpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm9wZXJ0eUFjY2Vzc0V4
cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IlNlbWFudGljLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQWxsb2NhdGVBdEVudHJ5
UG9pbnRzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJBbm9ueW1vdXNWYXJpYWJsZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQXJyYXlSZWZUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJBcnJheVR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkFzc2lnbm1lbnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkF1dG9XcmFwcGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJCdWlsdEluU2VtYW50aWMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5N
YXRyaXhHZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0
ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJD
YWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ2hlY2tM
aXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkNoZWNrTmF0aXZlRnVuY1N0YWdlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iQ2hlY2tSZWN1cnNpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IkNoZWNrUmVjdXJzaXZlVHlwZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNoZWNrUmV0
dXJucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ2hlY2tUeXBlc1dpdGhBcmd1bWVudHMu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNoZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJDaGVja1dyYXBwZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IkNoZWNrZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNv
bnRpbnVlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4
cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJEb3RFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkVB
cnJheVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRUJ1ZmZlci5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iRUJ1ZmZlckJ1aWxkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IkVQdHIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkVudW1MaXRlcmFsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJFbnVtTWVtYmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJF
bnVtVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRXZhbHVhdGlvbkNvbW1vbi5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRXZhbHVhdG9yLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJFeHByZXNzaW9uRmluZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJFeHRlcm5h
bE9yaWdpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
RmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRm9sZENvbnN0ZXhwcnMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmMu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNBdHRyaWJ1dGUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNOdW1U
aHJlYWRzQXR0cmlidXRlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jUGFyYW1ldGVy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iSWRlbnRpdHlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJZlN0
YXRlbWVudC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW5kZXhFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbmxpbmVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW50cmlu
c2ljcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTGF5b3V0QnVmZmVycy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkxleGVy
VG9rZW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkxpdGVyYWxUeXBlQ2hlY2tlci5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTG9naWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkxvZ2ljYWxOb3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ikxvb3BD
aGVja2VyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iTWF0cml4VHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
TmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hbWVGaW5kZXIuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJv
cGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJPcGVyYXRvckFuZGVySW5kZXhlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3Bl
cmF0b3JBcnJheVJlZkxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3JpZ2luS2lu
ZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUGFyc2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlByZXBhcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZWFkTW9k
aWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZWN1cnNpb25D
aGVja2VyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZWN1cnNpdmVUeXBlQ2hlY2tlci5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVzb2x2ZU5hbWVzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJSZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJSZXNvbHZlUHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVzb2x2ZVR5
cGVEZWZzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZXNvdXJjZVNlbWFudGljLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlv
bi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJTdGFnZUluT3V0U2VtYW50aWMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xv
bmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTdHJ1Y3RUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJTd2l0Y2hDYXNlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTd2l0Y2hTdGF0ZW1l
bnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVu
Z3RoLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9y
T3BlcmF0b3IuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHJhcFN0
YXRlbWVudC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlT3ZlcmxvYWRSZXNvbHV0
aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVW5pZmljYXRp
b25Db250ZXh0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJVbnJlYWNoYWJsZUNvZGVDaGVj
a2VyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJWYXJpYWJsZURlY2wuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJW
ZWN0b3JUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJWaXNpdGluZ1NldC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iV0xleGljYWxFcnJvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iV1N5bnRheEVycm9yLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJXVHJhcEVycm9y
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJXVHlwZUVycm9yLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJXaGlsZUxvb3AuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IldyYXBDaGVj
a2VyLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9IlRlc3QuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotZnVuY3Rpb24gZG9UZXN0SW5Ccm93c2VyKCkKLXsKLSAgICB2YXIgdGVzdGVyID0g
ZG9UZXN0KC8uKi8pOwotICAgIHZhciBsYXN0VGltZTsKLSAgICBmdW5jdGlvbiBuZXh0KCkKLSAg
ICB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBpZiAodGVzdGVyLm5leHQoKS5kb25lKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAg
ICAgcHJpbnQoIkVSUk9SOiAiICsgKGUucGF5bG9hZCA/IGUucGF5bG9hZCA6IGUubWVzc2FnZSkp
OwotICAgICAgICAgICAgcHJpbnQoZS5zdGFjayk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICAgICAgd2luZG93LnNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgfQotICAgIG5l
eHQoKTsKLX0KLTwvc2NyaXB0PgotCi08c3R5bGU+Ci0gICAgcHJlIHsKLSAgICAgICAgbWFyZ2lu
OjA7Ci0gICAgfQotPC9zdHlsZT4KLQotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3RJbkJy
b3dzZXIoKSI+Ci08ZGl2IGlkPSJtZXNzYWdlcyI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDc3YjEzN2I1YzYuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ODc3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQot
aWYgKHRoaXMud2luZG93KSB7Ci0gICAgdGhpcy5wcmludCA9ICh0ZXh0KSA9PiB7Ci0gICAgICAg
IHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0gICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJtZXNzYWdlcyIpLmFwcGVuZENoaWxkKHNwYW4pOwotICAgICAg
ICBzcGFuLmlubmVyVGV4dCA9IHRleHQ7Ci0gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLGRvY3Vt
ZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KTsKLSAgICB9OwotICAgIHRoaXMucHJlY2lzZVRpbWUgPSAo
KSA9PiBwZXJmb3JtYW5jZS5ub3coKSAvIDEwMDA7Ci19IGVsc2UKLSAgICBsb2FkKCJBbGwuanMi
KTsKLQotZnVuY3Rpb24gZG9QcmVwKGNvZGUpCi17Ci0gICAgcmV0dXJuIHByZXBhcmUoIi9pbnRl
cm5hbC90ZXN0IiwgMCwgY29kZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvTGV4KGNvZGUpCi17Ci0gICAg
bGV0IGxleGVyID0gbmV3IExleGVyKCIvaW50ZXJuYWwvdGVzdCIsICJuYXRpdmUiLCAwLCBjb2Rl
KTsKLSAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgZm9yICg7OykgewotICAgICAgICBsZXQgbmV4
dCA9IGxleGVyLm5leHQoKTsKLSAgICAgICAgaWYgKCFuZXh0KQotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LnB1c2gobmV4dCk7Ci0gICAgfQotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VJbnQocHJvZ3JhbSwgdmFsdWUpCi17Ci0gICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5pbnQsIGNhc3RBbmRDaGVja1Zh
bHVlKGNhc3RUb0ludCwgdmFsdWUpKTsKLX0KLQotZnVuY3Rpb24gbWFrZVVpbnQocHJvZ3JhbSwg
dmFsdWUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy51
aW50LCBjYXN0QW5kQ2hlY2tWYWx1ZShjYXN0VG9VaW50LCB2YWx1ZSkpOwotfQotCi1mdW5jdGlv
biBtYWtlVWNoYXIocHJvZ3JhbSwgdmFsdWUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljcy51Y2hhciwgY2FzdEFuZENoZWNrVmFsdWUoY2FzdFRvVWNoYXIs
IHZhbHVlKSk7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VCb29sKHByb2dyYW0sIHZhbHVlKQotewotICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3MuYm9vbCwgY2FzdEFuZENo
ZWNrVmFsdWUoY2FzdFRvQm9vbCwgdmFsdWUpKTsKLX0KLQotZnVuY3Rpb24gbWFrZUZsb2F0KHBy
b2dyYW0sIHZhbHVlKQotewotICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3MuZmxvYXQsIGNhc3RBbmRDaGVja1ZhbHVlKGNhc3RUb0Zsb2F0LCB2YWx1ZSkpOwotfQot
Ci1mdW5jdGlvbiBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgdmFsdWUpCi17Ci0gICAgcmV0dXJu
IFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5mbG9hdCwgY2FzdFRvRmxvYXQodmFs
dWUpKTsKLX0KLQotZnVuY3Rpb24gbWFrZUhhbGYocHJvZ3JhbSwgdmFsdWUpCi17Ci0gICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5oYWxmLCBjYXN0QW5kQ2hlY2tW
YWx1ZShjYXN0VG9IYWxmLCB2YWx1ZSkpOwotfQotCi1mdW5jdGlvbiBtYWtlRW51bShwcm9ncmFt
LCBlbnVtTmFtZSwgdmFsdWUpCi17Ci0gICAgbGV0IGVudW1UeXBlID0gcHJvZ3JhbS50eXBlcy5n
ZXQoZW51bU5hbWUpOwotICAgIGlmICghZW51bVR5cGUpCi0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiTm8gdHlwZSBuYW1lZCAiICsgZW51bU5hbWUpOwotICAgIGxldCBlbnVtTWVtYmVyID0gZW51
bVR5cGUubWVtYmVyQnlOYW1lKHZhbHVlKTsKLSAgICBpZiAoIWVudW1NZW1iZXIpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiTm8gbWVtYmVyIG5hbWVkICIgKyBlbnVtTWVtYmVyICsgIiBpbiAi
ICsgZW51bVR5cGUpOwotICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVtVHlwZSwgZW51bU1l
bWJlci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwotfQotCi1mdW5jdGlv
biBtYWtlU2FtcGxlcihwcm9ncmFtLCBvcHRpb25zKQotewotICAgIC8vIGVudW0gV2ViR1BVQWRk
cmVzc01vZGUgewotICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAotICAgIC8vICAgICAicmVwZWF0
IiwKLSAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCi0gICAgLy8gICAgICJjbGFtcFRvQm9yZGVy
Q29sb3IiCi0gICAgLy8gfQotICAgIC8vCi0gICAgLy8gZW51bSBXZWJHUFVGaWx0ZXJNb2RlIHsK
LSAgICAvLyAgICAgIm5lYXJlc3QiLAotICAgIC8vICAgICAibGluZWFyIgotICAgIC8vIH0KLSAg
ICAvLwotICAgIC8vIGVudW0gV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIHsKLSAgICAvLyAgICAgIm5l
dmVyIiwKLSAgICAvLyAgICAgImxlc3MiLAotICAgIC8vICAgICAiZXF1YWwiLAotICAgIC8vICAg
ICAibGVzc0VxdWFsIiwKLSAgICAvLyAgICAgImdyZWF0ZXIiLAotICAgIC8vICAgICAibm90RXF1
YWwiLAotICAgIC8vICAgICAiZ3JlYXRlckVxdWFsIiwKLSAgICAvLyAgICAgImFsd2F5cyIKLSAg
ICAvLyB9Ci0gICAgLy8KLSAgICAvLyBlbnVtIFdlYkdQVUJvcmRlckNvbG9yIHsKLSAgICAvLyAg
ICAgInRyYW5zcGFyZW50QmxhY2siLAotICAgIC8vICAgICAib3BhcXVlQmxhY2siLAotICAgIC8v
ICAgICAib3BhcXVlV2hpdGUiCi0gICAgLy8gfQotICAgIC8vCi0gICAgLy8gZGljdGlvbmFyeSBX
ZWJHUFVTYW1wbGVyRGVzY3JpcHRvciB7Ci0gICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgckFk
ZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKLSAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSBz
QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOwotICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2Rl
IHRBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7Ci0gICAgLy8gICAgIFdlYkdQVUZpbHRlck1v
ZGVFbnVtIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKLSAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9k
ZUVudW0gbWluRmlsdGVyID0gIm5lYXJlc3QiOwotICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2Rl
RW51bSBtaXBtYXBGaWx0ZXIgPSAibmVhcmVzdCI7Ci0gICAgLy8gICAgIGZsb2F0IGxvZE1pbkNs
YW1wID0gMDsKLSAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVF
OwotICAgIC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxOwotICAgIC8vICAg
ICBXZWJHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKLSAgICAv
LyAgICAgV2ViR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7
Ci0gICAgLy8gfTsKLSAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
LnNhbXBsZXIsIG5ldyBTYW1wbGVyKG9wdGlvbnMpKTsKLX0KLQotZnVuY3Rpb24gbWFrZTFEVGV4
dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKLXsKLSAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0s
IG5ldyBUZXh0dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKLX0KLQotZnVuY3Rpb24gbWFr
ZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKLXsKLSAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURBcnJheTwke2Vs
ZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOwot
fQotCi1mdW5jdGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBl
KQotewotICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlwZSwgbWlwbWFw
cykpOwotfQotCi1mdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVs
ZW1lbnRUeXBlKQotewotICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXko
ZWxlbWVudFR5cGUsIGFycmF5KSk7Ci19Ci0KLWZ1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3Jh
bSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTNEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VUZXh0dXJlQ3Vi
ZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUu
Ym94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlwZX0+YF0sIG5l
dyBUZXh0dXJlQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKLX0KLQotZnVuY3Rpb24gbWFrZVJX
MURUZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKLXsKLSAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxRDwke2VsZW1lbnRU
eXBlfT5gXSwgbmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBlbGVtZW50cykpOwotfQotCi1m
dW5jdGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUp
Ci17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0
dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5UlcoZWxlbWVu
dFR5cGUsIGFycmF5KSk7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCBy
b3dzLCBlbGVtZW50VHlwZSkKLXsKLSAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5p
bnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRFJX
KGVsZW1lbnRUeXBlLCByb3dzKSk7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZUFycmF5
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKLXsKLSAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBd
LCBuZXcgVGV4dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKLX0KLQotZnVuY3Rp
b24gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2VzLCBlbGVtZW50VHlwZSkKLXsK
LSAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUz
RDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVsZW1lbnRUeXBlLCBkZXB0aFNs
aWNlcykpOwotfQotCi1mdW5jdGlvbiBtYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZURlcHRoMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVw
dGgyRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOwotfQotCi1mdW5jdGlvbiBtYWtlMkREZXB0aFRl
eHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCi17Ci0gICAgcmV0dXJuIFR5
cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoMkRBcnJheTwke2Vs
ZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5
KSk7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VEZXB0aFRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBl
bGVtZW50VHlwZSkKLXsKLSAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5z
aWNzW2BUZXh0dXJlRGVwdGhDdWJlPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRo
Q3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKLX0KLQotZnVuY3Rpb24gbWFrZVJXMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlRGVwdGgyRDwke2VsZW1lbnRUeXBl
fT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKLX0KLQotZnVu
Y3Rpb24gbWFrZVJXMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5
cGUpCi17Ci0gICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldU
ZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRB
cnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOwotfQotCi1mdW5jdGlvbiBjaGVja0ludChwcm9n
cmFtLCByZXN1bHQsIGV4cGVjdGVkKQotewotICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHBy
b2dyYW0uaW50cmluc2ljcy5pbnQpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJl
c3VsdCB0eXBlOyByZXN1bHQ6ICIgKyByZXN1bHQpOwotICAgIGlmIChyZXN1bHQudmFsdWUgIT0g
ZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihgV3JvbmcgcmVzdWx0OiAke3Jlc3Vs
dC52YWx1ZX0gKGV4cGVjdGVkICR7ZXhwZWN0ZWR9KWApOwotfQotCi1mdW5jdGlvbiBjaGVja0Vu
dW0ocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKLXsKLSAgICBpZiAoIShyZXN1bHQudHlwZS51
bmlmeU5vZGUgaW5zdGFuY2VvZiBFbnVtVHlwZSkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigi
V3JvbmcgcmVzdWx0IHR5cGU7IHJlc3VsdDogIiArIHJlc3VsdCk7Ci0gICAgaWYgKHJlc3VsdC52
YWx1ZSAhPSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQ6
ICIgKyByZXN1bHQudmFsdWUgKyAiIChleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiKSIpOwotfQot
Ci1mdW5jdGlvbiBjaGVja1VpbnQocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKLXsKLSAgICBp
ZiAoIXJlc3VsdC50eXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MudWludCkpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQudHlwZSk7Ci0g
ICAgaWYgKHJlc3VsdC52YWx1ZSAhPSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJXcm9uZyByZXN1bHQ6ICIgKyByZXN1bHQudmFsdWUgKyAiIChleHBlY3RlZCAiICsgZXhwZWN0
ZWQgKyAiKSIpOwotfQotCi1mdW5jdGlvbiBjaGVja1VjaGFyKHByb2dyYW0sIHJlc3VsdCwgZXhw
ZWN0ZWQpCi17Ci0gICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNz
LnVjaGFyKSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgdHlwZTogIiAr
IHJlc3VsdC50eXBlKTsKLSAgICBpZiAocmVzdWx0LnZhbHVlICE9IGV4cGVjdGVkKQotICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdDogIiArIHJlc3VsdC52YWx1ZSArICIgKGV4
cGVjdGVkICIgKyBleHBlY3RlZCArICIpIik7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrQm9vbChwcm9n
cmFtLCByZXN1bHQsIGV4cGVjdGVkKQotewotICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHBy
b2dyYW0uaW50cmluc2ljcy5ib29sKSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBy
ZXN1bHQgdHlwZTogIiArIHJlc3VsdC50eXBlKTsKLSAgICBpZiAocmVzdWx0LnZhbHVlICE9IGV4
cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdDogIiArIHJlc3Vs
dC52YWx1ZSArICIgKGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIpIik7Ci19Ci0KLWZ1bmN0aW9u
IGNoZWNrRmxvYXQocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKLXsKLSAgICBpZiAoIXJlc3Vs
dC50eXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuZmxvYXQpKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwotICAgIGlmIChy
ZXN1bHQudmFsdWUgIT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3Jvbmcg
cmVzdWx0OiAiICsgcmVzdWx0LnZhbHVlICsgIiAoZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiki
KTsKLX0KLQotZnVuY3Rpb24gY2hlY2tIYWxmKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCi17
Ci0gICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmhhbGYpKQot
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5
cGUpOwotICAgIGlmIChyZXN1bHQudmFsdWUgIT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5l
dyBFcnJvcigiV3JvbmcgcmVzdWx0OiAiICsgcmVzdWx0LnZhbHVlICsgIiAoZXhwZWN0ZWQgIiAr
IGV4cGVjdGVkICsgIikiKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tGbG9hdDQocHJvZ3JhbSwgcmVz
dWx0LCBleHBlY3RlZCkKLXsKLSAgICBpZiAoIXJlc3VsdC50eXBlLmVxdWFscyhwcm9ncmFtLmlu
dHJpbnNpY3NbInZlY3RvcjxmbG9hdCwgND4iXSkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigi
V3JvbmcgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQudHlwZSk7Ci0gICAgaWYgKHJlc3VsdC5lUHRy
LmdldCgwKSAhPSBleHBlY3RlZFswXSB8fCByZXN1bHQuZVB0ci5nZXQoMSkgIT0gZXhwZWN0ZWRb
MV0gfHwgcmVzdWx0LmVQdHIuZ2V0KDIpICE9IGV4cGVjdGVkWzJdIHx8IHJlc3VsdC5lUHRyLmdl
dCgzKSAhPSBleHBlY3RlZFszXSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1
bHQ6IFsiICsgcmVzdWx0LmVQdHIuZ2V0KDApICsgIiwgIiArIHJlc3VsdC5lUHRyLmdldCgxKSAr
ICIsICIgKyByZXN1bHQuZVB0ci5nZXQoMikgKyAiLCAiICsgcmVzdWx0LmVQdHIuZ2V0KDMpICsg
Il0gKGV4cGVjdGVkIFsiICsgZXhwZWN0ZWRbMF0gKyAiLCAiICsgZXhwZWN0ZWRbMV0gKyAiLCAi
ICsgZXhwZWN0ZWRbMl0gKyAiLCAiICsgZXhwZWN0ZWRbM10gKyAiXSkiKTsKLX0KLQotZnVuY3Rp
b24gY2hlY2tMZXhlclRva2VuKHJlc3VsdCwgZXhwZWN0ZWRJbmRleCwgZXhwZWN0ZWRLaW5kLCBl
eHBlY3RlZFRleHQpCi17Ci0gICAgaWYgKHJlc3VsdC5faW5kZXggIT0gZXhwZWN0ZWRJbmRleCkK
LSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBsZXhlciBpbmRleDsgcmVzdWx0OiAiICsg
cmVzdWx0Ll9pbmRleCArICIgKGV4cGVjdGVkICIgKyBleHBlY3RlZEluZGV4ICsgIikiKTsKLSAg
ICBpZiAocmVzdWx0Ll9raW5kICE9IGV4cGVjdGVkS2luZCkKLSAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJXcm9uZyBsZXhlciBraW5kOyByZXN1bHQ6ICIgKyByZXN1bHQuX2tpbmQgKyAiIChleHBl
Y3RlZCAiICsgZXhwZWN0ZWRLaW5kICsgIikiKTsKLSAgICBpZiAocmVzdWx0Ll90ZXh0ICE9IGV4
cGVjdGVkVGV4dCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBsZXhlciB0ZXh0OyBy
ZXN1bHQ6ICIgKyByZXN1bHQuX3RleHQgKyAiIChleHBlY3RlZCAiICsgZXhwZWN0ZWRUZXh0ICsg
IikiKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tGYWlsKGNhbGxiYWNrLCBwcmVkaWNhdGUpCi17Ci0g
ICAgdHJ5IHsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJE
aWQgbm90IHRocm93IGV4Y2VwdGlvbiIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgaWYg
KHByZWRpY2F0ZShlKSkgewotICAgICAgICAgICAgcHJpbnQoIiAgICBDYXVnaHQ6ICIgKyBlKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aHJvdyBlOwotICAgIH0K
LX0KLQotZnVuY3Rpb24gY2hlY2tUcmFwKHByb2dyYW0sIGNhbGxiYWNrLCBjaGVja0Z1bmN0aW9u
KQotewotICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKCk7Ci0gICAgLy8gRklYTUU6IFJld3Jp
dGUgdGVzdHMgc28gdGhhdCB0aGV5IHJldHVybiBub24temVybyB2YWx1ZXMgaW4gdGhlIGNhc2Ug
dGhhdCB0aGV5IGRpZG4ndCB0cmFwLgotICAgIC8vIFRoZSBjaGVjayBmdW5jdGlvbiBpcyBvcHRp
b25hbCBpbiB0aGUgY2FzZSBvZiBhIHZvaWQgcmV0dXJuIHR5cGUuCi0gICAgY2hlY2tGdW5jdGlv
bihwcm9ncmFtLCByZXN1bHQsIDApOwotICAgIGlmICghRXZhbHVhdG9yLmxhc3RJbnZvY2F0aW9u
RGlkVHJhcCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEaWQgbm90IHRyYXAiKTsKLX0KLQot
bGV0IHRlc3RzOwotbGV0IG9rVG9UZXN0ID0gZmFsc2U7Ci0KLXRlc3RzID0gbmV3IFByb3h5KHt9
LCB7Ci0gICAgc2V0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlLCByZWNlaXZlcikKLSAgICB7Ci0g
ICAgICAgIGlmIChwcm9wZXJ0eSBpbiB0YXJnZXQpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlRyeWluZyB0byBkZWNsYXJlIGR1cGxpY2F0ZSB0ZXN0OiAiICsgcHJvcGVydHkpOwotICAg
ICAgICB0YXJnZXRbcHJvcGVydHldID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLX0pOwotCi10ZXN0cy50ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0aW9uKCkgewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4geCA8IDMgPyA0IDogNTsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IGludCBiYXIoaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4IDwg
MTAgPyAxMSA6IHggPCAxMiA/IDE0IDogMTU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQg
YmF6KGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMyA8IDQgPyB4IDogNTsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCA1KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDIpXSksIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgMTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21h
a2VJbnQocHJvZ3JhbSwgMTApXSksIDE0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCAxNCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludChw
cm9ncmFtLCAxMildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgMTMpXSksIDE1KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0s
IDE0KV0pLCAxNCk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAg
ICAgICAgICAgaW50IGZvbygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHg7
Ci0gICAgICAgICAgICAgICAgKDQgPCA1ID8geCA6IDcpID0gODsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbygp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICAgICAg
aW50IHk7Ci0gICAgICAgICAgICAgICAgKDAgPCAxID8geCA6IHkpID0gNDI7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIm5vdCBhbiBM
VmFsdWUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgaW50IGZvbygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50
IHg7Ci0gICAgICAgICAgICAgICAgaW50IHk7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCog
eiA9ICYoMCA8IDEgPyB4IDogeSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICp6OwotICAgICAg
ICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVy
cm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJub3QgYW4gTFZhbHVlIikgIT0gLTEpOwotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBmb28oKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgICAgIGlu
dCB5OwotICAgICAgICAgICAgICAgIHRocmVhZCBpbnRbXSB6ID0gQCgwIDwgMSA/IHggOiB5KTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gKno7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAot
ICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4
T2YoIm5vdCBhbiBMVmFsdWUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbygpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICAgICAgZmxvYXQgeTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gNCA8IDUgPyB4IDogeTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAg
ICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbygpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDQgPCA1ID8gNiA6IDcuMDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19
Ci0KLXRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoInRlc3QgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9Iik7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKLX0KLQot
dGVzdHMuaWRlbnRpdHlCb29sID0gZnVuY3Rpb24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoInRlc3QgYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiB4OyB9Iik7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotfQotCi10
ZXN0cy5pbnRTaW1wbGVNYXRoID0gZnVuY3Rpb24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoInRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMik7Ci0gICAgcHJvZ3JhbSA9IGRv
UHJlcCgidGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSks
IG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgLTIpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoInRlc3Qg
aW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCAtNSldKSwgLTM1KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKCJ0ZXN0IGludCBmb28o
aW50IHgsIGludCB5KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAt
MildKSwgLTMpOwotfQotCi10ZXN0cy5pbmNyZW1lbnRBbmREZWNyZW1lbnQgPSBmdW5jdGlvbigp
IHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgdGVzdCBpbnQgZm9vMSgpIHsgaW50
IHggPSAwOyByZXR1cm4geCsrOyB9Ci0gICAgdGVzdCBpbnQgZm9vMigpIHsgaW50IHggPSAwOyB4
Kys7IHJldHVybiB4OyB9Ci0gICAgdGVzdCBpbnQgZm9vMygpIHsgaW50IHggPSAwOyByZXR1cm4g
Kyt4OyB9Ci0gICAgdGVzdCBpbnQgZm9vNCgpIHsgaW50IHggPSAwOyArK3g7IHJldHVybiB4OyB9
Ci0gICAgdGVzdCBpbnQgZm9vNSgpIHsgaW50IHggPSAwOyByZXR1cm4geC0tOyB9Ci0gICAgdGVz
dCBpbnQgZm9vNigpIHsgaW50IHggPSAwOyB4LS07IHJldHVybiB4OyB9Ci0gICAgdGVzdCBpbnQg
Zm9vNygpIHsgaW50IHggPSAwOyByZXR1cm4gLS14OyB9Ci0gICAgdGVzdCBpbnQgZm9vOCgpIHsg
aW50IHggPSAwOyAtLXg7IHJldHVybiB4OyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW10pLCAwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDEpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgMSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCAxKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSks
IDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtdKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtdKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFtdKSwgLTEpOwotfQotCi10ZXN0cy51aW50U2ltcGxlTWF0aCA9IGZ1bmN0
aW9uKCkgewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ0ZXN0IHVpbnQgZm9vKHVpbnQgeCwg
dWludCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSldKSwgMTIpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoInRlc3QgdWludCBmb28o
dWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBt
YWtlVWludChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIDQyOTQ5NjcyOTQpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoInRlc3QgdWlu
dCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcCgi
dGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDMpOwotfQotCi10ZXN0cy51Y2hh
clNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgidGVz
dCB1Y2hhciBmb28odWNoYXIgeCwgdWNoYXIgeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBj
aGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hh
cihwcm9ncmFtLCA3KSwgbWFrZVVjaGFyKHByb2dyYW0sIDUpXSksIDEyKTsKLSAgICBwcm9ncmFt
ID0gZG9QcmVwKCJ0ZXN0IHVjaGFyIGZvbyh1Y2hhciB4LCB1Y2hhciB5KSB7IHJldHVybiB4IC0g
eTsgfSIpOwotICAgIGNoZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVjaGFyKHByb2dyYW0sIDcpLCBtYWtlVWNoYXIocHJvZ3JhbSwgNSldKSwgMik7
Ci0gICAgY2hlY2tVY2hhcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWNoYXIocHJvZ3JhbSwgNSksIG1ha2VVY2hhcihwcm9ncmFtLCA3KV0pLCAyNTQpOwotICAg
IHByb2dyYW0gPSBkb1ByZXAoInRlc3QgdWNoYXIgZm9vKHVjaGFyIHgsIHVjaGFyIHkpIHsgcmV0
dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tVY2hhcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWNoYXIocHJvZ3JhbSwgNyksIG1ha2VVY2hhcihwcm9ncmFtLCA1
KV0pLCAzNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcCgidGVzdCB1Y2hhciBmb28odWNoYXIgeCwg
dWNoYXIgeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCA3KSwgbWFrZVVj
aGFyKHByb2dyYW0sIDIpXSksIDMpOwotfQotCi10ZXN0cy5lcXVhbGl0eSA9IGZ1bmN0aW9uKCkg
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ0ZXN0IGJvb2wgZm9vKHVpbnQgeCwgdWludCB5
KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIHRydWUpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoInRlc3QgYm9vbCBmb28odWNoYXIgeCwg
dWNoYXIgeSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCA3KSwgbWFrZVVj
aGFyKHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVjaGFyKHByb2dyYW0sIDcpLCBtYWtlVWNoYXIo
cHJvZ3JhbSwgNyldKSwgdHJ1ZSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcCgidGVzdCBib29sIGZv
byhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCA3KV0pLCB0cnVlKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKCJ0ZXN0IGJvb2wgZm9v
KGJvb2wgeCwgYm9vbCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRy
dWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotfQotCi10ZXN0cy5sb2dp
Y2FsTmVnYXRpb24gPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInRl
c3QgYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLX0KLQotdGVzdHMu
bm90RXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgidGVz
dCBib29sIGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKLSAgICBwcm9ncmFtID0gZG9QcmVw
KCJ0ZXN0IGJvb2wgZm9vKHVjaGFyIHgsIHVjaGFyIHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWNoYXIocHJvZ3JhbSwgNyksIG1ha2VVY2hhcihwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVjaGFy
KHByb2dyYW0sIDcpLCBtYWtlVWNoYXIocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIHByb2dy
YW0gPSBkb1ByZXAoInRlc3QgYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ICE9IHk7
IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7Ci0gICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidGVzdCBib29sIGZvbyhib29sIHgsIGJvb2wgeSkgeyByZXR1cm4geCAhPSB5
OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSks
IGZhbHNlKTsKLX0KLQotdGVzdHMuZXF1YWxpdHlUeXBlRmFpbHVyZSA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcCgidGVzdCBib29sIGZvbyhpbnQg
eCwgdWludCB5KSB7IHJldHVybiB4ID09IHk7IH0iKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCIvaW50ZXJuYWwvdGVzdDoxIikg
IT0gLTEpOwotfQotCi10ZXN0cy5nZW5lcmFsTmVnYXRpb24gPSBmdW5jdGlvbigpCi17Ci0gICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAoInRlc3QgYm9vbCBmb28oaW50IHgpIHsgcmV0dXJuICF4OyB9
Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIHRydWUp
OwotfQotCi10ZXN0cy5hZGQxID0gZnVuY3Rpb24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoInRlc3QgaW50IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7IH0iKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDQyKV0pLCA0Myk7Ci19Ci0KLXRlc3RzLm5hbWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcCgiaW50IGZvbyhpbnQg
eCkgeyByZXR1cm4geCArIHk7IH0iKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCIvaW50ZXJuYWwvdGVzdDoxIikgIT0gLTEpOwot
fQotCi10ZXN0cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IHJlc3VsdCA9IHA7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwotfQotCi10ZXN0cy5zaW1w
bGVBc3NpZ25tZW50ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
LSAgICAgICAgdGVzdCBpbnQgZm9vKGludCBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQg
cmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0ID0gcDsKLSAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Ci19Ci0KLXRl
c3RzLnNpbXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQg
cmVzdWx0OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAw
KTsKLX0KLQotdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oZGV2aWNlIGludCogcCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICpwOwotICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwotICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVk
VmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5p
bnRyaW5zaWNzLmludCksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKLX0KLQotdGVzdHMu
ZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cChgCi0gICAgICAgIHRlc3Qgdm9pZCBmb28oZGV2aWNlIGludCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgKnAgPSA1MjsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKLSAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQpLCBuZXcgRVB0cihidWZmZXIsIDAp
KV0pOwotICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDUyKQotICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkV4cGVjdGVkIGJ1ZmZlciB0byBjb250YWluIDUyIGJ1dCBpdCBjb250YWluczogIiArIGJ1
ZmZlci5nZXQoMCkpOwotfQotCi10ZXN0cy5zaW1wbGVNYWtlUHRyID0gZnVuY3Rpb24oKQotewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB0aHJlYWQgaW50KiBmb28o
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgeCA9IDQyOwotICAgICAgICAgICAgcmV0dXJu
ICZ4OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pOwotICAgIGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3Vs
dC50eXBlKTsKLSAgICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFt
LmludHJpbnNpY3MuaW50KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBp
cyBub3QgYSBwb2ludGVyIHRvIGFuIGludDogIiArIHJlc3VsdC50eXBlKTsKLSAgICBpZiAoIShy
ZXN1bHQudmFsdWUgaW5zdGFuY2VvZiBFUHRyKSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJS
ZXR1cm4gdmFsdWUgaXMgbm90IGFuIEVQdHI6ICIgKyByZXN1bHQudmFsdWUpOwotICAgIGxldCB2
YWx1ZSA9IHJlc3VsdC52YWx1ZS5sb2FkVmFsdWUoKTsKLSAgICBpZiAodmFsdWUgIT0gNDIpCi0g
ICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgNDIgYnV0IGdvdDogIiArIHZhbHVlKTsK
LX0KLQotdGVzdHMudGhyZWFkQXJyYXlSZWZMb2FkID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKHRocmVhZCBpbnRbXSBhcnJh
eSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFycmF5WzB1XTsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKLSAgICBidWZmZXIuc2V0
KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
VHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIs
IHByb2dyYW0uaW50cmluc2ljcy5pbnQpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwg
MCksIDEpKV0pOwotICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwotfQotCi10ZXN0
cy50aHJlYWRBcnJheVJlZkxvYWRJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKHRocmVhZCBpbnRbXSBhcnJh
eSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFycmF5WzBdOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwotICAgIGJ1ZmZlci5zZXQo
MCwgODkpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtU
eXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludCksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAw
KSwgMSkpXSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7Ci19Ci0KLXRlc3Rz
LmRldmljZUFycmF5UmVmTG9hZCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhkZXZpY2UgaW50W10gYXJyYXkpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBhcnJheVswdV07Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7Ci0gICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0g
ICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUu
Ym94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50KSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKLX0KLQotdGVzdHMudGhyZWFkQXJy
YXlSZWZTdG9yZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHRlc3Qgdm9pZCBmb28odGhyZWFkIGludFtdIGFycmF5LCBpbnQgdmFsdWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGFycmF5WzB1XSA9IHZhbHVlOwotICAgICAgICB9Ci0gICAgYCk7
Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwotICAgIGJ1ZmZlci5zZXQoMCwgMTUp
OwotICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAotICAgICAgICBuZXcgQXJyYXlS
ZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludCks
Ci0gICAgICAgIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1
KV0pOwotICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQotICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZl
ci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBt
YWtlSW50KHByb2dyYW0sIC0xMTEpXSk7Ci0gICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkK
LSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChl
eHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwotfQotCi10ZXN0cy5kZXZpY2VBcnJh
eVJlZlN0b3JlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCB2b2lkIGZvbyhkZXZpY2UgaW50W10gYXJyYXksIGludCB2YWx1ZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgYXJyYXlbMHVdID0gdmFsdWU7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7Ci0gICAgYnVmZmVyLnNldCgwLCAxNSk7
Ci0gICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCi0gICAgICAgIG5ldyBBcnJheVJl
ZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50KSwK
LSAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUp
XSk7Ci0gICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCi0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVy
LmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1h
a2VJbnQocHJvZ3JhbSwgLTExMSldKTsKLSAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQot
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4
cGVjdGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci19Ci0KLXRlc3RzLmRldmljZUFycmF5
UmVmU3RvcmVJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgdGVzdCB2b2lkIGZvbyhkZXZpY2UgaW50W10gYXJyYXksIGludCB2YWx1
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgYXJyYXlbMF0gPSB2YWx1ZTsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKLSAgICBidWZmZXIuc2V0
KDAsIDE1KTsKLSAgICBsZXQgYXJyYXlSZWYgPSBUeXBlZFZhbHVlLmJveCgKLSAgICAgICAgbmV3
IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2lj
cy5pbnQpLAotICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsK
LSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9n
cmFtLCA2NSldKTsKLSAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIg
KyBidWZmZXIuZ2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJh
eVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwotICAgIGlmIChidWZmZXIuZ2V0KDApICE9
IC0xMTEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1
ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKLX0KLQotdGVzdHMudGhy
ZWFkUG9pbnRlckxvYWQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAotICAgICAgICB0ZXN0IGludCBmb28odGhyZWFkIGludCogcHRyKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gKnB0cjsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBidWZmZXIg
PSBuZXcgRUJ1ZmZlcigxKTsKLSAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0
ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50KSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsK
LX0KLQotdGVzdHMudGhyZWFkUG9pbnRlclN0b3JlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB2b2lkIGZvbyh0aHJlYWQgaW50KiBwdHIs
IGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgKnB0ciA9IHZhbHVlOwotICAgICAg
ICB9Ci0gICAgYCk7Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwotICAgIGJ1ZmZl
ci5zZXQoMCwgODkpOwotICAgIGxldCBwb2ludGVyID0gVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50KSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbcG9p
bnRlciwgbWFrZUludChwcm9ncmFtLCAxMjMpXSk7Ci0gICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0g
MTIzKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZm
ZXIgKGV4cGVjdGVkIDEyMyk6ICIgKyBidWZmZXIuZ2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtwb2ludGVyLCBtYWtlSW50KHByb2dyYW0sIDMyMSldKTsKLSAgICBp
ZiAoYnVmZmVyLmdldCgwKSAhPSAzMjEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZh
bHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgMzIxKTogIiArIGJ1ZmZlci5nZXQoMCkp
OwotfQotCi10ZXN0cy5kZXZpY2VQb2ludGVyTG9hZCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhkZXZpY2UgaW50KiBwdHIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAqcHRyOwotICAgICAgICB9Ci0gICAgYCk7
Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwotICAgIGJ1ZmZlci5zZXQoMCwgODkp
OwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZh
bHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIHJlc3VsdCwgODkpOwotfQotCi10ZXN0cy5kZXZpY2VQb2ludGVyU3RvcmUgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHZvaWQgZm9v
KGRldmljZSBpbnQqIHB0ciwgaW50IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcHRy
ID0gdmFsdWU7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZm
ZXIoMSk7Ci0gICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHBvaW50ZXIgPSBUeXBlZFZh
bHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQpLCBuZXcgRVB0cihidWZmZXIsIDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtwb2ludGVyLCBtYWtlSW50KHByb2dyYW0sIDEyMyldKTsKLSAgICBpZiAo
YnVmZmVyLmdldCgwKSAhPSAxMjMpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVl
IHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgMTIzKTogIiArIGJ1ZmZlci5nZXQoMCkpOwot
ICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW3BvaW50ZXIsIG1ha2VJbnQocHJvZ3Jh
bSwgMzIxKV0pOwotICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDMyMSkKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAzMjEpOiAi
ICsgYnVmZmVyLmdldCgwKSk7Ci19Ci0KLXRlc3RzLmFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHR5cGVkZWYgSW50QXJyYXkgPSBp
bnRbM107Ci0gICAgICAgIHRlc3QgaW50IGZvbyhJbnRBcnJheSBhKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYVswXTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBiYXIoSW50
QXJyYXkgYSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFbMV07Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCBpbnQgYmF6KEludEFycmF5IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBhWzJdOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBF
QnVmZmVyKDMpOwotICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGJ1ZmZlci5zZXQoMSwgOTEp
OwotICAgIGJ1ZmZlci5zZXQoMiwgMTAzKTsKLSAgICBsZXQgYXJyYXkgPSBuZXcgVHlwZWRWYWx1
ZShwcm9ncmFtLnR5cGVzLmdldCgiSW50QXJyYXkiKS50eXBlLCBuZXcgRVB0cihidWZmZXIsIDAp
KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXld
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKLSAgICByZXN1bHQgPSBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFthcnJheV0pOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IHJlc3VsdCwgOTEpOwotICAgIHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6Iiwg
W2FycmF5XSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCAxMDMpOwotfQotCi10ZXN0
cy50eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbygpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDB1OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwK
LSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMudHlw
ZU1pc21hdGNoVmFyaWFibGVEZWNsID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKHVpbnQgeCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgeSA9IHg7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10
ZXN0cy50eXBlTWlzbWF0Y2hBc3NpZ25tZW50ID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKHVpbnQgeCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgeTsKLSAgICAgICAgICAgICAgICB5
ID0geDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLnR5cGVNaXNtYXRjaFJldHVyblBhcmFtID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIGludCBmb28odWludCB4KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHJldHVybiB4OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMuYmFkQWRkID0gZnVuY3Rpb24oKQot
ewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZv
aWQgZm9vKGludCB4LCB1aW50IHkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdWlu
dCB6ID0geCArIHk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIm5hdGl2ZSBpbnQg
b3BlcmF0b3IrKGludCxpbnQpIikgIT0gLTEpOwotfQotCi10ZXN0cy5sZXhlcktleXdvcmQgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHJlc3VsdCA9IGRvTGV4KCJpZGVudCBmb3Igd2hpbGUgMTIz
IDEyM3UgeyB9IHthc2QgYXNkeyAxYTMgMS4yICsgMy40ICsgMS4gKyAuMiAxLjJmIDAuZiAuM2Yg
JiYgfHwiKTsKLSAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSAyNSkKLSAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJMZXhlciBlbWl0dGVkIGFuIGluY29ycmVjdCBudW1iZXIgb2YgdG9rZW5zIChleHBl
Y3RlZCAyMyk6ICIgKyByZXN1bHQubGVuZ3RoKTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0
WzBdLCAgMCwgICJpZGVudGlmaWVyIiwgICAgImlkZW50Iik7Ci0gICAgY2hlY2tMZXhlclRva2Vu
KHJlc3VsdFsxXSwgIDYsICAia2V5d29yZCIsICAgICAgICJmb3IiKTsKLSAgICBjaGVja0xleGVy
VG9rZW4ocmVzdWx0WzJdLCAgMTAsICJrZXl3b3JkIiwgICAgICAgIndoaWxlIik7Ci0gICAgY2hl
Y2tMZXhlclRva2VuKHJlc3VsdFszXSwgIDE2LCAiaW50TGl0ZXJhbCIsICAgICIxMjMiKTsKLSAg
ICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzRdLCAgMjAsICJ1aW50TGl0ZXJhbCIsICAgIjEyM3Ui
KTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzVdLCAgMjUsICJwdW5jdHVhdGlvbiIsICAg
InsiKTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzZdLCAgMjcsICJwdW5jdHVhdGlvbiIs
ICAgIn0iKTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzddLCAgMjksICJwdW5jdHVhdGlv
biIsICAgInsiKTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzhdLCAgMzAsICJpZGVudGlm
aWVyIiwgICAgImFzZCIpOwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbOV0sICAzNCwgImlk
ZW50aWZpZXIiLCAgICAiYXNkIik7Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsxMF0sIDM3
LCAicHVuY3R1YXRpb24iLCAgICJ7Iik7Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsxMV0s
IDM5LCAiaW50TGl0ZXJhbCIsICAgICIxIik7Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsx
Ml0sIDQwLCAiaWRlbnRpZmllciIsICAgICJhMyIpOwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1
bHRbMTNdLCA0MywgImZsb2F0TGl0ZXJhbCIsICAiMS4yIik7Ci0gICAgY2hlY2tMZXhlclRva2Vu
KHJlc3VsdFsxNF0sIDQ3LCAicHVuY3R1YXRpb24iLCAgICIrIik7Ci0gICAgY2hlY2tMZXhlclRv
a2VuKHJlc3VsdFsxNV0sIDQ5LCAiZmxvYXRMaXRlcmFsIiwgICIzLjQiKTsKLSAgICBjaGVja0xl
eGVyVG9rZW4ocmVzdWx0WzE2XSwgNTMsICJwdW5jdHVhdGlvbiIsICAgIisiKTsKLSAgICBjaGVj
a0xleGVyVG9rZW4ocmVzdWx0WzE3XSwgNTUsICJmbG9hdExpdGVyYWwiLCAgIjEuIik7Ci0gICAg
Y2hlY2tMZXhlclRva2VuKHJlc3VsdFsxOF0sIDU4LCAicHVuY3R1YXRpb24iLCAgICIrIik7Ci0g
ICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsxOV0sIDYwLCAiZmxvYXRMaXRlcmFsIiwgICIuMiIp
OwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbMjBdLCA2MywgImZsb2F0TGl0ZXJhbCIsICAi
MS4yZiIpOwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbMjFdLCA2OCwgImZsb2F0TGl0ZXJh
bCIsICAiMC5mIik7Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsyMl0sIDcyLCAiZmxvYXRM
aXRlcmFsIiwgICIuM2YiKTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzIzXSwgNzYsICJw
dW5jdHVhdGlvbiIsICAgIiYmIik7Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsyNF0sIDc5
LCAicHVuY3R1YXRpb24iLCAgICJ8fCIpOwotfQotCi10ZXN0cy5zaW1wbGVOb1JldHVybiA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcCgiaW50IGZv
bygpIHsgfSIpLAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQot
Ci10ZXN0cy5zaW1wbGVVbnJlYWNoYWJsZUNvZGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9pZCBmb28oKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBpbnQg
eDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgaW50IHg7Ci0gICAgICAgICAgICBpbnQgeTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IEZvbyBmb28oRm9vIGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAg
ICAgICAgICAgIHJlc3VsdC54ID0gZm9vLnk7Ci0gICAgICAgICAgICByZXN1bHQueSA9IGZvby54
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxl
dCBzdHJ1Y3RUeXBlID0gcHJvZ3JhbS50eXBlcy5nZXQoIkZvbyIpOwotICAgIGlmICghc3RydWN0
VHlwZSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEaWQgbm90IGZpbmQgRm9vIHR5cGUiKTsK
LSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7Ci0gICAgYnVmZmVyLnNldCgwLCA2Mik7
Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZl
ciwgMCkpXSk7Ci0gICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMoc3RydWN0VHlwZSkpCi0gICAg
ICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQudHlwZSk7
Ci0gICAgbGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7Ci0gICAgbGV0IHkgPSByZXN1bHQuZVB0
ci5nZXQoMSk7Ci0gICAgaWYgKHggIT0gMjQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3Jv
bmcgcmVzdWx0IGZvciB4OiAiICsgeCArICIgKHkgPSAiICsgeSArICIpIik7Ci0gICAgaWYgKHkg
IT0gNjIpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5OiAiICsg
eSArICIgKHggKyAiICsgeCArICIpIik7Ci19Ci0KLXRlc3RzLmxvYWROdWxsID0gZnVuY3Rpb24o
KQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHZvaWQgc2luayh0aHJlYWQgaW50KiB4KSB7IH0KLSAgICAgICAgICAgIHZvaWQgZm9vKCkgeyBz
aW5rKCpudWxsKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJUeXBlIHBhc3NlZCB0byBkZXJlZmVyZW5j
ZSBpcyBub3QgYSBwb2ludGVyOiBudWxsIikgIT0gLTEpOwotfQotCi10ZXN0cy5zdG9yZU51bGwg
PSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgdm9pZCBmb28oKSB7ICpudWxsID0gNDI7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigi
VHlwZSBwYXNzZWQgdG8gZGVyZWZlcmVuY2UgaXMgbm90IGEgcG9pbnRlcjogbnVsbCIpICE9IC0x
KTsKLX0KLQotdGVzdHMucmV0dXJuTnVsbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdGhyZWFkIGludCogZm9vKCkgeyByZXR1cm4gbnVs
bDsgfQotICAgIGApOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKTsKLSAgICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQotICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQudHlwZSk7Ci0g
ICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNz
LmludCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGEgcG9p
bnRlciB0byBhbiBpbnQ6ICIgKyByZXN1bHQudHlwZSk7Ci0gICAgaWYgKHJlc3VsdC52YWx1ZSAh
PSBudWxsKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB2YWx1ZSBpcyBub3QgbnVs
bDogIiArIHJlc3VsdC52YWx1ZSk7Ci19Ci0KLXRlc3RzLmRlcmVmZXJlbmNlRGVmYXVsdE51bGwg
PSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0
IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBwOwotICAgICAg
ICAgICAgcmV0dXJuICpwOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dy
YW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci19
Ci0KLXRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGwgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0g
ICAgICAgICAgICB0aHJlYWQgaW50KiBwID0gbnVsbDs7Ci0gICAgICAgICAgICByZXR1cm4gKnA7
Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLX0KLQotdGVzdHMucGFzc051
bGxUb1B0ck1vbm9tb3JwaGljID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgaW50IGZvbyh0aHJlYWQgaW50KiBwdHIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiAqcHRyOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGJhcigpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBmb28obnVsbCk7Ci0gICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSksIGNoZWNrSW50KTsKLX0KLQotdGVzdHMubG9hZE51bGxBcnJheVJlZiA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICB2b2lkIHNpbmsodGhyZWFkIGludCogeCkgeyB9Ci0gICAgICAgICAgICB2b2lkIGZvbygp
IHsgc2luayhudWxsWzB1XSk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IHJlc29sdmUgYWNj
ZXNzIikgIT0gLTEpOwotfQotCi10ZXN0cy5zdG9yZU51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICB2
b2lkIGZvbygpIHsgbnVsbFswdV0gPSA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJDYW5ub3QgcmVz
b2x2ZSBhY2Nlc3MiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLnJldHVybk51bGxBcnJheVJlZiA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdGhy
ZWFkIGludFtdIGZvbygpIHsgcmV0dXJuIG51bGw7IH0KLSAgICBgKTsKLSAgICBsZXQgcmVzdWx0
ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7Ci0gICAgaWYgKCFyZXN1bHQudHlw
ZS5pc0FycmF5UmVmKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5v
dCBhbiBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1bHQudHlwZSk7Ci0gICAgaWYgKCFyZXN1bHQu
dHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludCkpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGFuIGludCBhcnJheSByZWZlcmVu
Y2U6ICIgKyByZXN1bHQudHlwZSk7Ci0gICAgaWYgKHJlc3VsdC52YWx1ZSAhPSBudWxsKQotICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB2YWx1ZSBpcyBub3QgbnVsbDogIiArIHJlc3Vs
dC52YWx1ZSk7Ci19Ci0KLXRlc3RzLmRlcmVmZXJlbmNlRGVmYXVsdE51bGxBcnJheVJlZiA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50
IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSBwOwotICAgICAgICAg
ICAgcmV0dXJuIHBbMHVdOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dy
YW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci19
Ci0KLXRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSBwID0gbnVsbDsKLSAgICAgICAgICAgIHJl
dHVybiBwWzB1XTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hlY2tJbnQpOwotfQotCi10
ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWZJbnRMaXRlcmFsID0gZnVuY3Rpb24o
KQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkK
LSAgICAgICAgewotICAgICAgICAgICAgdGhyZWFkIGludFtdIHAgPSBudWxsOwotICAgICAgICAg
ICAgcmV0dXJuIHBbMF07Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3Jh
bSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLX0K
LQotdGVzdHMucGFzc051bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBpbnQgZm9vKHRocmVhZCBpbnRb
XSBwdHIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBwdHJbMHVdOwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgaW50IGJhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBm
b28obnVsbCk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIGNoZWNrSW50KTsKLX0KLQotdGVz
dHMucmV0dXJuSW50TGl0ZXJhbFVpbnQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoInRlc3QgdWludCBmb28oKSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwotfQotCi10
ZXN0cy5yZXR1cm5JbnRMaXRlcmFsRmxvYXQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoInRlc3QgZmxvYXQgZm9vKCkgeyByZXR1cm4gNDI7IH0iKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Mik7Ci19
Ci0KLXRlc3RzLmJhZEludExpdGVyYWxGb3JJbnQgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoInZvaWQgZm9vKCkgeyBpbnQgeCA9IDMwMDAwMDAw
MDA7IH0iKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpOwotfQot
Ci10ZXN0cy5iYWRJbnRMaXRlcmFsRm9yVWludCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0Zh
aWwoCi0gICAgICAgICgpID0+IGRvUHJlcCgidm9pZCBmb28oKSB7IHVpbnQgeCA9IDUwMDAwMDAw
MDA7IH0iKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpOwotfQot
Ci10ZXN0cy5iYWRJbnRMaXRlcmFsRm9yRmxvYXQgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoInZvaWQgZm9vKCkgeyBmbG9hdCB4ID0gNTAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDsgfSIpLAotICAgICAgICAoZSkgPT4gZSBp
bnN0YW5jZW9mIFdTeW50YXhFcnJvcik7Ci19Ci0KLXRlc3RzLmRvdWJsZU5vdCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgYm9vbCBmb28o
Ym9vbCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISF4OwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOwotfQotCi10ZXN0cy5zaW1wbGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCi17
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9p
ZCBmb28oaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9vKHgpOwotICAg
ICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yKTsKLX0KLQotdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBpbnQgeTsKLSAgICAgICAgICAgIGludCB4ID0gNzsKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgeCA9IDg7Ci0gICAgICAgICAgICAgICAgeSA9IHg7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4geTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA4KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaW50IHk7Ci0gICAgICAgICAgICBpbnQgeCA9IDc7Ci0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHggPSA4OwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgeSA9IHg7Ci0gICAgICAgICAgICByZXR1cm4geTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA3KTsKLX0KLQotdGVzdHMuaWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGludCB5ID0gNjsKLSAgICAgICAgICAgIGlmICh4ID09IDcpIHsKLSAgICAg
ICAgICAgICAgICB5ID0gODsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB5Owot
ICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgNik7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5
KV0pLCA2KTsKLX0KLQotdGVzdHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQotewotICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpbnQgeSA9IDY7Ci0gICAgICAgICAgICBpZiAoeCA9PSA3KSB7
Ci0gICAgICAgICAgICAgICAgeSA9IDg7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHkgPSA5OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHk7Ci0gICAg
ICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwg
OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSks
IDkpOwotfQotCi10ZXN0cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaW50IHkgPSA2OwotICAgICAgICAgICAgaWYgKHggPT0gNykgewot
ICAgICAgICAgICAgICAgIHkgPSA4OwotICAgICAgICAgICAgfSBlbHNlIGlmICh4ID09IDgpIHsK
LSAgICAgICAgICAgICAgICB5ID0gOTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
biB5OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA5KV0pLCA2KTsKLX0KLQotdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9v
KGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgeSA9IDY7Ci0gICAgICAgICAgICBp
ZiAoeCA9PSA3KSB7Ci0gICAgICAgICAgICAgICAgeSA9IDg7Ci0gICAgICAgICAgICB9IGVsc2Ug
aWYgKHggPT0gOCkgewotICAgICAgICAgICAgICAgIHkgPSA5OwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICB5ID0gMTA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4geTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDkpXSksIDEwKTsKLX0KLQotdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigp
Ci17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAg
aW50IGZvbyhpbnQgeCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgeSA9IDY7
Ci0gICAgICAgICAgICAgICAgaWYgKHggPT0gNykgewotICAgICAgICAgICAgICAgICAgICByZXR1
cm4geTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAg
ICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBmb28oaW50IHgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHkgPSA2OwotICAgICAgICAgICAgICAgIGlmICh4
ID09IDcpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgeSA9IDg7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAg
ICAgICAgICBpbnQgZm9vKGludCB4KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlu
dCB5ID0gNjsKLSAgICAgICAgICAgICAgICBpZiAoeCA9PSA3KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHkgPSA4OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiB5OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgYCks
Ci0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGludCB5ID0gNjsKLSAgICAgICAgICAgIGlmICh4ID09IDcpIHsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gODsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIDEwOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAx
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgZm9vKGludCB4KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCB5ID0gNjsKLSAgICAgICAgICAgICAgICBp
ZiAoeCA9PSA3KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiA4OwotICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoeCA9PSA5KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB5
ID0gNjsKLSAgICAgICAgICAgIGlmICh4ID09IDcpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
ODsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgeSA9IDk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICByZXR1cm4geTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgeSA9IDY7Ci0gICAgICAgICAgICAgICAgaWYg
KHggPT0gNykgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gODsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTA7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHJldHVybiAxMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
YCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IHkgPSA2OwotICAgICAgICAgICAgaWYgKHggPT0gNykKLSAgICAgICAgICAg
ICAgICBpbnQgeSA9IDg7Ci0gICAgICAgICAgICByZXR1cm4geTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgNik7Ci19Ci0KLXRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9v
KGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICB3aGlsZSAoeCA8IDEzKQotICAgICAgICAg
ICAgICAgIHggPSB4ICogMjsKLSAgICAgICAgICAgIHJldHVybiB4OwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7Ci19Ci0KLXRlc3RzLmludE92ZXJsb2FkUmVzb2x1
dGlvbiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IGludCBmb28oaW50KSB7IHJldHVybiAxOyB9Ci0gICAgICAgIGludCBmb28odWludCkgeyByZXR1
cm4gMjsgfQotICAgICAgICBpbnQgZm9vKGZsb2F0KSB7IHJldHVybiAzOyB9Ci0gICAgICAgIHRl
c3QgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KLSAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7Ci19Ci0KLXRlc3Rz
LmludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7
IH0KLSAgICAgICAgaW50IGZvbyh1aW50KSB7IHJldHVybiAyOyB9Ci0gICAgICAgIGludCBmb28o
aW50KSB7IHJldHVybiAxOyB9Ci0gICAgICAgIHRlc3QgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0
Mik7IH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtdKSwgMSk7Ci19Ci0KLXRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQotewotICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vMShpbnQgeCkKLSAg
ICAgICAgewotICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgICAgICB4ID0g
eCAqIDI7Ci0gICAgICAgICAgICAgICAgaWYgKHggPj0gNykKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IGludCBmb28yKGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICB3aGls
ZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHggPSB4ICogMjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHggPj0gNykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB4ID0geCAtIDE7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28zKGlu
dCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAg
ICAgIGlmICh4ID09IDcpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHggPSB4ICsgMTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiB4OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzQoaW50IHgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IGludCBmb281KCkKLSAgICAgICAgewotICAgICAgICAgICAgd2hpbGUgKHRy
dWUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gNzsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAy
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE5KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSksIDcpOwotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBmb28oaW50
IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgeCA9IHggKyAxOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbyhpbnQg
eCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICByZXR1cm4geDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBk
b1ByZXAoYAotICAgICAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHdoaWxlKHRydWUpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiA3OwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Ci19Ci0KLXRlc3RzLmNvbnRpbnVlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB3aGlsZSAoeCA8IDEwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHggPT0gOCkg
ewotICAgICAgICAgICAgICAgICAgICB4ID0geCArIDE7Ci0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB4ID0geCAqIDI7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTgpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIGludCBmb28oaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHg7Ci0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
cik7Ci19Ci0KLXRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28xKGludCB4KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpbnQgeSA9IDc7Ci0gICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgeSA9
IDg7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9IHdoaWxlICh4IDwgMTAp
OwotICAgICAgICAgICAgcmV0dXJuIHk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9v
MihpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHkgPSA3OwotICAgICAgICAgICAg
ZG8gewotICAgICAgICAgICAgICAgIHkgPSA4OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfSB3aGlsZSAoeSA9PSA3KTsKLSAgICAgICAgICAgIHJldHVybiB5OwotICAgICAg
ICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzMoaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGludCBzdW0gPSAwOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIGlmICh4ID09
IDExKSB7Ci0gICAgICAgICAgICAgICAgICAgIHggPSAxNTsKLSAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN1bSA9IHN1bSAr
IHg7Ci0gICAgICAgICAgICAgICAgeCA9IHggKyAxOwotICAgICAgICAgICAgfSB3aGlsZSAoeCA8
IDEzKTsKLSAgICAgICAgICAgIHJldHVybiBzdW07Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChw
cm9ncmFtLCAxKV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCAxMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwg
MSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwotfQotCi10ZXN0cy5mb3JMb29wID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBp
bnQgZm9vMShpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHN1bSA9IDA7Ci0gICAg
ICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB4OyBpID0gaSArIDEp
IHsKLSAgICAgICAgICAgICAgICBzdW0gPSBzdW0gKyBpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIHN1bTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28yKGludCB4
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgc3VtID0gMDsKLSAgICAgICAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgeDsgaSA9IGkgKyAxKSB7Ci0gICAgICAgICAgICAgICAgc3VtID0gc3Vt
ICsgaTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW07Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCBpbnQgZm9vMyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50
IHN1bSA9IDA7Ci0gICAgICAgICAgICBpbnQgaSA9IDEwMDsKLSAgICAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgeDsgaSA9IGkgKyAxKSB7Ci0gICAgICAgICAgICAgICAgc3VtID0gc3VtICsg
aTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW07Ci0gICAgICAgIH0KLSAg
ICAgICAgdGVzdCBpbnQgZm9vNChpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHN1
bSA9IDA7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHg7IGkgPSBpICsgMSkgewot
ICAgICAgICAgICAgICAgIGlmIChpID09IDQpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgICAgIHN1bSA9IHN1bSArIGk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gc3VtOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzUoaW50IHgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBzdW0gPSAwOwotICAgICAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCB4OyBpID0gaSArIDEpIHsKLSAgICAgICAgICAgICAgICBpZiAoaSA9PSA1
KQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBzdW0gPSBzdW0g
KyBpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHN1bTsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IGludCBmb282KGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQg
c3VtID0gMDsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyA7IGkgPSBpICsgMSkgewotICAg
ICAgICAgICAgICAgIGlmIChpID49IHgpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIHN1bSA9IHN1bSArIGk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gc3VtOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzcoaW50IHgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGludCBzdW0gPSAwOwotICAgICAgICAgICAgaW50IGkgPSAwOwot
ICAgICAgICAgICAgZm9yICggOyA7IGkgPSBpICsgMSkgewotICAgICAgICAgICAgICAgIGlmIChp
ID49IHgpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIHN1bSA9
IHN1bSArIGk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc3VtOwotICAgICAg
ICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzgoaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGludCBzdW0gPSAwOwotICAgICAgICAgICAgaW50IGkgPSAwOwotICAgICAgICAgICAgZm9yICgg
OyA7ICkgewotICAgICAgICAgICAgICAgIGlmIChpID49IHgpCi0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgIHN1bSA9IHN1bSArIGk7Ci0gICAgICAgICAgICAgICAg
aSA9IGkgKyAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHN1bTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb285KGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBmb3IgKCA7IDsgKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDc7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMTAoaW50IHgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZvciAoIDsgdHJ1ZTsgKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDc7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFr
ZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCAxMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW21ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW21ha2VJbnQocHJvZ3JhbSwgNCld
KSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCAyMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW21ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFttYWtlSW50KHByb2dyYW0sIDYp
XSksIDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzciLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW21h
a2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFttYWtlSW50KHBy
b2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3
KTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICB2
b2lkIGZvbyhpbnQgeCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBp
ID0gMDsgOyBpID0gaSArIDEpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgIHggPSBpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGZvbyhp
bnQgeCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKCA7IHggPCAxMDsgKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiA3OwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Ci19Ci0KLXRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQotewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAg
ICB7Ci0gICAgICAgICAgICArK3g7Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKLX0KLQotdGVzdHMucHJlZml4UGx1c1Bs
dXNSZXN1bHQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAr
K3g7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7Ci19Ci0KLXRl
c3RzLnBvc3RmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAg
ICAgeCsrOwotICAgICAgICAgICAgcmV0dXJuIHg7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDY0KV0pLCA2NSk7Ci19Ci0KLXRlc3RzLnBvc3RmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50
IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHgrKzsKLSAgICAgICAg
fQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKLX0KLQotdGVzdHMucHJlZml4TWlu
dXNNaW51cyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgLS14OwotICAg
ICAgICAgICAgcmV0dXJuIHg7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0p
LCA2Myk7Ci19Ci0KLXRlc3RzLnByZWZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAtLXg7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDY0KV0pLCA2Myk7Ci19Ci0KLXRlc3RzLnBvc3RmaXhNaW51c01pbnVzID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBp
bnQgZm9vKGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICB4LS07Ci0gICAgICAgICAgICBy
ZXR1cm4geDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKLX0K
LQotdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiB4LS07Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDY0KV0pLCA2NCk7Ci19Ci0KLXRlc3RzLnBsdXNFcXVhbHMgPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHggKz0gNDI7Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7Ci19Ci0KLXRl
c3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiB4ICs9IDQyOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUp
XSksIDM4NSArIDQyKTsKLX0KLQotdGVzdHMubWludXNFcXVhbHMgPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHggLT0gNDI7Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7Ci19Ci0KLXRl
c3RzLm1pbnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4geCAtPSA0MjsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1
KV0pLCAzODUgLSA0Mik7Ci19Ci0KLXRlc3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQotewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQot
ICAgICAgICB7Ci0gICAgICAgICAgICB4ICo9IDQyOwotICAgICAgICAgICAgcmV0dXJuIHg7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwotfQotCi10
ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIHggKj0gNDI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4
NSldKSwgMzg1ICogNDIpOwotfQotCi10ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHggLz0gNDI7Ci0gICAgICAgICAgICByZXR1cm4geDsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7
Ci19Ci0KLXRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIHggLz0gNDI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOwotfQotCi10ZXN0cy50d29JbnRMaXRlcmFs
cyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgYm9vbCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gNDIgPT0gNDI7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksIHRydWUpOwotfQotCi10ZXN0cy5hc3NpZ25VaW50VG9JbnQgPSBm
dW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAg
ICAgICAgICAgdm9pZCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCB4
ID0gNDJ1OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJUeXBlIG1pc21hdGNoIGlu
IHZhcmlhYmxlIGluaXRpYWxpemF0aW9uIikgIT0gLTEpOwotfQotCi10ZXN0cy5idWlsZEFycmF5
VGhlblN1bUl0ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50WzQyXSBhcnJh
eTsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IDQyOyBpID0gaSArIDEpCi0gICAg
ICAgICAgICAgICAgYXJyYXlbaV0gPSBpbnQoaSArIDUpOwotICAgICAgICAgICAgaW50IHJlc3Vs
dDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IDQyOyBpID0gaSArIDEpCi0gICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgYXJyYXlbaV07Ci0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKLX0K
LQotdGVzdHMuYnVpbGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBpbnQgYmFyKHRocmVh
ZCBpbnRbXSBhcnJheSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBp
IDwgNDI7IGkgPSBpICsgMSkKLSAgICAgICAgICAgICAgICBhcnJheVtpXSA9IGludChpICsgNSk7
Ci0gICAgICAgICAgICBpbnQgcmVzdWx0OwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBp
IDwgNDI7IGkgPSBpICsgMSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBhcnJh
eVtpXTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGVz
dCBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50WzQyXSBhcnJheTsKLSAgICAg
ICAgICAgIHJldHVybiBiYXIoQGFycmF5KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0
MiAqIDQxIC8gMik7Ci19Ci0KLXRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7
Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIGludCB5OwotICAgICAgICB9Ci0gICAg
ICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkK
LSAgICAgICAgewotICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgICAgICAgICAg
cmV0dXJuICZmb28tPng7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPT0gMSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gJmZvby0+eTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287
Ci0gICAgICAgICAgICBmb28ueCA9IDQ5ODsKLSAgICAgICAgICAgIGZvby55ID0gMTk7Ci0gICAg
ICAgICAgICByZXR1cm4gZm9vWzBdICsgZm9vWzFdICogMzsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0
OTggKyAxOSAqIDMpOwotfQotCi10ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZERvU3Rv
cmVzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
c3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIGludCB5OwotICAg
ICAgICB9Ci0gICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywg
dWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCi0gICAg
ICAgICAgICAgICAgcmV0dXJuICZmb28tPng7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPT0gMSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gJmZvby0+eTsKLSAgICAgICAgICAgIHJldHVybiBudWxs
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEZvbyBmb287Ci0gICAgICAgICAgICBmb29bMF0gPSA0OTg7Ci0gICAgICAgICAgICBmb29b
MV0gPSAxOTsKLSAgICAgICAgICAgIHJldHVybiBmb28ueCArIGZvby55OwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDQ5OCArIDE5KTsKLX0KLQotdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRV
c2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICBpbnQg
eTsKLSAgICAgICAgfQotICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9v
KiBmb28sIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChpbmRleCA9PSAw
KQotICAgICAgICAgICAgICAgIHJldHVybiAmZm9vLT54OwotICAgICAgICAgICAgaWYgKGluZGV4
ID09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPnk7Ci0gICAgICAgICAgICByZXR1
cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyKHRocmVhZCBGb28qIGZvbykKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuICgqZm9vKVswXSArICgqZm9vKVsxXTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28g
Zm9vOwotICAgICAgICAgICAgZm9vLnggPSA0OTg7Ci0gICAgICAgICAgICBmb28ueSA9IDE5Owot
ICAgICAgICAgICAgcmV0dXJuIGJhcigmZm9vKTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OTggKyAx
OSk7Ci19Ci0KLXRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnNJbmNv
cnJlY3RseSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgeDsK
LSAgICAgICAgICAgICAgICBpbnQgeTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRocmVh
ZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT0gMCkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICZmb28tPng7Ci0gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDEpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiAmZm9vLT55OwotICAgICAgICAgICAgICAgIHJldHVybiBu
dWxsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW50IGJhcih0aHJlYWQgRm9vKiBmb28p
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGludCBmb28oKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAgICAgICAgZm9vLnggPSA0OTg7Ci0gICAg
ICAgICAgICAgICAgZm9vLnkgPSAxOTsKLSAgICAgICAgICAgICAgICByZXR1cm4gYmFyKCZmb28p
OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMubWFrZUFycmF5UmVmRnJvbUxvY2FsID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgaW50IGJhcih0aHJl
YWQgaW50W10gcmVmKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVmWzBdOwotICAg
ICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlu
dCB4ID0gNDg7Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA0OCk7Ci19Ci0KLXRlc3RzLm1ha2VBcnJheVJlZkZyb21Qb2ludGVyID0gZnVuY3Rpb24oKQot
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgaW50IGJhcih0aHJlYWQgaW50
W10gcmVmKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVmWzBdOwotICAgICAgICB9
Ci0gICAgICAgIGludCBiYXoodGhyZWFkIGludCogcHRyKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gYmFyKEBwdHIpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGludCB4ID0gNDg7Ci0gICAgICAgICAgICByZXR1cm4gYmF6
KCZ4KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7Ci19Ci0KLXRlc3RzLm1ha2VBcnJheVJlZkZy
b21BcnJheVJlZiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgYmFyKHRocmVhZCBpbnRbXSByZWYpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlZlswXTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGludCBiYXoodGhyZWFkIGludFtdIHB0cikKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gYmFyKEBwdHIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aW50IGZvbygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHggPSA0ODsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gYmF6KEB4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCks
Ci0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLnNp
bXBsZUxlbmd0aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHRlc3QgdWludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBmbG9hdFs3NTRd
IGFycmF5OwotICAgICAgICAgICAgcmV0dXJuIChAYXJyYXkpLmxlbmd0aDsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNzU0KTsKLX0KLQotdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQg
PSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0
IHVpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgZmxvYXRbNzU0XSBhcnJheTsKLSAg
ICAgICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1
aW50IGJhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludFs3NTRdIGFycmF5OwotICAgICAg
ICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDc1
NCk7Ci19Ci0KLXRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhGYWlsID0gZnVuY3Rpb24oKQot
ewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHRo
cmVhZCB1aW50KiBsZW5ndGhQdHIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlu
dFs0Ml0gYXJyYXk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICYoYXJyYXkubGVuZ3RoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IpOwotfQotCi10ZXN0cy5hc3NpZ25MZW5ndGggPSBmdW5jdGlvbigpCi17Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9pZCBmb28oKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZsb2F0Wzc1NF0gYXJyYXk7Ci0gICAgICAg
ICAgICAgICAgKEBhcnJheSkubGVuZ3RoID0gNDI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGAp
LAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5h
c3NpZ25MZW5ndGhIZWxwZXIgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0W10gYXJy
YXkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXJyYXkubGVuZ3RoID0gNDI7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB2b2lkIGZvbygpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgZmxvYXRbNzU0XSBhcnJheTsKLSAgICAgICAgICAgICAgICBiYXIoQGFycmF5
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLnNpbXBsZUdldHRlciA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9yLnkoRm9vIGZvbykK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZvby54OwotICAgICAgICB9Ci0gICAgICAg
IHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAg
ICAgICBmb28ueCA9IDc4MDQ7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLnk7Ci0gICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNzgwNCk7Ci19Ci0KLXRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9yLnkoRm9vIGZvbykK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZvby54OwotICAgICAgICB9Ci0gICAgICAg
IEZvbyBvcGVyYXRvci55PShGb28gZm9vLCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZvby54ID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0g
ICAgICAgICAgICBmb28ueSA9IDc4MDQ7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLng7Ci0gICAg
ICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgNzgwNCk7Ci19Ci0KLXRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVt
dWxhdGlvblNpbXBsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50WzddIGFycmF5OwotICAgICAg
ICB9Ci0gICAgICAgIGludCBvcGVyYXRvcltdKEZvbyBmb28sIHVpbnQgaW5kZXgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBmb28uYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAg
ICAgIEZvbyBvcGVyYXRvcltdPShGb28gZm9vLCB1aW50IGluZGV4LCBpbnQgdmFsdWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGZvby5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAg
IHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoRm9v
IGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheS5sZW5ndGg7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IHN1bShGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsg
aS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAg
IEZvb1s2XSBhcnJheTsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChC
YXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFyLmFycmF5Lmxlbmd0aDsK
LSAgICAgICAgfQotICAgICAgICBGb28gb3BlcmF0b3JbXShCYXIgYmFyLCB1aW50IGluZGV4KQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFyLmFycmF5W2luZGV4XTsKLSAgICAgICAg
fQotICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyIGJhciwgdWludCBpbmRleCwgRm9vIHZhbHVl
KQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIuYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAg
ICAgICAgICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCBzdW0oQmFyIGJhcikK
LSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3Ig
KHVpbnQgaSA9IGJhci5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1
bShiYXJbaV0pOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAg
ICBzdHJ1Y3QgQmF6IHsKLSAgICAgICAgICAgIEJhcls1XSBhcnJheTsKLSAgICAgICAgfQotICAg
ICAgICBCYXIgb3BlcmF0b3JbXShCYXogYmF6LCB1aW50IGluZGV4KQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYmF6LmFycmF5W2luZGV4XTsKLSAgICAgICAgfQotICAgICAgICBCYXog
b3BlcmF0b3JbXT0oQmF6IGJheiwgdWludCBpbmRleCwgQmFyIHZhbHVlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBiYXouYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4g
YmF6OwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJheiBiYXopCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXkubGVuZ3RoOwotICAgICAgICB9
Ci0gICAgICAgIGludCBzdW0oQmF6IGJheikKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJl
c3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspCi0g
ICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXpbaV0pOwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBi
YXopCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7IGkt
LTspIHsKLSAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGot
LTspIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVu
Z3RoOyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50
KGkgKyBqICsgayk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgaW50IHRlc3RTZXRWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBCYXogYmF6OwotICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAg
ICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IHRlc3RTZXRW
YWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6
OwotICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgZm9yICh1aW50IGkg
PSBiYXoubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSBiYXpb
aV0ubGVuZ3RoOyBqLS07KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gYmF6
W2ldW2pdLmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJheltpXVtqXVtr
XSAqPSBpbnQoayk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10pLCAx
NTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RT
ZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5uZXN0
ZWRTdWJzY3JpcHRXaXRoQXJyYXlzSW5TdHJ1Y3RzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnRb
N10gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShGb28gZm9vKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0g
MDsgaSA8IGZvby5hcnJheS5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0g
Zm9vLmFycmF5W2ldOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAg
ICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIEZvb1s2XSBhcnJheTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgc3VtKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1
bHQgPSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgYmFyLmFycmF5Lmxlbmd0
aDsgaSsrKQotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0oYmFyLmFycmF5W2ldKTsKLSAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJheiB7
Ci0gICAgICAgICAgICBCYXJbNV0gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShC
YXogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAg
ICAgIGZvciAodWludCBpID0gMDsgaSA8IGJhei5hcnJheS5sZW5ndGg7IGkrKykKLSAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gc3VtKGJhei5hcnJheVtpXSk7Ci0gICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJh
eikKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgYmF6LT5hcnJh
eS5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gMDsgaiA8IGJh
ei0+YXJyYXlbaV0uYXJyYXkubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICAgICAgZm9y
ICh1aW50IGsgPSAwOyBrIDwgYmF6LT5hcnJheVtpXS5hcnJheVtqXS5hcnJheS5sZW5ndGg7IGsr
KykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJhei0+YXJyYXlbaV0uYXJyYXlbal0uYXJyYXlb
a10gPSBpbnQoaSArIGogKyBrKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgdGVzdFNldFZhbHVlc0FuZFN1bSgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEJheiBiYXo7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7Ci0g
ICAgICAgICAgICByZXR1cm4gc3VtKGJheik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQg
dGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEJheiBiYXo7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7Ci0gICAgICAgICAgICBmb3Ig
KHVpbnQgaSA9IGJhei5hcnJheS5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBmb3Ig
KHVpbnQgaiA9IGJhei5hcnJheVtpXS5hcnJheS5sZW5ndGg7IGotLTspIHsKLSAgICAgICAgICAg
ICAgICAgICAgZm9yICh1aW50IGsgPSBiYXouYXJyYXlbaV0uYXJyYXlbal0uYXJyYXkubGVuZ3Ro
OyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgYmF6LmFycmF5W2ldLmFycmF5W2pdLmFy
cmF5W2tdID0gYmF6LmFycmF5W2ldLmFycmF5W2pdLmFycmF5W2tdICogaW50KGspOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFNldFZhbHVlc0FuZFN1bSIsIFtdKSwgMTU3NSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVz
QW5kU3VtIiwgW10pLCA1NTY1KTsKLX0KLQotdGVzdHMubmVzdGVkU3Vic2NyaXB0ID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgaW50IHN1bShpbnRb
N10gYXJyYXkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBhcnJheS5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAg
cmVzdWx0ICs9IGFycmF5W2ldOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAg
fQotICAgICAgICBpbnQgc3VtKGludFs2XVs3XSBhcnJheSkKLSAgICAgICAgewotICAgICAgICAg
ICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGFycmF5Lmxlbmd0
aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGFycmF5W2ldKTsKLSAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShpbnRbNV1b
Nl1bN10gYXJyYXkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAg
ICAgICAgICAgZm9yICh1aW50IGkgPSBhcnJheS5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ICs9IHN1bShhcnJheVtpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBpbnRbXVs2XVs3XSBhcnJh
eSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBhcnJheS5sZW5ndGg7IGkt
LTspIHsKLSAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9IGFycmF5W2ldLmxlbmd0aDsgai0t
OykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9IGFycmF5W2ldW2pdLmxlbmd0
aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2ldW2pdW2tdID0gaW50KGkg
KyBqICsgayk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgaW50IHRlc3RTZXRWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBpbnRbNV1bNl1bN10gYXJyYXk7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoQGFycmF5KTsK
LSAgICAgICAgICAgIHJldHVybiBzdW0oYXJyYXkpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3Qg
aW50IHRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBpbnRbNV1bNl1bN10gYXJyYXk7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoQGFycmF5KTsK
LSAgICAgICAgICAgIGZvciAodWludCBpID0gYXJyYXkubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAg
ICAgICAgICAgZm9yICh1aW50IGogPSBhcnJheVtpXS5sZW5ndGg7IGotLTspIHsKLSAgICAgICAg
ICAgICAgICAgICAgZm9yICh1aW50IGsgPSBhcnJheVtpXVtqXS5sZW5ndGg7IGstLTspCi0gICAg
ICAgICAgICAgICAgICAgICAgICBhcnJheVtpXVtqXVtrXSA9IGFycmF5W2ldW2pdW2tdICogaW50
KGspOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
biBzdW0oYXJyYXkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10pLCAxNTc1KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1
ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5sb3RzT2ZMb2Nh
bFZhcmlhYmxlcyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgc3JjID0gInRlc3QgaW50IHN1bSgp
IHtcbiI7Ci0gICAgc3JjICs9ICIgICAgaW50IGkgPSAwO1xuIjsKLSAgICBsZXQgdGFyZ2V0ID0g
MDsKLSAgICBjb25zdCBudW1WYXJzID0gNTA7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1W
YXJzOyBpKyspIHsKLSAgICAgICAgY29uc3QgdmFsdWUgPSBpICogMzsKLSAgICAgICAgc3JjICs9
IGAgICBpID0gJHtpfTtcbmA7Ci0gICAgICAgIHNyYyArPSBgICAgaW50IFYke2l9ID0gKGkgKyAz
KSAqIChpICsgMyk7XG5gOwotICAgICAgICB0YXJnZXQgKz0gKGkgKyAzKSAqIChpICsgMyk7Ci0g
ICAgfQotICAgIHNyYyArPSAiICAgIGludCByZXN1bHQgPSAwO1xuIjsKLSAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IG51bVZhcnM7IGkrKykgewotICAgICAgICBzcmMgKz0gYCAgICByZXN1bHQgKz0g
ViR7aX07XG5gOwotICAgIH0KLSAgICBzcmMgKz0gIiAgICByZXR1cm4gcmVzdWx0O1xuIjsKLSAg
ICBzcmMgKz0gIn0iOwotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHNyYyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJzdW0iLCBbXSksIHRhcmdldCk7Ci19
Ci0KLXRlc3RzLm9wZXJhdG9yQm9vbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHRlc3QgYm9vbCBib29sRnJvbVVjaGFyRmFsc2UoKSB7IHJldHVy
biBib29sKHVjaGFyKDApKTsgfQotICAgICAgICB0ZXN0IGJvb2wgYm9vbEZyb21VY2hhclRydWUo
KSB7IHJldHVybiBib29sKHVjaGFyKDEpKTsgfQotCi0gICAgICAgIHRlc3QgYm9vbCBib29sRnJv
bVVpbnRGYWxzZSgpIHsgcmV0dXJuIGJvb2wodWludCgwKSk7IH0KLSAgICAgICAgdGVzdCBib29s
IGJvb2xGcm9tVWludFRydWUoKSB7IHJldHVybiBib29sKHVpbnQoMSkpOyB9Ci0KLSAgICAgICAg
dGVzdCBib29sIGJvb2xGcm9tSW50RmFsc2UoKSB7IHJldHVybiBib29sKGludCgwKSk7IH0KLSAg
ICAgICAgdGVzdCBib29sIGJvb2xGcm9tSW50VHJ1ZSgpIHsgcmV0dXJuIGJvb2woaW50KDEpKTsg
fQotCi0gICAgICAgIHRlc3QgYm9vbCBib29sRnJvbUZsb2F0RmFsc2UoKSB7IHJldHVybiBib29s
KGZsb2F0KDApKTsgfQotICAgICAgICB0ZXN0IGJvb2wgYm9vbEZyb21GbG9hdFRydWUoKSB7IHJl
dHVybiBib29sKGZsb2F0KDEpKTsgfQotICAgIGApOwotCi0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21VY2hhckZhbHNlIiwgW10pLCBmYWxzZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21V
Y2hhclRydWUiLCBbXSksIHRydWUpOwotCi0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYm9vbEZyb21VaW50RmFsc2UiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVpbnRUcnVlIiwg
W10pLCB0cnVlKTsKLQotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJvb2xGcm9tSW50RmFsc2UiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUludFRydWUiLCBbXSksIHRydWUpOwot
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21G
bG9hdEZhbHNlIiwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdFRydWUiLCBbXSksIHRydWUpOwotCi0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9pZCBmb28oKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZsb2F0MyB4OwotICAgICAgICAgICAgICAg
IGJvb2wgciA9IGJvb2woeCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLQotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBmbG9hdDN4MyB4OwotICAgICAgICAgICAgICAgIGJvb2wgciA9IGJvb2wo
eCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMuYm9vbEJpdEFuZCA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgYm9vbCBmb28oYm9vbCBhLCBi
b29sIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhICYgYjsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSld
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIHRydWUpOwotfQotCi10ZXN0cy5ib29sQml0T3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGJvb2wgZm9vKGJvb2wgYSwgYm9vbCBi
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSB8IGI7Ci0gICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFs
c2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7Ci19Ci0KLXRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGJvb2wgZm9vKGJvb2wgYSwgYm9vbCBiKQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSBeIGI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwot
fQotCi10ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgdGVzdCBib29sIGZvbyhib29sIGEpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiB+YTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKLX0KLQotdGVzdHMu
aW50Qml0QW5kID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCBpbnQgZm9vKGludCBhLCBpbnQgYikKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIGEgJiBiOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFt
LCA0MildKSwgNDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAt
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7Ci19Ci0K
LXRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCBhLCBpbnQgYikKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGEgfCBiOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChw
cm9ncmFtLCA0MildKSwgNjU1MzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0s
IC03KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwg
ODU3MzIpOwotfQotCi10ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IGEsIGludCBiKQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSBeIGI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1
MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgODU3MzIpXSksIDg1NzMyKTsKLX0KLQotdGVzdHMuaW50Qml0Tm90ID0gZnVuY3Rpb24oKQot
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCBh
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gfmE7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDEpXSksIC0yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KV0pLCAtNjU1MzYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEpOwotfQotCi10ZXN0
cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICB0ZXN0IGludCBmb28oaW50IGEsIHVpbnQgYikKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGEgPDwgYjsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIC0zMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwg
MCk7Ci19Ci0KLXRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgYSwgdWludCBiKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYSA+PiBiOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUz
NSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSldKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDMpXSksIDApOwotfQotCi10ZXN0cy51aW50Qml0QW5kID0gZnVuY3Rpb24oKQotewotICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IGEsIHVp
bnQgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCBNYXRoLnBvdygyLCAzMikgLSAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMzIpIC0gNyldKSwgNDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCA4NTczMildKSwgMCk7Ci19Ci0KLXRlc3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWlu
dCBhLCB1aW50IGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhIHwgYjsKLSAgICAg
ICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
Nyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMzIpIC0gMSksIG1ha2VVaW50KHByb2dyYW0s
IE1hdGgucG93KDIsIDMyKSAgLSA3KV0pLCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7Ci19Ci0KLXRlc3RzLnVpbnRCaXRY
b3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0
ZXN0IHVpbnQgZm9vKHVpbnQgYSwgdWludCBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gYSBeIGI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIE1hdGgucG93KDIsIDMyKSAtIDEpLCBt
YWtlVWludChwcm9ncmFtLCBNYXRoLnBvdygyLCAzMikgLSA3KV0pLCA2KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7Ci19Ci0KLXRlc3RzLnVp
bnRCaXROb3QgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgYSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IH5hOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpXSksIDQyOTQ5NjcyOTQp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA2NTUzNSldKSwgNDI5NDkwMTc2MCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIE1h
dGgucG93KDIsIDMyKSAtIDEpXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKV0pLCA0Mjk0OTY3Mjk1
KTsKLX0KLQotdGVzdHMudWludExTaGlmdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCBhLCB1aW50IGIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhIDw8IGI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMzIpIC0gMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5Njcy
NjQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7Ci19Ci0K
LXRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgYSwgdWludCBiKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYSA+PiBiOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIE1hdGgucG93
KDIsIDMyKSAtIDEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMzQyMTc3MjcpOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7Ci19Ci0KLXRlc3RzLnVjaGFy
Qml0QW5kID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgdGVzdCB1Y2hhciBmb28odWNoYXIgYSwgdWNoYXIgYikKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGEgJiBiOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVY2hhcihwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWNoYXIocHJvZ3JhbSwgMSks
IG1ha2VVY2hhcihwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCAyNTUpLCBtYWtl
VWNoYXIocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCAwKSwgbWFrZVVjaGFy
KHByb2dyYW0sIDI1NSldKSwgMCk7Ci19Ci0KLXRlc3RzLnVjaGFyQml0T3IgPSBmdW5jdGlvbigp
Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVjaGFyIGZvbyh1
Y2hhciBhLCB1Y2hhciBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSB8IGI7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCAxKSwgbWFrZVVjaGFyKHByb2dyYW0s
IDcpXSksIDcpOwotICAgIGNoZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVjaGFyKHByb2dyYW0sIDI1NSksIG1ha2VVY2hhcihwcm9ncmFtLCA0Mild
KSwgMjU1KTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCAwKSwgbWFrZVVjaGFyKHByb2dyYW0sIDIyOCldKSwg
MjI4KTsKLX0KLQotdGVzdHMudWNoYXJCaXRYb3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVjaGFyIGZvbyh1Y2hhciBhLCB1Y2hhciBi
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSBeIGI7Ci0gICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVY2hhcihwcm9ncmFtLCAxKSwgbWFrZVVjaGFyKHByb2dyYW0sIDcpXSksIDYpOwotICAg
IGNoZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVj
aGFyKHByb2dyYW0sIDI1NSksIG1ha2VVY2hhcihwcm9ncmFtLCA0MildKSwgMjEzKTsKLSAgICBj
aGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hh
cihwcm9ncmFtLCAwKSwgbWFrZVVjaGFyKHByb2dyYW0sIDI1NSldKSwgMjU1KTsKLX0KLQotdGVz
dHMudWNoYXJCaXROb3QgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAotICAgICAgICB0ZXN0IHVjaGFyIGZvbyh1Y2hhciBhKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gfmE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCAxKV0pLCAy
NTQpOwotICAgIGNoZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVjaGFyKHByb2dyYW0sIDI1NSldKSwgMCk7Ci0gICAgY2hlY2tVY2hhcihwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWNoYXIocHJvZ3JhbSwgMCldKSwg
MjU1KTsKLX0KLQotdGVzdHMudWNoYXJMU2hpZnQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVjaGFyIGZvbyh1Y2hhciBhLCB1aW50IGIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhIDw8IGI7Ci0gICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVY2hhcihwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAg
ICBjaGVja1VjaGFyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
Y2hhcihwcm9ncmFtLCAyNTUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTIpOwotICAgIGNo
ZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVjaGFy
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKLX0KLQotdGVzdHMudWNo
YXJSU2hpZnQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICB0ZXN0IHVjaGFyIGZvbyh1Y2hhciBhLCB1aW50IGIpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBhID4+IGI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VjaGFyKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVY2hhcihwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWNoYXIocHJvZ3JhbSwgMjU1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMildKSwgNjMpOwotICAgIGNoZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVjaGFyKHByb2dyYW0sIDI1NSksIG1ha2VVaW50
KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrVWNoYXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVjaGFyKHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAzKV0pLCAwKTsKLX0KLQotdGVzdHMuZmxvYXRNYXRoID0gZnVuY3Rpb24oKQotewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBib29sIGZvbygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiA0Mi41ID09IDQyLjU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVz
dCBib29sIGZvbzIoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gNDIuNWYgPT0gNDIu
NTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMygpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiA0Mi41ID09IDQyLjVmOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9v
bCBmb280KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDQyLjVmID09IDQyLjVmOwot
ICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb281KCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIDQyLjVmID09IDQyLjVmOwotICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGJhcihm
bG9hdCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgfQotICAg
ICAgICB0ZXN0IGZsb2F0IGZvbzYoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFy
KDcuNSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb283KCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGJhcig3LjVmKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZs
b2F0IGZvbzkoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQoNy41KTsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzEwKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGZsb2F0KDcuNWYpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9v
MTIoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQoNyk7Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCBmbG9hdCBmb28xMygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZsb2F0
IHggPSA3LjVmOwotICAgICAgICAgICAgcmV0dXJuIGZsb2F0KHgpOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtd
KSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10pLCA3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGJhcihpbnQgeCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGludCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGJh
cig0Lik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIGludCBiYXIoaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbnQgZm9vKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBiYXIoNC5mKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IGJhcihp
bnQgeCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGludCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGJhcig0LmYpOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICB1aW50IGJhcih1aW50IHgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbnQg
Zm9vKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBiYXIoNC4pOwotICAgICAgICAg
ICAgfQotICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
KTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICB1
aW50IGJhcih1aW50IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHg7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBiYXIoNC5mKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAg
ICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdWludCBiYXIodWludCB4KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiB4OwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaW50IGZvbygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYmFyKDQuZik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgYm9vbCBmb28oKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZSAmJiB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IHRlc3QgYm9vbCBmb28yKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHRydWUgJiYg
ZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzMoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2UgJiYgdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IGJvb2wgZm9vNCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZSAmJiBmYWxz
ZTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vNSgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlIHx8IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29s
IGZvbzYoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZSB8fCBmYWxzZTsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vNygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZSB8fCB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb284
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlIHx8IGZhbHNlOwotICAgICAg
ICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7Ci19Ci0KLXRlc3RzLmJvb2xlYW5TaG9ydGNp
cmN1aXRpbmcgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICBib29sIHNldCh0aHJlYWQgaW50KiBwdHIsIGludCB2YWx1ZSwgYm9vbCByZXRWYWx1ZSkg
Ci0gICAgICAgIHsgCi0gICAgICAgICAgICAqcHRyID0gdmFsdWU7IAotICAgICAgICAgICAgcmV0
dXJuIHJldFZhbHVlOyAKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50IGFuZFRydWUoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIGJvb2wgeSA9IHNldCgm
eCwgMSwgdHJ1ZSkgJiYgc2V0KCZ4LCAyLCBmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm4geDsg
Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGludCBhbmRGYWxzZSgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgYm9vbCB5ID0gc2V0KCZ4LCAxLCBmYWxzZSkg
JiYgc2V0KCZ4LCAyLCBmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm4geDsgCi0gICAgICAgIH0K
LQotICAgICAgICB0ZXN0IGludCBvclRydWUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQg
eDsKLSAgICAgICAgICAgIGJvb2wgeSA9IHNldCgmeCwgMSwgdHJ1ZSkgfHwgc2V0KCZ4LCAyLCBm
YWxzZSk7Ci0gICAgICAgICAgICByZXR1cm4geDsgCi0gICAgICAgIH0KLQotICAgICAgICB0ZXN0
IGludCBvckZhbHNlKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAg
ICBib29sIHkgPSBzZXQoJngsIDEsIGZhbHNlKSB8fCBzZXQoJngsIDIsIGZhbHNlKTsKLSAgICAg
ICAgICAgIHJldHVybiB4OyAKLSAgICAgICAgfQotICAgIGApOwotCi0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRUcnVlIiwgW10pLCAyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZEZhbHNlIiwgW10pLCAxKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtd
KSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvckZh
bHNlIiwgW10pLCAyKTsKLX0KLQotdGVzdHMudHlwZWRlZkFycmF5ID0gZnVuY3Rpb24oKQotewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdHlwZWRlZiBBcnJheVR5cGVkZWYg
PSBpbnRbMl07Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEFycmF5VHlwZWRlZiBhcnJheVR5cGVkZWY7Ci0gICAgICAgICAgICByZXR1cm4gYXJyYXlUeXBl
ZGVmWzBdOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOwotfQotCi10ZXN0cy5zaGFkZXJUeXBlcyA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBkb1ByZXAoYAotICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbygp
IDogU1ZfUG9zaXRpb24gewotICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgwLCAxLCAyLCAzKTsK
LSAgICAgICAgfWApOwotICAgIGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBSIHsKLSAgICAgICAg
ICAgIGZsb2F0NCB4IDogU1ZfUG9zaXRpb247Ci0gICAgICAgICAgICBpbnQ0IHkgOiBhdHRyaWJ1
dGUoMSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmVydGV4IFIgZm9vKCkgewotICAgICAgICAgICAg
UiB6OwotICAgICAgICAgICAgei54ID0gZmxvYXQ0KDEsIDIsIDMsIDQpOwotICAgICAgICAgICAg
ei55ID0gaW50NCg1LCA2LCA3LCA4KTsKLSAgICAgICAgICAgIHJldHVybiB6OwotICAgICAgICB9
YCk7Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IFIgewotICAgICAgICAgICAgZmxvYXQ0
IHggOiBTVl9Qb3NpdGlvbjsKLSAgICAgICAgICAgIGludDQgeSA6IGF0dHJpYnV0ZSgxKTsKLSAg
ICAgICAgfQotICAgICAgICBzdHJ1Y3QgUyB7Ci0gICAgICAgICAgICBSIHI7Ci0gICAgICAgICAg
ICBmbG9hdDMgeiA6IGF0dHJpYnV0ZSgyKTsKLSAgICAgICAgfQotICAgICAgICB2ZXJ0ZXggUyBm
b28oKSB7Ci0gICAgICAgICAgICBTIHc7Ci0gICAgICAgICAgICB3LnIueCA9IGZsb2F0NCgxLCAy
LCAzLCA0KTsKLSAgICAgICAgICAgIHcuci55ID0gaW50NCg1LCA2LCA3LCA4KTsKLSAgICAgICAg
ICAgIHcueiA9IGZsb2F0Myg5LCAxMCwgMTEpOwotICAgICAgICAgICAgcmV0dXJuIHc7Ci0gICAg
ICAgIH1gKTsKLSAgICBkb1ByZXAoYAotICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhjb25zdGFu
dCBmbG9hdCogYnVmZmVyIDogcmVnaXN0ZXIoYjApKSA6IFNWX1Bvc2l0aW9uIHsKLSAgICAgICAg
ICAgIHJldHVybiBmbG9hdDQoKmJ1ZmZlciwgKmJ1ZmZlciwgKmJ1ZmZlciwgKmJ1ZmZlcik7Ci0g
ICAgICAgIH1gKTsKLSAgICBkb1ByZXAoYAotICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhjb25z
dGFudCBmbG9hdCogYnVmZmVyIDogcmVnaXN0ZXIoYjAsIHNwYWNlMCkpIDogU1ZfUG9zaXRpb24g
ewotICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgqYnVmZmVyLCAqYnVmZmVyLCAqYnVmZmVyLCAq
YnVmZmVyKTsKLSAgICAgICAgfWApOwotICAgIGRvUHJlcChgCi0gICAgICAgIHZlcnRleCBmbG9h
dDQgZm9vKGNvbnN0YW50IGZsb2F0KiBidWZmZXIgOiByZWdpc3RlcihiMCwgc3BhY2UxKSkgOiBT
Vl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQ0KCpidWZmZXIsICpidWZmZXIs
ICpidWZmZXIsICpidWZmZXIpOwotICAgICAgICB9YCk7Ci0gICAgZG9QcmVwKGAKLSAgICAgICAg
dmVydGV4IGZsb2F0NCBmb28oY29uc3RhbnQgZmxvYXRbXSBidWZmZXIgOiByZWdpc3RlcihiMCkp
IDogU1ZfUG9zaXRpb24gewotICAgICAgICAgICAgcmV0dXJuIGZsb2F0NChidWZmZXJbMF0sIGJ1
ZmZlclsxXSwgYnVmZmVyWzJdLCBidWZmZXJbM10pOwotICAgICAgICB9YCk7Ci0gICAgZG9QcmVw
KGAKLSAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZmxvYXRbNV0gYnVmZmVyIDogcmVnaXN0ZXIo
YjApKSA6IFNWX1Bvc2l0aW9uIHsKLSAgICAgICAgICAgIHJldHVybiBmbG9hdDQoYnVmZmVyWzBd
LCBidWZmZXJbMV0sIGJ1ZmZlclsyXSwgYnVmZmVyWzNdKTsKLSAgICAgICAgfWApOwotICAgIGRv
UHJlcChgCi0gICAgICAgIHZlcnRleCBmbG9hdDQgZm9vKGRldmljZSBmbG9hdCogYnVmZmVyIDog
cmVnaXN0ZXIodTApKSA6IFNWX1Bvc2l0aW9uIHsKLSAgICAgICAgICAgIHJldHVybiBmbG9hdDQo
KmJ1ZmZlciwgKmJ1ZmZlciwgKmJ1ZmZlciwgKmJ1ZmZlcik7Ci0gICAgICAgIH1gKTsKLSAgICBk
b1ByZXAoYAotICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhkZXZpY2UgZmxvYXRbXSBidWZmZXIg
OiByZWdpc3Rlcih1MCkpIDogU1ZfUG9zaXRpb24gewotICAgICAgICAgICAgcmV0dXJuIGZsb2F0
NChidWZmZXJbMF0sIGJ1ZmZlclsxXSwgYnVmZmVyWzJdLCBidWZmZXJbM10pOwotICAgICAgICB9
YCk7Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgdmVydGV4IGZsb2F0NCBmb28odWludCB4IDogU1Zf
SW5zdGFuY2VJRCkgOiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQ0KGZs
b2F0KHgpLCBmbG9hdCh4KSwgZmxvYXQoeCksIGZsb2F0KHgpKTsKLSAgICAgICAgfWApOwotICAg
IGRvUHJlcChgCi0gICAgICAgIGZyYWdtZW50IGZsb2F0NCBmb28oYm9vbCB4IDogU1ZfSXNGcm9u
dEZhY2UpIDogU1ZfVGFyZ2V0MCB7Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEsIDIsIDMs
IDQpOwotICAgICAgICB9YCk7Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgZnJhZ21lbnQgZmxvYXQ0
IGZvbyhpbnQgeCA6IHNwZWNpYWxpemVkKSA6IFNWX1RhcmdldDAgewotICAgICAgICAgICAgcmV0
dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgfWApOwotICAgIGRvUHJlcChgCi0gICAg
ICAgIGZyYWdtZW50IGZsb2F0NCBmb28oVGV4dHVyZTFEPGZsb2F0ND4gdCA6IHJlZ2lzdGVyKHQw
KSwgc2FtcGxlciBzIDogcmVnaXN0ZXIoczApKSA6IFNWX1RhcmdldDAgewotICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZSh0LCBzLCAwLjQpOwotICAgICAgICB9YCk7Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdmVydGV4IHZvaWQgZm9vKCkgOiBT
Vl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhmbG9hdCB4IDogUFNJWkUpIDog
U1ZfUG9zaXRpb24gewotICAgICAgICAgICAgICAgIHJldHVybiBmbG9hdDQoeCwgeCwgeCwgeCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAg
ICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhpbnQgeCA6IFNWX0luc3RhbmNlSUQpIDogU1ZfUG9z
aXRpb24gewotICAgICAgICAgICAgICAgIHJldHVybiBmbG9hdDQoZmxvYXQoeCksIGZsb2F0KHgp
LCBmbG9hdCh4KSwgZmxvYXQoeCkpOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAg
ICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZmxvYXQgeCkg
OiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCh4LCB4LCB4LCB4
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIGZyYWdtZW50IGZsb2F0NCBmb28oYm9vbCB4IDogU1ZfSXNGcm9udEZhY2UsIGJv
b2wgeSA6IFNWX0lzRnJvbnRGYWNlKSA6IFNWX1RhcmdldDAgewotICAgICAgICAgICAgICAgIHJl
dHVybiBmbG9hdDQoMSwgMiwgMywgNCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgUiB7Ci0gICAgICAgICAgICAg
ICAgZmxvYXQ0IHggOiBTVl9UYXJnZXQwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJh
Z21lbnQgUiBmb28oYm9vbCB4IDogU1ZfSXNGcm9udEZhY2UpIDogU1ZfRGVwdGggewotICAgICAg
ICAgICAgICAgIFIgeTsKLSAgICAgICAgICAgICAgICB5LnggPSBmbG9hdDQoMSwgMiwgMywgNCk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAot
ICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgUiB7Ci0gICAgICAgICAg
ICAgICAgYm9vbCB4IDogU1ZfSXNGcm9udEZhY2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBmcmFnbWVudCBmbG9hdDQgZm9vKFIgeCA6IFNWX1NhbXBsZUluZGV4KSA6IFNWX1RhcmdldDAg
ewotICAgICAgICAgICAgICAgIHJldHVybiBmbG9hdDQoMSwgMiwgMywgNCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1
Y3QgUiB7Ci0gICAgICAgICAgICAgICAgYm9vbCB4IDogU1ZfSXNGcm9udEZhY2U7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgUyB7Ci0gICAgICAgICAgICAgICAgUiByOwotICAg
ICAgICAgICAgICAgIGJvb2wgeSA6IFNWX0lzRnJvbnRGYWNlOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZnJhZ21lbnQgZmxvYXQ0IGZvbyhTIHgpIDogU1ZfVGFyZ2V0MCB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNr
RmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBSIHsKLSAg
ICAgICAgICAgICAgICBmbG9hdCB4IDogU1ZfSXNGcm9udEZhY2U7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBmcmFnbWVudCBmbG9hdDQgZm9vKFIgeCkgOiBTVl9UYXJnZXQwIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEsIDIsIDMsIDQpOwotICAgICAgICAgICAgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0IFIgewot
ICAgICAgICAgICAgICAgIGZsb2F0IHggOiBTVl9Jc0Zyb250RmFjZTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHZlcnRleCB1aW50IGZvbygpIDogU1ZfVmVydGV4SUQgewotICAgICAgICAg
ICAgICAgIHJldHVybiA3OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgdHlwZWRlZiBBID0gdGhyZWFkIGZsb2F0KjsKLSAgICAg
ICAgICAgIHZlcnRleCBmbG9hdDQgZm9vKGRldmljZSBBW10geCA6IHJlZ2lzdGVyKHUwKSkgOiBT
Vl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIHR5cGVkZWYgQSA9IHRocmVhZCBmbG9hdCo7Ci0gICAgICAgICAgICB2ZXJ0ZXggZmxv
YXQ0IGZvbyhkZXZpY2UgQSogeCA6IHJlZ2lzdGVyKHUwKSkgOiBTVl9Qb3NpdGlvbiB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHR5cGVkZWYgQSA9
IHRocmVhZCBmbG9hdCo7Ci0gICAgICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhBWzRdIHggOiBy
ZWdpc3Rlcih1MCkpIDogU1ZfUG9zaXRpb24gewotICAgICAgICAgICAgICAgIHJldHVybiBmbG9h
dDQoMSwgMiwgMywgNCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICBlbnVtIEZvbyB7Ci0gICAgICAgICAgICAgICAgZiwgZwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oRm9vIHggOiBzcGVj
aWFsaXplZCkgOiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgx
LCAyLCAzLCA0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIFtudW10aHJlYWRzKDEsIDEsIDEpXQotICAgICAgICAgICAgY29t
cHV0ZSBmbG9hdCBmb28oKSA6IGF0dHJpYnV0ZSgwKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IDU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBmcmFnbWVudCBmbG9hdCBmb28oKSA6IGF0dHJpYnV0ZSgwKSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIDU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgp
ID0+IGRvUHJlcChgCi0gICAgICAgICAgICB2ZXJ0ZXggZmxvYXQgZm9vKGRldmljZSBmbG9hdCog
eCA6IGF0dHJpYnV0ZSgwKSkgOiBhdHRyaWJ1dGUoMCkgewotICAgICAgICAgICAgICAgIHJldHVy
biA1OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZGV2aWNlIGZsb2F0KiB4IDogcmVnaXN0ZXIo
YjApKSA6IFNWX1Bvc2l0aW9uIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEsIDIs
IDMsIDQpOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZmxvYXQgeCA6IHJlZ2lzdGVyKGIwKSkg
OiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHZlcnRleCBmbG9hdDQgZm9vKGRldmljZSBmbG9hdCogeCA6IHJlZ2lzdGVyKHQw
KSkgOiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAz
LCA0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIHZlcnRleCBmbG9hdDQgZm9vKFRleHR1cmUyRDxmbG9hdD4geCA6IHJlZ2lz
dGVyKGIwKSkgOiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgx
LCAyLCAzLCA0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHZlcnRleCBmbG9hdDQgZm9vKGNvbnN0YW50IGZsb2F0W10geCA6
IHJlZ2lzdGVyKHMwKSkgOiBTVl9Qb3NpdGlvbiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZs
b2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy52ZWN0b3JUeXBlU3ludGF4
ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVz
dCBpbnQgZm9vMigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludDIgeDsKLSAgICAgICAgICAg
IHZlY3RvcjxpbnQsIDI+IHogPSBpbnQyKDMsIDQpOwotICAgICAgICAgICAgeCA9IHo7Ci0gICAg
ICAgICAgICByZXR1cm4geC55OwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgZm9vMygp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGludDMgeDsKLSAgICAgICAgICAgIHZlY3RvcjxpbnQs
IDM+IHogPSBpbnQzKDMsIDQsIDUpOwotICAgICAgICAgICAgeCA9IHo7Ci0gICAgICAgICAgICBy
ZXR1cm4geC56OwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgZm9vNCgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGludDQgeDsKLSAgICAgICAgICAgIHZlY3RvcjxpbnQsND4geiA9IGlu
dDQoMywgNCwgNSwgNik7Ci0gICAgICAgICAgICB4ID0gejsKLSAgICAgICAgICAgIHJldHVybiB4
Lnc7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGJvb2wgdmVjMk9wZXJhdG9yQ2FzdCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGludDIgeCA9IHZlY3RvcjxpbnQsMj4oMSwgMik7Ci0gICAg
ICAgICAgICB2ZWN0b3I8aW50LCAyPiB5ID0gaW50MigxLCAyKTsKLSAgICAgICAgICAgIHJldHVy
biB4ID09IHkgJiYgeC54ID09IDEgJiYgeC55ID09IDIgJiYgeS54ID09IDEgJiYgeS55ID09IDI7
Ci0gICAgICAgIH1gKTsKLQotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtdKSwgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW10pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIDYpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInZlYzJPcGVyYXRvckNhc3QiLCBbXSksIHRydWUpOwotCi0g
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHR5cGVkZWYgaSA9IGludDsKLSAgICAgICAg
dGVzdCBpbnQgZm9vMigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludDIgeDsKLSAgICAgICAg
ICAgIHZlY3RvcjxpLCAyPiB6ID0gaW50MigzLCA0KTsKLSAgICAgICAgICAgIHggPSB6OwotICAg
ICAgICAgICAgcmV0dXJuIHgueTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgYm9vbCB2ZWMy
T3BlcmF0b3JDYXN0KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50MiB4ID0gdmVjdG9yPGks
Mj4oMSwgMik7Ci0gICAgICAgICAgICB2ZWN0b3I8aSwgMj4geSA9IGludDIoMSwgMik7Ci0gICAg
ICAgICAgICByZXR1cm4geCA9PSB5ICYmIHgueCA9PSAxICYmIHgueSA9PSAyICYmIHkueCA9PSAx
ICYmIHkueSA9PSAyOwotICAgICAgICB9YCk7Ci0KLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInZlYzJPcGVyYXRvckNhc3QiLCBbXSksIHRydWUpOwot
fQotCi10ZXN0cy5idWlsdGluVmVjdG9ycyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGludDIgYSA9IGludDIoMywgNCk7Ci0gICAgICAgICAgICByZXR1cm4gYVswXTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb28yKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50
MiBhID0gaW50MigzLCA0KTsKLSAgICAgICAgICAgIGludDMgYiA9IGludDMoYSwgNSk7Ci0gICAg
ICAgICAgICByZXR1cm4gYlsxXTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28zKCkK
LSAgICAgICAgewotICAgICAgICAgICAgaW50MyBhID0gaW50MygzLCA0LCA1KTsKLSAgICAgICAg
ICAgIGludDQgYiA9IGludDQoNiwgYSk7Ci0gICAgICAgICAgICByZXR1cm4gYlsxXTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb280KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50
MiBhID0gaW50MigzLCA0KTsKLSAgICAgICAgICAgIGludDIgYiA9IGludDIoNSwgNik7Ci0gICAg
ICAgICAgICBpbnQ0IGMgPSBpbnQ0KGEsIGIpOwotICAgICAgICAgICAgcmV0dXJuIGNbMl07Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzUoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpbnQ0IGEgPSBpbnQ0KDMsIDQsIDUsIDYpOwotICAgICAgICAgICAgaW50MiBiID0gaW50Mig0
LCA1KTsKLSAgICAgICAgICAgIGludDQgYyA9IGludDQoMywgYiwgNik7Ci0gICAgICAgICAgICBy
ZXR1cm4gYSA9PSBjOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb282KCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaW50MiBhID0gaW50Mig0LCA1KTsKLSAgICAgICAgICAgIGludDMg
YiA9IGludDMoMywgYSk7Ci0gICAgICAgICAgICBpbnQzIGMgPSBpbnQzKDMsIDQsIDYpOwotICAg
ICAgICAgICAgcmV0dXJuIGIgPT0gYzsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9v
dSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVpbnQyIGEgPSB1aW50MigzLCA0KTsKLSAgICAg
ICAgICAgIHJldHVybiBhWzBdOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb291Migp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHVpbnQyIGEgPSB1aW50MigzLCA0KTsKLSAgICAgICAg
ICAgIHVpbnQzIGIgPSB1aW50MyhhLCA1KTsKLSAgICAgICAgICAgIHJldHVybiBiWzFdOwotICAg
ICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb291MygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHVpbnQzIGEgPSB1aW50MygzLCA0LCA1KTsKLSAgICAgICAgICAgIHVpbnQ0IGIgPSB1aW50NCg2
LCBhKTsKLSAgICAgICAgICAgIHJldHVybiBiWzFdOwotICAgICAgICB9Ci0gICAgICAgIHRlc3Qg
dWludCBmb291NCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVpbnQyIGEgPSB1aW50MigzLCA0
KTsKLSAgICAgICAgICAgIHVpbnQyIGIgPSB1aW50Mig1LCA2KTsKLSAgICAgICAgICAgIHVpbnQ0
IGMgPSB1aW50NChhLCBiKTsKLSAgICAgICAgICAgIHJldHVybiBjWzJdOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgYm9vbCBmb291NSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVpbnQ0IGEg
PSB1aW50NCgzLCA0LCA1LCA2KTsKLSAgICAgICAgICAgIHVpbnQyIGIgPSB1aW50Mig0LCA1KTsK
LSAgICAgICAgICAgIHVpbnQ0IGMgPSB1aW50NCgzLCBiLCA2KTsKLSAgICAgICAgICAgIHJldHVy
biBhID09IGM7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvb3U2KCkKLSAgICAgICAg
ewotICAgICAgICAgICAgdWludDIgYSA9IHVpbnQyKDQsIDUpOwotICAgICAgICAgICAgdWludDMg
YiA9IHVpbnQzKDMsIGEpOwotICAgICAgICAgICAgdWludDMgYyA9IHVpbnQzKDMsIDQsIDYpOwot
ICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0
IGZvb2YoKQotICAgICAgICB7Ci0gICAgICAgICAgICBmbG9hdDIgYSA9IGZsb2F0MigzLiwgNC4p
OwotICAgICAgICAgICAgcmV0dXJuIGFbMF07Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9h
dCBmb29mMigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZsb2F0MiBhID0gZmxvYXQyKDMuLCA0
Lik7Ci0gICAgICAgICAgICBmbG9hdDMgYiA9IGZsb2F0MyhhLCA1Lik7Ci0gICAgICAgICAgICBy
ZXR1cm4gYlsxXTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvb2YzKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZmxvYXQzIGEgPSBmbG9hdDMoMy4sIDQuLCA1Lik7Ci0gICAgICAg
ICAgICBmbG9hdDQgYiA9IGZsb2F0NCg2LiwgYSk7Ci0gICAgICAgICAgICByZXR1cm4gYlsxXTsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvb2Y0KCkKLSAgICAgICAgewotICAgICAg
ICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQuKTsKLSAgICAgICAgICAgIGZsb2F0MiBiID0g
ZmxvYXQyKDUuLCA2Lik7Ci0gICAgICAgICAgICBmbG9hdDQgYyA9IGZsb2F0NChhLCBiKTsKLSAg
ICAgICAgICAgIHJldHVybiBjWzJdOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb29m
NSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZsb2F0NCBhID0gZmxvYXQ0KDMuLCA0LiwgNS4s
IDYuKTsKLSAgICAgICAgICAgIGZsb2F0MiBiID0gZmxvYXQyKDQuLCA1Lik7Ci0gICAgICAgICAg
ICBmbG9hdDQgYyA9IGZsb2F0NCgzLiwgYiwgNi4pOwotICAgICAgICAgICAgcmV0dXJuIGEgPT0g
YzsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vZjYoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBmbG9hdDIgYSA9IGZsb2F0Mig0LiwgNS4pOwotICAgICAgICAgICAgZmxvYXQzIGIg
PSBmbG9hdDMoMy4sIGEpOwotICAgICAgICAgICAgZmxvYXQzIGMgPSBmbG9hdDMoMy4sIDQuLCA2
Lik7Ci0gICAgICAgICAgICByZXR1cm4gYiA9PSBjOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwg
NCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQiLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291IiwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtdKSwgNCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTMiLCBbXSksIDMpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U0IiwgW10pLCA1
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NSIs
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vdTYiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vZiIsIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YyIiwgW10pLCA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSksIDMpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNCIsIFtdKSwgNSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
b2Y2IiwgW10pLCBmYWxzZSk7Ci19Ci0KLXRlc3RzLmJ1aWx0aW5WZWN0b3JHZXR0ZXJzID0gZnVu
Y3Rpb24oKQotewotICAgIGNvbnN0IHR5cGVOYW1lcyA9IFsgInVpbnQiLCAiaW50IiwgImZsb2F0
IiBdOwotICAgIGNvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07Ci0gICAgY29uc3QgZWxlbWVudHMg
PSBbICJ4IiwgInkiLCAieiIsICJ3IiBdOwotICAgIGNvbnN0IGluaXRpYWxpemVyTGlzdCA9IFsg
MSwgMiwgMywgNCBdOwotCi0gICAgbGV0IHRlc3RzID0gW107Ci0gICAgbGV0IHNyYyA9ICIiOwot
ICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIHR5cGVOYW1lcykgewotICAgICAgICBmb3IgKGxldCBz
aXplIG9mIHNpemVzKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkr
KykgewotICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGAke3R5cGVOYW1lfSR7
c2l6ZX0ke2VsZW1lbnRzW2ldfWA7Ci0gICAgICAgICAgICAgICAgc3JjICs9IGB0ZXN0ICR7dHlw
ZU5hbWV9ICR7ZnVuY3Rpb25OYW1lfSgpCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1l
fSR7c2l6ZX0oJHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4LiR7ZWxlbWVudHNbaV19OwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYDsKLSAgICAg
ICAgICAgICAgICB0ZXN0cy5wdXNoKHsgdHlwZTogdHlwZU5hbWUsIG5hbWU6IGZ1bmN0aW9uTmFt
ZSwgZXhwZWN0YXRpb246IGluaXRpYWxpemVyTGlzdFtpXSB9KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHNyYyk7Ci0gICAgY29u
c3QgY2hlY2tGdW5jcyA9IHsKLSAgICAgICAgInVpbnQiOiBjaGVja1VpbnQsCi0gICAgICAgICJp
bnQiOiBjaGVja0ludCwKLSAgICAgICAgImZsb2F0IjogY2hlY2tGbG9hdAotICAgIH07Ci0gICAg
Zm9yIChsZXQgdGVzdCBvZiB0ZXN0cykgewotICAgICAgICBjb25zdCBjaGVja0Z1bmMgPSBjaGVj
a0Z1bmNzW3Rlc3QudHlwZV07Ci0gICAgICAgIGNoZWNrRnVuYyhwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgdGVzdC5uYW1lLCBbXSwgW10pLCB0ZXN0LmV4cGVjdGF0aW9uKTsKLSAgICB9
Ci19Ci0KLXRlc3RzLmJ1aWx0aW5WZWN0b3JTZXR0ZXJzID0gZnVuY3Rpb24oKQotewotICAgIGNv
bnN0IHR5cGVOYW1lcyA9IFsgInVpbnQiLCAiaW50IiwgImZsb2F0IiBdOwotICAgIGNvbnN0IHNp
emVzID0gWyAyLCAzLCA0IF07Ci0gICAgY29uc3QgZWxlbWVudHMgPSBbICJ4IiwgInkiLCAieiIs
ICJ3IiBdOwotICAgIGNvbnN0IGluaXRpYWxpemVyTGlzdCA9IFsgMSwgMiwgMywgNCBdOwotCi0g
ICAgbGV0IHRlc3RzID0gW107Ci0gICAgbGV0IHNyYyA9ICIiOwotICAgIGZvciAobGV0IHR5cGVO
YW1lIG9mIHR5cGVOYW1lcykgewotICAgICAgICBmb3IgKGxldCBzaXplIG9mIHNpemVzKSB7Ci0g
ICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAg
ICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGAke3R5cGVOYW1lfSR7c2l6ZX0ke2VsZW1lbnRzW2ld
fWA7Ci0gICAgICAgICAgICAgICAgc3JjICs9IGB0ZXN0ICR7dHlwZU5hbWV9ICR7ZnVuY3Rpb25O
YW1lfSgpCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1lfSR7c2l6ZX0oJHtpbml0aWFs
aXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHguJHtlbGVtZW50c1tpXX0gPSAzNDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4geC4ke2VsZW1lbnRzW2ldfTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIGA7Ci0gICAgICAgICAgICAgICAgdGVzdHMucHVzaCh7
IHR5cGU6IHR5cGVOYW1lLCBuYW1lOiBmdW5jdGlvbk5hbWUsIGV4cGVjdGF0aW9uOiAzNCB9KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKHNyYyk7Ci0gICAgY29uc3QgY2hlY2tGdW5jcyA9IHsKLSAgICAgICAgInVpbnQiOiBjaGVj
a1VpbnQsCi0gICAgICAgICJpbnQiOiBjaGVja0ludCwKLSAgICAgICAgImZsb2F0IjogY2hlY2tG
bG9hdAotICAgIH07Ci0gICAgZm9yIChsZXQgdGVzdCBvZiB0ZXN0cykgewotICAgICAgICBjb25z
dCBjaGVja0Z1bmMgPSBjaGVja0Z1bmNzW3Rlc3QudHlwZV07Ci0gICAgICAgIGNoZWNrRnVuYyhw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgdGVzdC5uYW1lLCBbXSwgW10pLCB0ZXN0LmV4
cGVjdGF0aW9uKTsKLSAgICB9Ci19Ci0KLXRlc3RzLmJ1aWx0aW5WZWN0b3JJbmRleFNldHRlcnMg
PSBmdW5jdGlvbigpCi17Ci0gICAgY29uc3QgdHlwZU5hbWVzID0gWyAidWludCIsICJpbnQiLCAi
ZmxvYXQiIF07Ci0gICAgY29uc3Qgc2l6ZXMgPSBbIDIsIDMsIDQgXTsKLSAgICBjb25zdCBlbGVt
ZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Ci0gICAgY29uc3QgaW5pdGlhbGl6ZXJMaXN0
ID0gWyAxLCAyLCAzLCA0IF07Ci0KLSAgICBsZXQgdGVzdHMgPSBbXTsKLSAgICBsZXQgc3JjID0g
IiI7Ci0gICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7Ci0gICAgICAgIGZvciAo
bGV0IHNpemUgb2Ygc2l6ZXMpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6
ZTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7dHlwZU5h
bWV9JHtzaXplfSR7ZWxlbWVudHNbaV19YDsKLSAgICAgICAgICAgICAgICBzcmMgKz0gYHRlc3Qg
JHt0eXBlTmFtZX0gJHtmdW5jdGlvbk5hbWV9KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3R5cGVOYW1lfSR7c2l6ZX0geCA9ICR7dHlw
ZU5hbWV9JHtzaXplfSgke2luaXRpYWxpemVyTGlzdC5zbGljZSgwLCBzaXplKS5qb2luKCIsICIp
fSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeFske2l9XSA9IDM0OwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB4WyR7aX1dOwotICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYDsKLSAgICAgICAgICAgICAgICB0ZXN0cy5w
dXNoKHsgdHlwZTogdHlwZU5hbWUsIG5hbWU6IGZ1bmN0aW9uTmFtZSwgZXhwZWN0YXRpb246IDM0
IH0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoc3JjKTsKLSAgICBjb25zdCBjaGVja0Z1bmNzID0gewotICAgICAgICAidWludCI6
IGNoZWNrVWludCwKLSAgICAgICAgImludCI6IGNoZWNrSW50LAotICAgICAgICAiZmxvYXQiOiBj
aGVja0Zsb2F0Ci0gICAgfTsKLSAgICBmb3IgKGxldCB0ZXN0IG9mIHRlc3RzKSB7Ci0gICAgICAg
IGNvbnN0IGNoZWNrRnVuYyA9IGNoZWNrRnVuY3NbdGVzdC50eXBlXTsKLSAgICAgICAgY2hlY2tG
dW5jKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCB0ZXN0Lm5hbWUsIFtdLCBbXSksIHRl
c3QuZXhwZWN0YXRpb24pOwotICAgIH0KLX0KLQotdGVzdHMuc2ltcGxlRW51bSA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIGVudW0gRm9vIHsKLSAg
ICAgICAgICAgIFdhciwKLSAgICAgICAgICAgIEZhbWluZSwKLSAgICAgICAgICAgIFBlc3RpbGVu
Y2UsCi0gICAgICAgICAgICBEZWF0aAotICAgICAgICB9Ci0KLSAgICAgICAgRm9vIF93YXIoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vLldhcjsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRlc3QgRm9vIHdhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfd2FyKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBGb28gX2ZhbWluZSgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBGb28uRmFtaW5lOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gZmFt
aW5lKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIF9mYW1pbmUoKTsKLSAgICAgICAg
fQotCi0gICAgICAgIEZvbyBfcGVzdGlsZW5jZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBGb28uUGVzdGlsZW5jZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgRm9vIHBlc3Rp
bGVuY2UoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gX3Blc3RpbGVuY2UoKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIEZvbyBfZGVhdGgoKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gRm9vLkRlYXRoOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gZGVhdGgoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gX2RlYXRoKCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBib29sIF9lcXVhbHMoRm9vIGEsIEZvbyBiKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYSA9PSBiOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBfbm90RXF1YWxzKEZvbyBh
LCBGb28gYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgIT0gYjsKLSAgICAgICAg
fQotCi0gICAgICAgIHRlc3QgYm9vbCB0ZXN0U2ltcGxlRXF1YWwoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gX2VxdWFscyhGb28uV2FyLCBGb28uV2FyKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHRlc3QgYm9vbCB0ZXN0QW5vdGhlckVxdWFsKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIF9lcXVhbHMoRm9vLlBlc3RpbGVuY2UsIEZvby5QZXN0aWxlbmNlKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIHRlc3QgYm9vbCB0ZXN0Tm90RXF1YWwoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gX2VxdWFscyhGb28uRmFtaW5lLCBGb28uRGVhdGgpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGVzdCBib29sIHRlc3RTaW1wbGVOb3RFcXVhbCgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBfbm90RXF1YWxzKEZvby5XYXIsIEZvby5XYXIpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGVzdCBib29sIHRlc3RBbm90aGVyTm90RXF1YWwoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gX25vdEVxdWFscyhGb28uUGVzdGlsZW5jZSwgRm9vLlBlc3RpbGVu
Y2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBib29sIHRlc3ROb3ROb3RFcXVhbCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfbm90RXF1YWxzKEZvby5GYW1pbmUsIEZvby5E
ZWF0aCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgX2ludFdhcigpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBpbnQoX3dhcigpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3Qg
aW50IGludFdhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfaW50V2FyKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpbnQgX2ludEZhbWluZSgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBpbnQoX2ZhbWluZSgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50
IGludEZhbWluZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfaW50RmFtaW5lKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgX2ludFBlc3RpbGVuY2UoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gaW50KF9wZXN0aWxlbmNlKCkpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdGVzdCBpbnQgaW50UGVzdGlsZW5jZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBfaW50UGVzdGlsZW5jZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IF9pbnREZWF0aCgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBpbnQoX2RlYXRoKCkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGVzdCBpbnQgaW50RGVhdGgoKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gX2ludERlYXRoKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGludCB3YXJWYWx1
ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfd2FyKCkudmFsdWU7Ci0gICAgICAg
IH0KLQotICAgICAgICB0ZXN0IGludCBmYW1pbmVWYWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBfZmFtaW5lKCkudmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGlu
dCBwZXN0aWxlbmNlVmFsdWUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gX3Blc3Rp
bGVuY2UoKS52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50IGRlYXRoVmFsdWUo
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gX2RlYXRoKCkudmFsdWU7Ci0gICAgICAg
IH0KLQotICAgICAgICB0ZXN0IGludCB3YXJWYWx1ZUxpdGVyYWwoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gRm9vLldhci52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3Qg
aW50IGZhbWluZVZhbHVlTGl0ZXJhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBG
b28uRmFtaW5lLnZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgcGVzdGlsZW5j
ZVZhbHVlTGl0ZXJhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28uUGVzdGls
ZW5jZS52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50IGRlYXRoVmFsdWVMaXRl
cmFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aC52YWx1ZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHRlc3QgRm9vIGludFdhckJhY2t3YXJkcygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBGb28oX2ludFdhcigpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IHRlc3QgRm9vIGludEZhbWluZUJhY2t3YXJkcygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBGb28oX2ludEZhbWluZSgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgRm9vIGlu
dFBlc3RpbGVuY2VCYWNrd2FyZHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9v
KF9pbnRQZXN0aWxlbmNlKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gaW50RGVh
dGhCYWNrd2FyZHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vKF9pbnREZWF0
aCgpKTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBs
ZUVxdWFsIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2lt
cGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFs
IiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludFdhciIsIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdKSwgMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtd
KSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmVWYWx1ZSIsIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSks
IDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5l
VmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImlu
dFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10pLCAxKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRz
IiwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7Ci19Ci0KLXRlc3RzLmVudW1XaXRoTWFudWFs
VmFsdWVzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgZW51bSBGb28gewotICAgICAgICAgICAgV2FyID0gNzIsCi0gICAgICAgICAgICBGYW1pbmUg
PSAwLAotICAgICAgICAgICAgUGVzdGlsZW5jZSA9IDIzLAotICAgICAgICAgICAgRGVhdGggPSAt
NDIKLSAgICAgICAgfQotICAgICAgICB0ZXN0IEZvbyB3YXIoKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gRm9vLldhcjsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IEZvbyBmYW1pbmUo
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vLkZhbWluZTsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IEZvbyBwZXN0aWxlbmNlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIEZvby5QZXN0aWxlbmNlOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgRm9vIGRlYXRoKCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aDsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIs
IFtdKSwgNzIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZhbWluZSIsIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMjMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAtNDIpOwotfQotCi10ZXN0cy5lbnVt
V2l0aG91dFplcm8gPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgZW51bSBGb28gewotICAgICAgICAgICAgICAgIFdhciA9
IDcyLAotICAgICAgICAgICAgICAgIEZhbWluZSA9IDY0LAotICAgICAgICAgICAgICAgIFBlc3Rp
bGVuY2UgPSAyMywKLSAgICAgICAgICAgICAgICBEZWF0aCA9IC00MgotICAgICAgICAgICAgfQot
ICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0K
LXRlc3RzLmVudW1EdXBsaWNhdGVzID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGVudW0gRm9vIHsKLSAgICAgICAgICAg
ICAgICBXYXIgPSAtNDIsCi0gICAgICAgICAgICAgICAgRmFtaW5lID0gMCwKLSAgICAgICAgICAg
ICAgICBQZXN0aWxlbmNlID0gMjMsCi0gICAgICAgICAgICAgICAgRGVhdGggPSAtNDIKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IpOwotfQotCi10ZXN0cy5lbnVtV2l0aFNvbWVNYW51YWxWYWx1ZXMgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBlbnVtIEZvbyB7Ci0gICAgICAg
ICAgICBXYXIgPSA3MiwKLSAgICAgICAgICAgIEZhbWluZSwKLSAgICAgICAgICAgIFBlc3RpbGVu
Y2UgPSAwLAotICAgICAgICAgICAgRGVhdGgKLSAgICAgICAgfQotICAgICAgICB0ZXN0IEZvbyB3
YXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vLldhcjsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IEZvbyBmYW1pbmUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
Rm9vLkZhbWluZTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IEZvbyBwZXN0aWxlbmNlKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvby5QZXN0aWxlbmNlOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgRm9vIGRlYXRoKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZv
by5EZWF0aDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgNzIpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgNzMpOwotICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDApOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10p
LCAxKTsKLX0KLQotdGVzdHMudHJhcCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRyYXA7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMihpbnQgeCkKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKHggPT0gMykKLSAgICAgICAgICAgICAgICB0cmFwOwotICAgICAg
ICAgICAgcmV0dXJuIDQ7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAg
ICAgICBpbnQzIHg7Ci0gICAgICAgICAgICBmbG9hdCB5OwotICAgICAgICB9Ci0gICAgICAgIHRl
c3QgQmFyIGZvbzMoKQotICAgICAgICB7Ci0gICAgICAgICAgICB0cmFwOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7Ci0gICAgY2hl
Y2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIGNoZWNrSW50KTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCAocHJvZ2FtLCByZXN1bHQsIGV4
cGVjdGVkKSA9PiB7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgaSsrKSB7Ci0gICAg
ICAgICAgICBpZiAocmVzdWx0LmVQdHIuZ2V0KGkpICE9IGV4cGVjdGVkKQotICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcihgTm9uLXplcm8gcmV0dXJuIHZhbHVlIGF0IG9mZnNldCAke2l9
YCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLX0KLQotLyoKLXRlc3RzLnN3aXp6bGUgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBmbG9hdCBmb28oKSB7
Ci0gICAgICAgICAgICBmbG9hdDQgYmFyID0gZmxvYXQ0KDMuLCA0LiwgNS4sIDYuKTsKLSAgICAg
ICAgICAgIGZsb2F0MyBiYXogPSBiYXIuenp4OwotICAgICAgICAgICAgcmV0dXJuIGJhei56Owot
ICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGZvbzIoKSB7Ci0gICAgICAgICAgICBmbG9hdDQgYmFy
ID0gZmxvYXQ0KDMuLCA0LiwgNS4sIDYuKTsKLSAgICAgICAgICAgIGZsb2F0MyBiYXogPSBiYXIu
d3l6OwotICAgICAgICAgICAgcmV0dXJuIGJhei54OwotICAgICAgICB9Ci0gICAgICAgIGZsb2F0
IGZvbzMoKSB7Ci0gICAgICAgICAgICBmbG9hdDMgYmFyID0gZmxvYXQzKDMuLCA0LiwgNS4pOwot
ICAgICAgICAgICAgZmxvYXQyIGJheiA9IGJhci55ejsKLSAgICAgICAgICAgIGZsb2F0NCBxdWl4
ID0gYmF6Lnl5eHg7Ci0gICAgICAgICAgICByZXR1cm4gcXVpeC56OwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbXSksIDYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW10pLCA0KTsKLX0KLSovCi0KLXRlc3RzLmVudW1XaXRoRXhwbGljaXRJ
bnRCYXNlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgZW51bSBGb28gOiBpbnQgewotICAgICAgICAgICAgV2FyLAotICAgICAgICAgICAgRmFtaW5l
LAotICAgICAgICAgICAgUGVzdGlsZW5jZSwKLSAgICAgICAgICAgIERlYXRoCi0gICAgICAgIH0K
LQotICAgICAgICBGb28gX3dhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28u
V2FyOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gd2FyKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIF93YXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEZvbyBfZmFtaW5l
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvby5GYW1pbmU7Ci0gICAgICAgIH0K
LQotICAgICAgICB0ZXN0IEZvbyBmYW1pbmUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gX2ZhbWluZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgRm9vIF9wZXN0aWxlbmNlKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvby5QZXN0aWxlbmNlOwotICAgICAgICB9Ci0K
LSAgICAgICAgdGVzdCBGb28gcGVzdGlsZW5jZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBfcGVzdGlsZW5jZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgRm9vIF9kZWF0aCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7Ci0gICAgICAgIH0KLQotICAg
ICAgICB0ZXN0IEZvbyBkZWF0aCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfZGVh
dGgoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgX2VxdWFscyhGb28gYSwgRm9vIGIpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhID09IGI7Ci0gICAgICAgIH0KLQotICAgICAg
ICBib29sIF9ub3RFcXVhbHMoRm9vIGEsIEZvbyBiKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYSAhPSBiOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBib29sIHRlc3RTaW1wbGVF
cXVhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfZXF1YWxzKEZvby5XYXIsIEZv
by5XYXIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBib29sIHRlc3RBbm90aGVyRXF1YWwo
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gX2VxdWFscyhGb28uUGVzdGlsZW5jZSwg
Rm9vLlBlc3RpbGVuY2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBib29sIHRlc3ROb3RF
cXVhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfZXF1YWxzKEZvby5GYW1pbmUs
IEZvby5EZWF0aCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGJvb2wgdGVzdFNpbXBsZU5v
dEVxdWFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIF9ub3RFcXVhbHMoRm9vLldh
ciwgRm9vLldhcik7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGJvb2wgdGVzdEFub3RoZXJO
b3RFcXVhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfbm90RXF1YWxzKEZvby5Q
ZXN0aWxlbmNlLCBGb28uUGVzdGlsZW5jZSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGJv
b2wgdGVzdE5vdE5vdEVxdWFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIF9ub3RF
cXVhbHMoRm9vLkZhbWluZSwgRm9vLkRlYXRoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBf
aW50V2FyKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGludChfd2FyKCkpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgaW50V2FyKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIF9pbnRXYXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBfaW50RmFtaW5l
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGludChfZmFtaW5lKCkpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgaW50RmFtaW5lKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIF9pbnRGYW1pbmUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBfaW50UGVz
dGlsZW5jZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBpbnQoX3Blc3RpbGVuY2Uo
KSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGludCBpbnRQZXN0aWxlbmNlKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIF9pbnRQZXN0aWxlbmNlKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpbnQgX2ludERlYXRoKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGlu
dChfZGVhdGgoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGludCBpbnREZWF0aCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfaW50RGVhdGgoKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHRlc3QgaW50IHdhclZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IF93YXIoKS52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50IGZhbWluZVZhbHVl
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIF9mYW1pbmUoKS52YWx1ZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIHRlc3QgaW50IHBlc3RpbGVuY2VWYWx1ZSgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBfcGVzdGlsZW5jZSgpLnZhbHVlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdGVzdCBpbnQgZGVhdGhWYWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBf
ZGVhdGgoKS52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50IHdhclZhbHVlTGl0
ZXJhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28uV2FyLnZhbHVlOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgZmFtaW5lVmFsdWVMaXRlcmFsKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIEZvby5GYW1pbmUudmFsdWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICB0ZXN0IGludCBwZXN0aWxlbmNlVmFsdWVMaXRlcmFsKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIEZvby5QZXN0aWxlbmNlLnZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAg
dGVzdCBpbnQgZGVhdGhWYWx1ZUxpdGVyYWwoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gRm9vLkRlYXRoLnZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gaW50V2Fy
QmFja3dhcmRzKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvbyhfaW50V2FyKCkp
OwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gaW50RmFtaW5lQmFja3dhcmRzKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvbyhfaW50RmFtaW5lKCkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGVzdCBGb28gaW50UGVzdGlsZW5jZUJhY2t3YXJkcygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBGb28oX2ludFBlc3RpbGVuY2UoKSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0ZXN0IEZvbyBpbnREZWF0aEJhY2t3YXJkcygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBGb28oX2ludERlYXRoKCkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCAwKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSks
IDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2UiLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImRlYXRoIiwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1
YWwiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSksIHRydWUpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwgW10pLCAwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdKSwgMSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNl
IiwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludERlYXRoIiwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10pLCAxKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdKSwgMik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
IiwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
IndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSksIDEpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJh
bCIsIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwgMyk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10pLCAwKTsKLSAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMi
LCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoQmFja3dhcmRzIiwgW10pLCAzKTsKLX0K
LQotdGVzdHMuZW51bVdpdGhVaW50QmFzZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIGVudW0gRm9vIDogdWludCB7Ci0gICAgICAgICAgICBXYXIs
Ci0gICAgICAgICAgICBGYW1pbmUsCi0gICAgICAgICAgICBQZXN0aWxlbmNlLAotICAgICAgICAg
ICAgRGVhdGgKLSAgICAgICAgfQotCi0gICAgICAgIEZvbyBfd2FyKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIEZvby5XYXI7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IEZvbyB3
YXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gX3dhcigpOwotICAgICAgICB9Ci0K
LSAgICAgICAgRm9vIF9mYW1pbmUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9v
LkZhbWluZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgRm9vIGZhbWluZSgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBfZmFtaW5lKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBG
b28gX3Blc3RpbGVuY2UoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vLlBlc3Rp
bGVuY2U7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IEZvbyBwZXN0aWxlbmNlKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIF9wZXN0aWxlbmNlKCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBGb28gX2RlYXRoKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0
aDsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgRm9vIGRlYXRoKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIF9kZWF0aCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBfZXF1
YWxzKEZvbyBhLCBGb28gYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsK
LSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgX25vdEVxdWFscyhGb28gYSwgRm9vIGIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhICE9IGI7Ci0gICAgICAgIH0KLQotICAgICAgICB0
ZXN0IGJvb2wgdGVzdFNpbXBsZUVxdWFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IF9lcXVhbHMoRm9vLldhciwgRm9vLldhcik7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IGJv
b2wgdGVzdEFub3RoZXJFcXVhbCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfZXF1
YWxzKEZvby5QZXN0aWxlbmNlLCBGb28uUGVzdGlsZW5jZSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICB0ZXN0IGJvb2wgdGVzdE5vdEVxdWFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IF9lcXVhbHMoRm9vLkZhbWluZSwgRm9vLkRlYXRoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRl
c3QgYm9vbCB0ZXN0U2ltcGxlTm90RXF1YWwoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gX25vdEVxdWFscyhGb28uV2FyLCBGb28uV2FyKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRl
c3QgYm9vbCB0ZXN0QW5vdGhlck5vdEVxdWFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIF9ub3RFcXVhbHMoRm9vLlBlc3RpbGVuY2UsIEZvby5QZXN0aWxlbmNlKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHRlc3QgYm9vbCB0ZXN0Tm90Tm90RXF1YWwoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gX25vdEVxdWFscyhGb28uRmFtaW5lLCBGb28uRGVhdGgpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdWludCBfdWludFdhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiB1aW50KF93YXIoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IHVpbnQgdWludFdh
cigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfdWludFdhcigpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdWludCBfdWludEZhbWluZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiB1aW50KF9mYW1pbmUoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IHVpbnQgdWlu
dEZhbWluZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfdWludEZhbWluZSgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdWludCBfdWludFBlc3RpbGVuY2UoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gdWludChfcGVzdGlsZW5jZSgpKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRlc3QgdWludCB1aW50UGVzdGlsZW5jZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBfdWludFBlc3RpbGVuY2UoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHVpbnQgX3VpbnRE
ZWF0aCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB1aW50KF9kZWF0aCgpKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHRlc3QgdWludCB1aW50RGVhdGgoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gX3VpbnREZWF0aCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCB1
aW50IHdhclZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIF93YXIoKS52YWx1
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgdWludCBmYW1pbmVWYWx1ZSgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBfZmFtaW5lKCkudmFsdWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICB0ZXN0IHVpbnQgcGVzdGlsZW5jZVZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIF9wZXN0aWxlbmNlKCkudmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0IHVp
bnQgZGVhdGhWYWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBfZGVhdGgoKS52
YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgdWludCB3YXJWYWx1ZUxpdGVyYWwoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vLldhci52YWx1ZTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHRlc3QgdWludCBmYW1pbmVWYWx1ZUxpdGVyYWwoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gRm9vLkZhbWluZS52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRl
c3QgdWludCBwZXN0aWxlbmNlVmFsdWVMaXRlcmFsKCkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIEZvby5QZXN0aWxlbmNlLnZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCB1
aW50IGRlYXRoVmFsdWVMaXRlcmFsKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEZv
by5EZWF0aC52YWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgRm9vIHVpbnRXYXJCYWNr
d2FyZHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vKF91aW50V2FyKCkpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdGVzdCBGb28gdWludEZhbWluZUJhY2t3YXJkcygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28oX3VpbnRGYW1pbmUoKSk7Ci0gICAgICAgIH0K
LQotICAgICAgICB0ZXN0IEZvbyB1aW50UGVzdGlsZW5jZUJhY2t3YXJkcygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBGb28oX3VpbnRQZXN0aWxlbmNlKCkpOwotICAgICAgICB9Ci0K
LSAgICAgICAgdGVzdCBGb28gdWludERlYXRoQmFja3dhcmRzKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIEZvbyhfdWludERlYXRoKCkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCAwKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBb
XSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBl
c3RpbGVuY2UiLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90
RXF1YWwiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSksIHRydWUpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBbXSksIDApOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRGYW1pbmUiLCBbXSks
IDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQ
ZXN0aWxlbmNlIiwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAwKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlIiwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJkZWF0aFZhbHVlIiwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtd
KSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMi
LCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InVpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhC
YWNrd2FyZHMiLCBbXSksIDMpOwotfQotCi10ZXN0cy5lbnVtRmxvYXRCYXNlID0gZnVuY3Rpb24o
KQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IGVudW0gRm9vIDogZmxvYXQgewotICAgICAgICAgICAgICAgIEJhcgotICAgICAgICAgICAgfQot
ICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0K
LXRlc3RzLmVudW1QdHJCYXNlID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGVudW0gRm9vIDogdGhyZWFkIGludCogewot
ICAgICAgICAgICAgICAgIEJhcgotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmVudW1BcnJheVJlZkJh
c2UgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgZW51bSBGb28gOiB0aHJlYWQgaW50W10gewotICAgICAgICAgICAgICAg
IEJhcgotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmVtcHR5U3RydWN0ID0gZnVuY3Rpb24oKQotewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IFRoaW5neSB7IH0KLSAg
ICAgICAgdGVzdCBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgVGhpbmd5IHRoaW5n
eTsKLSAgICAgICAgICAgIHJldHVybiA0NjsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Nik7Ci19Ci0K
LXRlc3RzLmVudW1TdHJ1Y3RCYXNlID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBUaGluZ3kgeyB9Ci0gICAg
ICAgICAgICBlbnVtIEZvbyA6IFRoaW5neSB7Ci0gICAgICAgICAgICAgICAgQmFyCi0gICAgICAg
ICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
KTsKLX0KLQotdGVzdHMuZW51bU5vTWVtYmVycyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0Zh
aWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBlbnVtIEZvbyB7IH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10
ZXN0cy5zaW1wbGVTd2l0Y2ggPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHN3aXRjaCAoeCkgewotICAgICAgICAgICAgY2FzZSA3Njc6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIDI3OwotICAgICAgICAgICAgY2FzZSA2OToKLSAgICAgICAgICAgICAgICByZXR1cm4gNzYy
NDsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDQ5OwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKLX0KLQot
dGVzdHMuZXhoYXVzdGl2ZVVjaGFyU3dpdGNoID0gZnVuY3Rpb24oKQotewotICAgIGxldCB0ZXh0
ID0gInRlc3QgZmxvYXQgZm9vKHVjaGFyIHgpIHsgc3dpdGNoICh1Y2hhcih4KSkgeyIKLSAgICBm
b3IgKGxldCBpID0gMDsgaSA8PSAweGZmOyArK2kpCi0gICAgICAgIHRleHQgKz0gImNhc2UgIiAr
IGkgKyAiOiByZXR1cm4gIiArIGkgKiAxLjUgKyAiOyI7Ci0gICAgdGV4dCArPSAifSB9IjsKLSAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCh0ZXh0KTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4
ZmY7ICsraSkKLSAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWNoYXIocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7Ci19Ci0KLXRlc3Rz
Lm5vdFF1aXRlRXhoYXVzdGl2ZVVjaGFyU3dpdGNoID0gZnVuY3Rpb24oKQotewotICAgIGxldCB0
ZXh0ID0gInRlc3QgZmxvYXQgZm9vKHVjaGFyIHgpIHsgc3dpdGNoICh1Y2hhcih4KSkgeyIKLSAg
ICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZlOyArK2kpCi0gICAgICAgIHRleHQgKz0gImNhc2Ug
IiArIGkgKyAiOiByZXR1cm4gIiArIGkgKiAxLjUgKyAiOyI7Ci0gICAgdGV4dCArPSAifSB9IjsK
LSAgICBjaGVja0ZhaWwoKCkgPT4gZG9QcmVwKHRleHQpLCBlID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yKTsKLX0KLQotdGVzdHMubm90UXVpdGVFeGhhdXN0aXZlVWNoYXJTd2l0Y2hXaXRoRGVm
YXVsdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgdGV4dCA9ICJ0ZXN0IGZsb2F0IGZvbyh1Y2hh
ciB4KSB7IHN3aXRjaCAodWNoYXIoeCkpIHsiCi0gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZTsgKytpKQotICAgICAgICB0ZXh0ICs9ICJjYXNlICIgKyBpICsgIjogcmV0dXJuICIgKyBpICog
MS41ICsgIjsiOwotICAgIHRleHQgKz0gImRlZmF1bHQ6IHJldHVybiAiICsgMHhmZiAqIDEuNSAr
ICI7IjsKLSAgICB0ZXh0ICs9ICJ9IH0iOwotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHRleHQp
OwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMHhmZjsgKytpKQotICAgICAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVY2hhcihwcm9ncmFt
LCBpKV0pLCBpICogMS41KTsKLX0KLQotdGVzdHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlv
bigpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgYmVjb21lIGFuIGVycm9yIGluIGZ1dHVy
ZSB2ZXJzaW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3MTcyCi0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBm
b28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAg
ICAgICAgc3dpdGNoICh4KSB7Ci0gICAgICAgICAgICBjYXNlIDc2NzoKLSAgICAgICAgICAgICAg
ICByZXN1bHQgKz0gMjc7Ci0gICAgICAgICAgICBjYXNlIDY5OgotICAgICAgICAgICAgICAgIHJl
c3VsdCArPSA3NjI0OwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXN1
bHQgKz0gNDk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3ICsgNzYyNCArIDQ5KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDY5KV0pLCA3NjI0ICsgNDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwotfQot
Ci10ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAg
ICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBzd2l0Y2ggKHgpIHsKLSAgICAgICAgICAg
IGNhc2UgNzY3OgotICAgICAgICAgICAgICAgIHJlc3VsdCArPSAyNzsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNjk6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9
IDc2MjQ7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgIHJlc3VsdCArPSA0OTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDc2NyldKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDkpOwotfQotCi10ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZl
ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgZW51
bSBGb28gewotICAgICAgICAgICAgQSwgQiwgQwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50
IGZvbyhGb28geCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAg
ICAgICAgICBzd2l0Y2ggKHgpIHsKLSAgICAgICAgICAgIGNhc2UgRm9vLkE6Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0ICs9IDI3OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBGb28uQjoKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gNzYyNDsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgRm9vLkM6Ci0gICAgICAgICAgICAgICAgcmVz
dWx0ICs9IDQ5OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJG
b28iLCAiQSIpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIiKV0pLCA3NjI0KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51
bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7Ci19Ci0KLXRlc3RzLmVudW1Td2l0Y2hCcmVh
a05vdFF1aXRlRXhoYXVzdGl2ZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBlbnVtIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgQSwgQiwgQywgRAotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW50IGZvbyhGb28geCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHgpIHsKLSAgICAgICAgICAgICAgICBjYXNlIEZvby5BOgotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gMjc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgRm9vLkI6Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCAr
PSA3NjI0OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNl
IEZvby5DOgotICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gNDk7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmVudW1Td2l0Y2hCcmVha05vdFF1aXRlRXho
YXVzdGl2ZVdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgZW51bSBGb28gewotICAgICAgICAgICAgQSwgQiwgQwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgaW50IGZvbyhGb28geCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50
IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBzd2l0Y2ggKHgpIHsKLSAgICAgICAgICAgIGNhc2Ug
Rm9vLkE6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IDI3OwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSBGb28uQjoKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0g
NzYyNDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICAgICAgcmVzdWx0ICs9IDQ5OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VF
bnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIi
KV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7Ci19Ci0KLXRlc3Rz
LnNpbXBsZVJlY3Vyc2l2ZVN0cnVjdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAg
ICAgICAgICBGb28gZm9vOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm11dHVhbGx5UmVjdXJzaXZl
U3RydWN0ID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIEJhciBiYXI7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgICAg
ICBGb28gZm9vOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0
V2l0aFBvaW50ZXJzQnJva2VuID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgQmFyKiBiYXI7
Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewot
ICAgICAgICAgICAgdGhyZWFkIEZvbyogZm9vOwotICAgICAgICAgICAgaW50IGJhcjsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28g
Zm9vOwotICAgICAgICAgICAgQmFyIGJhcjsKLSAgICAgICAgICAgIGZvby5mb28gPSA1NjQ7Ci0g
ICAgICAgICAgICBiYXIuYmFyID0gNTM7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmJhci0+YmFy
IC0gYmFyLmZvby0+Zm9vOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dy
YW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci19
Ci0KLXRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzID0gZnVuY3Rpb24o
KQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0g
ICAgICAgICAgICB0aHJlYWQgQmFyKiBiYXI7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAg
ICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAgdGhyZWFkIEZvbyogZm9vOwot
ICAgICAgICAgICAgaW50IGJhcjsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28oKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBGb28gZm9vOwotICAgICAgICAgICAgQmFyIGJhcjsKLSAg
ICAgICAgICAgIGZvby5iYXIgPSAmYmFyOwotICAgICAgICAgICAgYmFyLmZvbyA9ICZmb287Ci0g
ICAgICAgICAgICBmb28uZm9vID0gNTY0OwotICAgICAgICAgICAgYmFyLmJhciA9IDUzOwotICAg
ICAgICAgICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZvbzsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAtNTExKTsKLX0KLQotdGVzdHMubGlua2VkTGlzdCA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBOb2RlIHsKLSAgICAgICAg
ICAgIHRocmVhZCBOb2RlKiBuZXh0OwotICAgICAgICAgICAgaW50IHZhbHVlOwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIE5vZGUgeCwg
eSwgejsKLSAgICAgICAgICAgIHgubmV4dCA9ICZ5OwotICAgICAgICAgICAgeS5uZXh0ID0gJno7
Ci0gICAgICAgICAgICB4LnZhbHVlID0gMTsKLSAgICAgICAgICAgIHkudmFsdWUgPSAyOwotICAg
ICAgICAgICAgei52YWx1ZSA9IDM7Ci0gICAgICAgICAgICByZXR1cm4geC5uZXh0LT5uZXh0LT52
YWx1ZTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKLX0KLQotdGVzdHMucG9pbnRlclRvUG9pbnRl
ciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAg
dGhyZWFkIGludCogcCA9ICZ4OwotICAgICAgICAgICAgdGhyZWFkIGludCoqIHBwID0gJnA7Ci0g
ICAgICAgICAgICBpbnQqdGhyZWFkKnRocmVhZCBxcSA9IHBwOwotICAgICAgICAgICAgaW50IHJl
c3VsdCA9IDA7Ci0gICAgICAgICAgICB4ID0gNDI7Ci0gICAgICAgICAgICAqcCA9IDc2OwotICAg
ICAgICAgICAgcmVzdWx0ICs9IHg7Ci0gICAgICAgICAgICAqKnBwID0gMzk7Ci0gICAgICAgICAg
ICByZXN1bHQgKz0geDsKLSAgICAgICAgICAgICoqcXEgPSA4MzsKLSAgICAgICAgICAgIHJlc3Vs
dCArPSB4OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3
NiArIDM5ICsgODMpOwotfQotCi10ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigp
Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSBw
ID0gQHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W11bXSBwcCA9IEBwOwotICAgICAgICAgICAg
aW50W110aHJlYWRbXXRocmVhZCBxcSA9IHBwOwotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7
Ci0gICAgICAgICAgICB4ID0gNDI7Ci0gICAgICAgICAgICBwWzBdID0gNzY7Ci0gICAgICAgICAg
ICByZXN1bHQgKz0geDsKLSAgICAgICAgICAgIHBwWzBdWzBdID0gMzk7Ci0gICAgICAgICAgICBy
ZXN1bHQgKz0geDsKLSAgICAgICAgICAgIHFxWzBdWzBdID0gODM7Ci0gICAgICAgICAgICByZXN1
bHQgKz0geDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
NzYgKyAzOSArIDgzKTsKLX0KLQotdGVzdHMucG9pbnRlckdldHRlciA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQg
b3BlcmF0b3IuZm9vKGRldmljZSBpbnQqKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHJldHVybiA1NDM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3IuZm9vKHRocmVhZCBpbnQqKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiA1NDM7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3Iu
Zm9vKHRocmVhZGdyb3VwIGludCopCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIDU0MzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvci5mb28oY29uc3RhbnQgaW50KikKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gNTQzOwotICAgICAgICAgICAgfQotICAgICAg
ICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3Rz
LmxvbmVTZXR0ZXIgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yLmZvbz0oaW50LCBpbnQpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDU0MzsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10
ZXN0cy5zZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgZmxvYXQgb3BlcmF0b3Iu
Zm9vKGludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gNS40MzsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvci5mb289KGludCwgaW50KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiA1NDM7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQot
dGVzdHMuc2V0dGVyV2l0aE1hdGNoZWRUeXBlID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJlcChg
Ci0gICAgICAgIGludCBvcGVyYXRvci5mb28oaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gNTsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3IuZm9vPShpbnQsIGludCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDU0MzsKLSAgICAgICAgfQotICAgIGApOwot
fQotCi10ZXN0cy5vcGVyYXRvcldpdGhvdXRVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5j
dGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9v
IHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvciso
Rm9vIGEsIEZvbyBiKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAg
ICAgICAgcmVzdWx0LnggPSBhLnggKyBiLng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEZvbyBhOwotICAgICAgICAgICAgYS54ID0gNjQ1OwotICAgICAgICAgICAgRm9vIGI7Ci0gICAg
ICAgICAgICBiLnggPSAtMzU7Ci0gICAgICAgICAgICByZXR1cm4gKGEgKyBiKS54OwotICAgICAg
ICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSksIDY0NSAtIDM1KTsKLX0KLQotdGVzdHMuaW5jV3JvbmdBcmd1bWVudExlbmd0
aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChg
Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3IrKygpIHsgcmV0dXJuIDMyOyB9Ci0gICAgICAgIGAp
LAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3IrKyhpbnQs
IGludCkgeyByZXR1cm4gNzY7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5kZWNXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gZnVu
Y3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIGludCBvcGVyYXRvci0tKCkgeyByZXR1cm4gMzI7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvci0tKGludCwgaW50KSB7
IHJldHVybiA3NjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmluY1dyb25nVHlwZXMgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJh
dG9yKysoZmxvYXQpIHsgcmV0dXJuIDMyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMuZGVjV3JvbmdUeXBlcyA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3ItLShmbG9hdCkgeyByZXR1cm4gMzI7IH0KLSAgICAgICAgYCksCi0g
ICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5wbHVzV3Jv
bmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3IrKCkgeyByZXR1cm4gMzI7
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBv
cGVyYXRvcisoaW50LCBpbnQsIGludCkgeyByZXR1cm4gNzY7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5taW51c1dyb25n
QXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yLSgpIHsgcmV0dXJuIDMyOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAg
ICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3Bl
cmF0b3ItKGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDc2OyB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMudGltZXNXcm9uZ0Fy
Z3VtZW50TGVuZ3RoID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvciooKSB7IHJldHVybiAzMjsgfQot
ICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJh
dG9yKihpbnQpIHsgcmV0dXJuIDUzNDsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yKihpbnQsIGludCwgaW50KSB7IHJldHVybiA3
NjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7
Ci19Ci0KLXRlc3RzLmRpdmlkZVdyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9w
ZXJhdG9yLygpIHsgcmV0dXJuIDMyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3IvKGludCkgeyByZXR1cm4gNTM0OyB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3Iv
KGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDc2OyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMubW9kdWxvV3JvbmdBcmd1bWVu
dExlbmd0aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3IlKCkgeyByZXR1cm4gMzI7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNr
RmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvciUo
aW50KSB7IHJldHVybiA1MzQ7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIGludCBvcGVyYXRvciUoaW50LCBpbnQsIGludCkgeyByZXR1cm4gNzY7IH0K
LSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQot
Ci10ZXN0cy5iaXRBbmRXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gZnVuY3Rpb24oKQotewotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRv
ciYoKSB7IHJldHVybiAzMjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgaW50IG9wZXJhdG9yJihpbnQpIHsgcmV0dXJuIDUzNDsgfQotICAgICAgICBg
KSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yJihpbnQs
IGludCwgaW50KSB7IHJldHVybiA3NjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmJpdE9yV3JvbmdBcmd1bWVudExlbmd0
aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChg
Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3J8KCkgeyByZXR1cm4gMzI7IH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvcnwoaW50KSB7
IHJldHVybiA1MzQ7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIGludCBvcGVyYXRvcnwoaW50LCBpbnQsIGludCkgeyByZXR1cm4gNzY7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0
cy5iaXRYb3JXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvcl4oKSB7
IHJldHVybiAzMjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAg
ICAgICAgaW50IG9wZXJhdG9yXihpbnQpIHsgcmV0dXJuIDUzNDsgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yXihpbnQsIGludCwg
aW50KSB7IHJldHVybiA3NjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmxTaGlmdFdyb25nQXJndW1lbnRMZW5ndGggPSBm
dW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAg
ICAgICAgICAgaW50IG9wZXJhdG9yPDwoKSB7IHJldHVybiAzMjsgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yPDwoaW50KSB7IHJl
dHVybiA1MzQ7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcjw8KGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDc2OyB9Ci0gICAgICAg
IGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMu
clNoaWZ0V3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3I+PigpIHsg
cmV0dXJuIDMyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3I+PihpbnQpIHsgcmV0dXJuIDUzNDsgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yPj4oaW50LCBpbnQs
IGludCkgeyByZXR1cm4gNzY7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5iaXROb3RXcm9uZ0FyZ3VtZW50TGVuZ3RoID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIGludCBvcGVyYXRvcn4oKSB7IHJldHVybiAzMjsgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yfihpbnQsIGludCkg
eyByZXR1cm4gNTM0OyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yKTsKLX0KLQotdGVzdHMuZXF1YWxzV3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICBib29sIG9wZXJhdG9yPT0oKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oaW50KSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICBib29sIG9wZXJhdG9yPT0oaW50LCBpbnQsIGludCkgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRl
c3RzLmxlc3NUaGFuV3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBib29sIG9wZXJhdG9y
PCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8KGludCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAg
ICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjwo
aW50LCBpbnQsIGludCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmxlc3NFcXVhbFdyb25nQXJn
dW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw9KCkgeyByZXR1cm4gdHJ1ZTsg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgYm9vbCBv
cGVyYXRvcjw9KGludCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw9KGludCwgaW50LCBpbnQpIHsg
cmV0dXJuIHRydWU7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotfQotCi10ZXN0cy5ncmVhdGVyV3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICBib29sIG9wZXJhdG9yPigpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+KGludCkgeyByZXR1
cm4gdHJ1ZTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgYm9vbCBvcGVyYXRvcj4oaW50LCBpbnQsIGludCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAg
ICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3Rz
LmdyZWF0ZXJFcXVhbFdyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCi17Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgYm9vbCBvcGVyYXRv
cj49KCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj49KGludCkgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgYm9vbCBvcGVyYXRv
cj49KGludCwgaW50LCBpbnQpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5lcXVhbHNXcm9uZ1Jl
dHVyblR5cGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBk
b1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yPT0oaW50IGEsIGludCBiKSB7IHJldHVy
biBhICsgYjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Ci19Ci0KLXRlc3RzLm5vdEVxdWFsc092ZXJsb2FkID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBG
b28geyB9Ci0gICAgICAgICAgICBib29sIG9wZXJhdG9yIT0oRm9vLCBGb28pIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJv
cik7Ci19Ci0KLXRlc3RzLmxlc3NUaGFuV3JvbmdSZXR1cm5UeXBlID0gZnVuY3Rpb24oKQotewot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBv
cGVyYXRvcjwoaW50IGEsIGludCBiKSB7IHJldHVybiBhICsgYjsgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmxlc3NFcXVh
bFdyb25nUmV0dXJuVHlwZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3I8PShpbnQgYSwgaW50IGIp
IHsgcmV0dXJuIGEgKyBiOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMuZ3JlYXRlclRoYW5Xcm9uZ1JldHVyblR5cGUgPSBm
dW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAg
ICAgICAgICAgaW50IG9wZXJhdG9yPihpbnQgYSwgaW50IGIpIHsgcmV0dXJuIGEgKyBiOyB9Ci0g
ICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQot
dGVzdHMuZ3JlYXRlckVxdWFsV3JvbmdSZXR1cm5UeXBlID0gZnVuY3Rpb24oKQotewotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRv
cj49KGludCBhLCBpbnQgYikgeyByZXR1cm4gYSArIGI7IH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5kb3RPcGVyYXRvcldy
b25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yLmZvbygpIHsgcmV0dXJu
IDQyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
KTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBz
dHJ1Y3QgRm9vIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yLmZvbyhGb28sIGludCkgeyBy
ZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IpOwotfQotCi10ZXN0cy5kb3RPcGVyYXRvclNldHRlcldyb25nQXJndW1lbnRMZW5ndGgg
PSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KLSAgICAgICAgICAgIEZvbyBvcGVyYXRvci5mb289
KCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHN0cnVjdCBGb28geyB9Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3IuZm9vPShG
b28pIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQotICAgICAgICAgICAgRm9vIG9wZXJhdG9yLmZvbz0o
Rm9vLCBpbnQsIGludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5sb25lU2V0dGVyUG9pbnRlciA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvci5mb289KHRocmVhZCBpbnQqIHB0ciwgaW50
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBwdHI7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
LX0KLQotdGVzdHMuc2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWQgPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0
IEZvbyB7IH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3Bl
cmF0b3IuZm9vKEZvbykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gNTM0
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yLmZvbz0oQmFyLCBpbnQp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEJhcigpOwotICAgICAgICAg
ICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7
Ci19Ci0KLXRlc3RzLnNldHRlcldpdGhOb0dldHRlck92ZXJsb2FkRml4ZWQgPSBmdW5jdGlvbigp
Ci17Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgaW50IG9w
ZXJhdG9yLmZvbyhCYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiA1MzQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9yLmZvbz0oQmFyLCBpbnQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBCYXIoKTsKLSAgICAgICAgfQotICAgIGApOwotfQotCi10ZXN0cy5h
bmRlcldpdGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAg
ICB9Ci0gICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJi5mb28odGhyZWFkIEZvbyogZm9vKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gJmZvby0+eDsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28geDsKLSAgICAgICAg
ICAgIHgueCA9IDEzOwotICAgICAgICAgICAgcmV0dXJuIHguZm9vOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDEzKTsKLX0KLQotdGVzdHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAg
ICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciYuZm9vKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJng7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1
Y3QgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJi5mb28odGhyZWFkIEZvbyogZm9vLCBpbnQgYmxhaCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gJmZvby0+eDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ip
OwotfQotCi10ZXN0cy5hbmRlckRvZXNudFJldHVyblBvaW50ZXIgPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0
IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpbnQgb3BlcmF0b3ImLmZvbyh0aHJlYWQgRm9vKiBmb28pCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZvby0+eDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0g
ICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5hbmRlckRv
ZXNudFRha2VSZWZlcmVuY2UgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAg
ICAgaW50IHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRv
ciYuZm9vKEZvbyBmb28pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZm
b28ueDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5hbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewot
ICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0
b3ImLmZvbyh0aHJlYWQgRm9vW10gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
JmZvb1swXS54OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEZvbyB4OwotICAgICAgICAgICAgeC54ID0gMTM7Ci0gICAgICAgICAgICBy
ZXR1cm4gKEB4KS5mb287Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwotfQotCi10ZXN0cy5hbmRl
cldpdGhCYWRJbmRleCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgaW50IGZvbyh0aHJlYWQgaW50W10geCkgeyByZXR1cm4geFstMV07IH0KLSAg
ICBgKSwgZSA9PiBlIGluc3RhbmNlb2YgRXJyb3IpOwotCi0gICAgY2hlY2tGYWlsKCgpID0+IGRv
UHJlcChgCi0gICAgICAgIGludCBmb28odGhyZWFkIGludFtdIHgpIHsgcmV0dXJuIHhbMS5mXTsg
fQotICAgIGApLCBlID0+IGUgaW5zdGFuY2VvZiBFcnJvcik7Ci0KLSAgICBjaGVja0ZhaWwoKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgaW50IGZvbyh0aHJlYWQgaW50W10geCwgaW50IHkpIHsgcmV0
dXJuIHhbeV07IH0KLSAgICBgKSwgZSA9PiBlIGluc3RhbmNlb2YgRXJyb3IpOwotCi0gICAgY2hl
Y2tGYWlsKCgpID0+IGRvUHJlcChgCi0gICAgICAgIGludCBmb28odGhyZWFkIGludFtdIHgsIGZs
b2F0IHkpIHsgcmV0dXJuIHhbeV07IH0KLSAgICBgKSwgZSA9PiBlIGluc3RhbmNlb2YgRXJyb3Ip
OwotfQotCi10ZXN0cy5wb2ludGVySW5kZXhHZXR0ZXIgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9y
W10oZGV2aWNlIGludCosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIDU0MzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKHRocmVhZCBpbnQqLCB1aW50KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiA1NDM7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3Jb
XSh0aHJlYWRncm91cCBpbnQqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHJldHVybiA1NDM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShjb25zdGFudCBpbnQqLCB1aW50KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiA1NDM7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0K
LQotdGVzdHMubG9uZUluZGV4U2V0dGVyID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShpbnQs
IHVpbnQsIGludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gNTQzOwot
ICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm5vdExvbmVJbmRleFNldHRlciA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBkb1ByZXAoYAotICAgICAgICBpbnQgb3BlcmF0b3JbXShpbnQsIHVpbnQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiA2NTsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0
b3JbXT0oaW50LCB1aW50LCBpbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiA1NDM7
Ci0gICAgICAgIH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hl
ZFR5cGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgZmxvYXQgb3BlcmF0b3JbXShpbnQsIHVpbnQpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDUuNDM7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXT0oaW50LCB1aW50LCBpbnQpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIDU0MzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlNl
dHRlciBhbmQgZ2V0dGVyIG11c3QgYWdyZWUgb24gdmFsdWUgdHlwZSIpICE9IC0xKTsKLX0KLQot
dGVzdHMuaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9w
ZXJhdG9yW10oKSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oaW50KSB7IHJldHVybiA0MjsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgaW50IG9wZXJhdG9y
W10oaW50LCBpbnQsIGludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yU2V0
dGVyV3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oKSB7IHJl
dHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgaW50IG9wZXJhdG9yW109KGludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShpbnQsIGludCkg
eyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdPShpbnQsIGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDQyOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0K
LQotdGVzdHMubG9uZUluZGV4U2V0dGVyUG9pbnRlciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICB0aHJlYWQgaW50KiBv
cGVyYXRvcltdPSh0aHJlYWQgaW50KiBwdHIsIHVpbnQsIGludCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcHRyOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmluZGV4U2V0
dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWQgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KLSAgICAg
ICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVp
bnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDUzNDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gQmFyKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQot
dGVzdHMuaW5kZXhTZXR0ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZEZpeGVkID0gZnVuY3Rpb24oKQot
ewotICAgIGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVy
YXRvcltdKEJhciwgdWludCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDUzNDsKLSAg
ICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBCYXIoKTsKLSAgICAgICAgfQotICAgIGApOwotfQotCi10
ZXN0cy5pbmRleEFuZGVyV2l0aE5vdGhpbmdXcm9uZyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50
IHg7Ci0gICAgICAgIH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZv
byogZm9vLCB1aW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gJmZvby0+eDsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBG
b28geDsKLSAgICAgICAgICAgIHgueCA9IDEzOwotICAgICAgICAgICAgcmV0dXJuIHhbNjY2XTsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCAxMyk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJXaXRoV3JvbmdO
dW1iZXJPZkFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSgpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuICZ4OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9v
KiBmb28pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPng7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAg
ICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWlu
dCwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gJmZvby0+eDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyRG9lc250UmV0dXJuUG9pbnRlciA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAg
ICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZvby0+eDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIlJldHVybiB0eXBlIG9mIGFuZGVyIGlzIG5vdCBhIHBvaW50ZXIi
KSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRUYWtlUmVmZXJlbmNlID0gZnVu
Y3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oRm9vIGZvbywgdWludCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gJmZvby54OwotICAgICAgICAgICAg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiUGFyYW1ldGVyIHRvIGFuZGVyIGlzIG5vdCBhIHJlZmVyZW5jZSIp
ICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAg
ICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3Im
W10odGhyZWFkIEZvb1tdIGFycmF5LCBmbG9hdCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuICZhcnJheVt1aW50KGluZGV4ICsgMSldLng7Ci0gICAgICAgIH0KLSAgICAgICAg
dGVzdCBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHg7Ci0gICAgICAgICAg
ICB4LnggPSAxMzsKLSAgICAgICAgICAgIHJldHVybiAoQHgpW2Zsb2F0KC0xKV07Ci0gICAgICAg
IH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgMTMpOwotfQotCi10ZXN0cy5hbmRSZXR1cm5lZEFycmF5UmVmID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGhyZWFkIGludFtd
IGdldEFycmF5KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50WzEwXSB4OwotICAgICAgICAg
ICAgeFs1XSA9IDM1NDsKLSAgICAgICAgICAgIHJldHVybiBAeDsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBwdHIg
PSAmZ2V0QXJyYXkoKVs1XTsKLSAgICAgICAgICAgIHJldHVybiAqcHRyOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDM1NCk7Ci19Ci0KLXRlc3RzLnNoYWRlclN0YWdlcyA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgUmVzdWx0IHsKLSAgICAgICAgICAgIGZsb2F0NCBv
dXRwdXQgOiBTVl9UYXJnZXQwOwotICAgICAgICB9Ci0gICAgICAgIGZyYWdtZW50IFJlc3VsdCBm
b28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBmbG9hdCB4ID0gNzsKLSAgICAgICAgICAgIGZs
b2F0IGR4ID0gZGR4KHgpOwotICAgICAgICAgICAgZmxvYXQgZHkgPSBkZHkoeCk7Ci0gICAgICAg
ICAgICBSZXN1bHQgcjsKLSAgICAgICAgICAgIHIub3V0cHV0ID0gZmxvYXQ0KDEsIDIsIDMsIDQp
OwotICAgICAgICAgICAgcmV0dXJuIHI7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBkb1ByZXAo
YAotICAgICAgICBbbnVtdGhyZWFkcygxLCAxLCAxKV0KLSAgICAgICAgY29tcHV0ZSB2b2lkIGZv
bygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5j
KCk7Ci0gICAgICAgICAgICBEZXZpY2VNZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYygpOwotICAg
ICAgICAgICAgR3JvdXBNZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYygpOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgc3RydWN0IFJlc3VsdCB7Ci0gICAgICAgICAgICAgICAgZmxvYXQ0IG91dHB1dCA6IFNWX1Bv
c2l0aW9uOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmVydGV4IFJlc3VsdCBmb28oKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZsb2F0IHggPSA3OwotICAgICAgICAgICAg
ICAgIGZsb2F0IGR4ID0gZGR4KHgpOwotICAgICAgICAgICAgICAgIGZsb2F0IGR5ID0gZGR5KHgp
OwotICAgICAgICAgICAgICAgIFJlc3VsdCByOwotICAgICAgICAgICAgICAgIHIub3V0cHV0ID0g
ZmxvYXQ0KDEsIDIsIDMsIDQpOwotICAgICAgICAgICAgICAgIHJldHVybiByOwotICAgICAgICAg
ICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3Ry
dWN0IFJlc3VsdCB7Ci0gICAgICAgICAgICAgICAgZmxvYXQ0IG91dHB1dCA6IFNWX1Bvc2l0aW9u
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmVydGV4IFJlc3VsdCBmb28oKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7
Ci0gICAgICAgICAgICAgICAgUmVzdWx0IHI7Ci0gICAgICAgICAgICAgICAgci5vdXRwdXQgPSBm
bG9hdDQoMSwgMiwgMywgNCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHI7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1
Y3QgUmVzdWx0IHsKLSAgICAgICAgICAgICAgICBmbG9hdDQgb3V0cHV0IDogU1ZfVGFyZ2V0MDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZyYWdtZW50IFJlc3VsdCBmb28oKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7
Ci0gICAgICAgICAgICAgICAgUmVzdWx0IHI7Ci0gICAgICAgICAgICAgICAgci5vdXRwdXQgPSBm
bG9hdDQoMSwgMiwgMywgNCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHI7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1
Y3QgUmVzdWx0IHsKLSAgICAgICAgICAgICAgICBmbG9hdDQgb3V0cHV0IDogU1ZfUG9zaXRpb247
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2ZXJ0ZXggUmVzdWx0IGZvbygpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgRGV2aWNlTWVtb3J5QmFycmllcldpdGhHcm91cFN5bmMo
KTsKLSAgICAgICAgICAgICAgICBSZXN1bHQgcjsKLSAgICAgICAgICAgICAgICByLm91dHB1dCA9
IGZsb2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ip
OwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0
cnVjdCBSZXN1bHQgewotICAgICAgICAgICAgICAgIGZsb2F0NCBvdXRwdXQgOiBTVl9UYXJnZXQw
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJhZ21lbnQgUmVzdWx0IGZvbygpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRGV2aWNlTWVtb3J5QmFycmllcldpdGhHcm91cFN5
bmMoKTsKLSAgICAgICAgICAgICAgICBSZXN1bHQgcjsKLSAgICAgICAgICAgICAgICByLm91dHB1
dCA9IGZsb2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHN0cnVjdCBSZXN1bHQgewotICAgICAgICAgICAgICAgIGZsb2F0NCBvdXRwdXQgOiBTVl9Qb3Np
dGlvbjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZlcnRleCBSZXN1bHQgZm9vKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBT
eW5jKCk7Ci0gICAgICAgICAgICAgICAgUmVzdWx0IHI7Ci0gICAgICAgICAgICAgICAgci5vdXRw
dXQgPSBmbG9hdDQoMSwgMiwgMywgNCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHI7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVy
cm9yKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAg
ICBzdHJ1Y3QgUmVzdWx0IHsKLSAgICAgICAgICAgICAgICBmbG9hdDQgb3V0cHV0IDogU1ZfVGFy
Z2V0MDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZyYWdtZW50IFJlc3VsdCBmb28oKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEdyb3VwTWVtb3J5QmFycmllcldpdGhHcm91
cFN5bmMoKTsKLSAgICAgICAgICAgICAgICBSZXN1bHQgcjsKLSAgICAgICAgICAgICAgICByLm91
dHB1dCA9IGZsb2F0NCgxLCAyLCAzLCA0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IpOwotfQotCi10ZXN0cy5jYXN0cyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0g
ICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAgICBpbnQgeTsKLSAgICAg
ICAgfQotICAgICAgICBvcGVyYXRvciBCYXIoRm9vIGZvbykgewotICAgICAgICAgICAgQmFyIGI7
Ci0gICAgICAgICAgICBiLnkgPSBmb28ueCArIDc7Ci0gICAgICAgICAgICByZXR1cm4gYjsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGludCBiYXooaW50IHopIHsKLSAgICAgICAgICAgIEZvbyBm
b287Ci0gICAgICAgICAgICBmb28ueCA9IHo7Ci0gICAgICAgICAgICBCYXIgYiA9IEJhcihmb28p
OwotICAgICAgICAgICAgcmV0dXJuIGIueTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3Jh
bSwgNildKSwgMTMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9v
IHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewot
ICAgICAgICAgICAgaW50IHk7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3IgdGhyZWFkIEJh
cioodGhyZWFkIEZvbyogZm9vKSB7Ci0gICAgICAgICAgICBCYXIgYjsKLSAgICAgICAgICAgIGIu
eSA9ICgqZm9vKS54ICsgODsKLSAgICAgICAgICAgIHJldHVybiAmYjsKLSAgICAgICAgfQotICAg
ICAgICB0ZXN0IGludCBiYXooaW50IHopIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAg
ICAgICBmb28ueCA9IHo7Ci0gICAgICAgICAgICB0aHJlYWQgQmFyKiBiID0gdGhyZWFkIEJhcioo
JmZvbyk7Ci0gICAgICAgICAgICByZXR1cm4gKCpiKS55OwotICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUlu
dChwcm9ncmFtLCA2KV0pLCAxNCk7Ci19Ci0KLXRlc3RzLmF0b21pY3MgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28xKGludCB6
KSB7Ci0gICAgICAgICAgICBhdG9taWNfaW50IHg7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0Owot
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28yKGludCB6KSB7
Ci0gICAgICAgICAgICBhdG9taWNfaW50IHg7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0OwotICAg
ICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwotICAgICAgICAgICAgSW50
ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28zKGludCB6KSB7Ci0gICAgICAgICAgICBh
dG9taWNfaW50IHg7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0OwotICAgICAgICAgICAgSW50ZXJs
b2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIGludCh4KTsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb280KGludCB6KSB7Ci0gICAgICAgICAgICBhdG9t
aWNfaW50IHg7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0OwotICAgICAgICAgICAgSW50ZXJsb2Nr
ZWRBZGQoJngsIHosICZyZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHos
ICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIGludCh4KTsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IHVpbnQgZm9vNSh1aW50IHopIHsKLSAgICAgICAgICAgIGF0b21pY191aW50IHg7Ci0g
ICAgICAgICAgICB1aW50IHJlc3VsdDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4LCB6
LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAg
ICAgdGVzdCB1aW50IGZvbzYodWludCB6KSB7Ci0gICAgICAgICAgICBhdG9taWNfdWludCB4Owot
ICAgICAgICAgICAgdWludCByZXN1bHQ7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwg
eiwgJnJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWlu
dCBmb283KHVpbnQgeikgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgeDsKLSAgICAgICAgICAg
IHVpbnQgcmVzdWx0OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQp
OwotICAgICAgICAgICAgcmV0dXJuIHVpbnQoeCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1
aW50IGZvbzgodWludCB6KSB7Ci0gICAgICAgICAgICBhdG9taWNfdWludCB4OwotICAgICAgICAg
ICAgdWludCByZXN1bHQ7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3Vs
dCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7Ci0gICAgICAg
ICAgICByZXR1cm4gdWludCh4KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vOSh1
aW50IHgsIHVpbnQgeSkgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKLSAgICAgICAgICAg
IHVpbnQgcmVzdWx0OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQp
OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoJnosIHksICZyZXN1bHQpOwotICAgICAgICAg
ICAgcmV0dXJuIHVpbnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzEwKHVp
bnQgeCwgdWludCB5KSB7Ci0gICAgICAgICAgICBhdG9taWNfdWludCB6OwotICAgICAgICAgICAg
dWludCByZXN1bHQ7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7
Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFuZCgmeiwgeSwgJnJlc3VsdCk7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzExKGludCB4
LCBpbnQgeSkgewotICAgICAgICAgICAgYXRvbWljX2ludCB6OwotICAgICAgICAgICAgaW50IHJl
c3VsdDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAg
ICAgICAgIEludGVybG9ja2VkQW5kKCZ6LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVy
biBpbnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMTIoaW50IHgsIGludCB5
KSB7Ci0gICAgICAgICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0Owot
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAgICAgICAg
SW50ZXJsb2NrZWRBbmQoJnosIHksICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMTModWludCB4LCB1aW50IHkpIHsK
LSAgICAgICAgICAgIGF0b21pY191aW50IHo7Ci0gICAgICAgICAgICB1aW50IHJlc3VsdDsKLSAg
ICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIElu
dGVybG9ja2VkRXhjaGFuZ2UoJnosIHksICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHVp
bnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzE0KHVpbnQgeCwgdWludCB5
KSB7Ci0gICAgICAgICAgICBhdG9taWNfdWludCB6OwotICAgICAgICAgICAgdWludCByZXN1bHQ7
Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7Ci0gICAgICAgICAg
ICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ6LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMTUoaW50IHgsIGludCB5
KSB7Ci0gICAgICAgICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0Owot
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAgICAgICAg
SW50ZXJsb2NrZWRFeGNoYW5nZSgmeiwgeSwgJnJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4g
aW50KHopOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzE2KGludCB4LCBpbnQgeSkg
ewotICAgICAgICAgICAgYXRvbWljX2ludCB6OwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAg
ICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIElu
dGVybG9ja2VkRXhjaGFuZ2UoJnosIHksICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMTcodWludCB4LCB1aW50IHkp
IHsKLSAgICAgICAgICAgIGF0b21pY191aW50IHo7Ci0gICAgICAgICAgICB1aW50IHJlc3VsdDsK
LSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAg
IEludGVybG9ja2VkTWF4KCZ6LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiB1aW50
KHopOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28xOCh1aW50IHgsIHVpbnQgeSkg
ewotICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKLSAgICAgICAgICAgIHVpbnQgcmVzdWx0Owot
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAgICAgICAg
SW50ZXJsb2NrZWRNYXgoJnosIHksICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28xOShpbnQgeCwgaW50IHkpIHsKLSAg
ICAgICAgICAgIGF0b21pY19pbnQgejsKLSAgICAgICAgICAgIGludCByZXN1bHQ7Ci0gICAgICAg
ICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxv
Y2tlZE1heCgmeiwgeSwgJnJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gaW50KHopOwotICAg
ICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzIwKGludCB4LCBpbnQgeSkgewotICAgICAgICAg
ICAgYXRvbWljX2ludCB6OwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgICAgIElu
dGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkTWF4
KCZ6LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCB1aW50IGZvbzIxKHVpbnQgeCwgdWludCB5KSB7Ci0gICAgICAgICAgICBh
dG9taWNfdWludCB6OwotICAgICAgICAgICAgdWludCByZXN1bHQ7Ci0gICAgICAgICAgICBJbnRl
cmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE1pbigm
eiwgeSwgJnJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gdWludCh6KTsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IHVpbnQgZm9vMjIodWludCB4LCB1aW50IHkpIHsKLSAgICAgICAgICAgIGF0
b21pY191aW50IHo7Ci0gICAgICAgICAgICB1aW50IHJlc3VsdDsKLSAgICAgICAgICAgIEludGVy
bG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkTWluKCZ6
LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgdGVzdCBpbnQgZm9vMjMoaW50IHgsIGludCB5KSB7Ci0gICAgICAgICAgICBhdG9taWNf
aW50IHo7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRB
ZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRNaW4oJnosIHksICZy
ZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKLSAgICAgICAgfQotICAgICAgICB0
ZXN0IGludCBmb28yNChpbnQgeCwgaW50IHkpIHsKLSAgICAgICAgICAgIGF0b21pY19pbnQgejsK
LSAgICAgICAgICAgIGludCByZXN1bHQ7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwg
eCwgJnJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE1pbigmeiwgeSwgJnJlc3VsdCk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWlu
dCBmb28yNSh1aW50IHgsIHVpbnQgeSkgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKLSAg
ICAgICAgICAgIHVpbnQgcmVzdWx0OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgs
ICZyZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRPcigmeiwgeSwgJnJlc3VsdCk7Ci0g
ICAgICAgICAgICByZXR1cm4gdWludCh6KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQg
Zm9vMjYodWludCB4LCB1aW50IHkpIHsKLSAgICAgICAgICAgIGF0b21pY191aW50IHo7Ci0gICAg
ICAgICAgICB1aW50IHJlc3VsdDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAm
cmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkT3IoJnosIHksICZyZXN1bHQpOwotICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28y
NyhpbnQgeCwgaW50IHkpIHsKLSAgICAgICAgICAgIGF0b21pY19pbnQgejsKLSAgICAgICAgICAg
IGludCByZXN1bHQ7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7
Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE9yKCZ6LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAg
IHJldHVybiBpbnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMjgoaW50IHgs
IGludCB5KSB7Ci0gICAgICAgICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICBpbnQgcmVz
dWx0OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAg
ICAgICAgSW50ZXJsb2NrZWRPcigmeiwgeSwgJnJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28yOSh1aW50IHgsIHVpbnQg
eSkgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKLSAgICAgICAgICAgIHVpbnQgcmVzdWx0
OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAgICAg
ICAgSW50ZXJsb2NrZWRYb3IoJnosIHksICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHVp
bnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzMwKHVpbnQgeCwgdWludCB5
KSB7Ci0gICAgICAgICAgICBhdG9taWNfdWludCB6OwotICAgICAgICAgICAgdWludCByZXN1bHQ7
Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7Ci0gICAgICAgICAg
ICBJbnRlcmxvY2tlZFhvcigmeiwgeSwgJnJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzMxKGludCB4LCBpbnQgeSkgewot
ICAgICAgICAgICAgYXRvbWljX2ludCB6OwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAg
ICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVy
bG9ja2VkWG9yKCZ6LCB5LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoeik7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMzIoaW50IHgsIGludCB5KSB7Ci0gICAgICAg
ICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0OwotICAgICAgICAgICAg
SW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRY
b3IoJnosIHksICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAg
fQotICAgICAgICB0ZXN0IHVpbnQgZm9vMzModWludCB4LCB1aW50IHksIHVpbnQgeikgewotICAg
ICAgICAgICAgYXRvbWljX3VpbnQgdzsKLSAgICAgICAgICAgIHVpbnQgcmVzdWx0OwotICAgICAg
ICAgICAgSW50ZXJsb2NrZWRBZGQoJncsIHgsICZyZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJs
b2NrZWRDb21wYXJlRXhjaGFuZ2UoJncsIHksIHosICZyZXN1bHQpOwotICAgICAgICAgICAgcmV0
dXJuIHVpbnQodyk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzM0KHVpbnQgeCwg
dWludCB5LCB1aW50IHopIHsKLSAgICAgICAgICAgIGF0b21pY191aW50IHc7Ci0gICAgICAgICAg
ICB1aW50IHJlc3VsdDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ3LCB4LCAmcmVzdWx0
KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZ3LCB5LCB6LCAmcmVz
dWx0KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGVz
dCBpbnQgZm9vMzUoaW50IHgsIGludCB5LCBpbnQgeikgewotICAgICAgICAgICAgYXRvbWljX2lu
dCB3OwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRk
KCZ3LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdl
KCZ3LCB5LCB6LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiBpbnQodyk7Ci0gICAgICAg
IH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMzYoaW50IHgsIGludCB5LCBpbnQgeikgewotICAgICAg
ICAgICAgYXRvbWljX2ludCB3OwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgICAg
IEludGVybG9ja2VkQWRkKCZ3LCB4LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2Vk
Q29tcGFyZUV4Y2hhbmdlKCZ3LCB5LCB6LCAmcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbbWFrZUludChwcm9ncmFtLCA2
KV0pLCAxMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNSIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW21ha2VVaW50KHByb2dyYW0sIDYpXSks
IDYpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNildKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCAxMik7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMSk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbbWFrZUludChwcm9ncmFtLCAz
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTMiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAz
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1Iiwg
W21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFttYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW21ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMyldKSwgNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTgiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKV0p
LCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFttYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDUpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbbWFrZUludChwcm9ncmFtLCAz
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIxIiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAz
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIs
IFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbbWFrZVVp
bnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDUpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yNCIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDUpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjQiLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA1KTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFtt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbbWFrZUludChwcm9ncmFtLCAz
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjkiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDYpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMwIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAz
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwg
W21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFttYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW21ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNCIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM0IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9n
cmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDUpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbbWFrZUludChwcm9n
cmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW21h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNiIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50
KHByb2dyYW0sIDUpXSksIDMpOwotfQotCi10ZXN0cy5hdG9taWNzTnVsbCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbzEoaW50
IHopIHsKLSAgICAgICAgICAgIGF0b21pY19pbnQgeDsKLSAgICAgICAgICAgIHRocmVhZCBpbnQq
IHJlc3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgcmVzdWx0
KTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoeCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBp
bnQgZm9vMihpbnQgeikgewotICAgICAgICAgICAgYXRvbWljX2ludCB4OwotICAgICAgICAgICAg
dGhyZWFkIGludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4
LCB6LCByZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosIHJlc3VsdCk7
Ci0gICAgICAgICAgICByZXR1cm4gaW50KHgpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWlu
dCBmb28zKHVpbnQgeikgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgeDsKLSAgICAgICAgICAg
IHRocmVhZCB1aW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQo
JngsIHosIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gdWludCh4KTsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IHVpbnQgZm9vNCh1aW50IHopIHsKLSAgICAgICAgICAgIGF0b21pY191aW50
IHg7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAg
IEludGVybG9ja2VkQWRkKCZ4LCB6LCByZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRB
ZGQoJngsIHosIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gdWludCh4KTsKLSAgICAgICAg
fQotICAgICAgICB0ZXN0IHVpbnQgZm9vNSh1aW50IHgsIHVpbnQgeSkgewotICAgICAgICAgICAg
YXRvbWljX3VpbnQgejsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiByZXN1bHQgPSBudWxsOwot
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIHJlc3VsdCk7Ci0gICAgICAgICAgICBJ
bnRlcmxvY2tlZEFuZCgmeiwgeSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiB1aW50KHop
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzYoaW50IHgsIGludCB5KSB7Ci0gICAg
ICAgICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiByZXN1bHQgPSBu
dWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIHJlc3VsdCk7Ci0gICAgICAg
ICAgICBJbnRlcmxvY2tlZEFuZCgmeiwgeSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiBp
bnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzcodWludCB4LCB1aW50IHkp
IHsKLSAgICAgICAgICAgIGF0b21pY191aW50IHo7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCog
cmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCByZXN1bHQp
OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRFeGNoYW5nZSgmeiwgeSwgcmVzdWx0KTsKLSAgICAg
ICAgICAgIHJldHVybiB1aW50KHopOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzgo
aW50IHgsIGludCB5KSB7Ci0gICAgICAgICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICB0
aHJlYWQgaW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnos
IHgsIHJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ6LCB5LCByZXN1
bHQpOwotICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IHVpbnQgZm9vOSh1aW50IHgsIHVpbnQgeSkgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgejsK
LSAgICAgICAgICAgIHRocmVhZCB1aW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50
ZXJsb2NrZWRBZGQoJnosIHgsIHJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE1heCgm
eiwgeSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiB1aW50KHopOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgaW50IGZvbzEwKGludCB4LCBpbnQgeSkgewotICAgICAgICAgICAgYXRvbWlj
X2ludCB6OwotICAgICAgICAgICAgdGhyZWFkIGludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAg
ICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCByZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2Nr
ZWRNYXgoJnosIHksIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gaW50KHopOwotICAgICAg
ICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28xMSh1aW50IHgsIHVpbnQgeSkgewotICAgICAgICAg
ICAgYXRvbWljX3VpbnQgejsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiByZXN1bHQgPSBudWxs
OwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIHJlc3VsdCk7Ci0gICAgICAgICAg
ICBJbnRlcmxvY2tlZE1pbigmeiwgeSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiB1aW50
KHopOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzEyKGludCB4LCBpbnQgeSkgewot
ICAgICAgICAgICAgYXRvbWljX2ludCB6OwotICAgICAgICAgICAgdGhyZWFkIGludCogcmVzdWx0
ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCByZXN1bHQpOwotICAg
ICAgICAgICAgSW50ZXJsb2NrZWRNaW4oJnosIHksIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1
cm4gaW50KHopOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28xMyh1aW50IHgsIHVp
bnQgeSkgewotICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKLSAgICAgICAgICAgIHRocmVhZCB1
aW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIHJl
c3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE9yKCZ6LCB5LCByZXN1bHQpOwotICAgICAg
ICAgICAgcmV0dXJuIHVpbnQoeik7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMTQo
aW50IHgsIGludCB5KSB7Ci0gICAgICAgICAgICBhdG9taWNfaW50IHo7Ci0gICAgICAgICAgICB0
aHJlYWQgaW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnos
IHgsIHJlc3VsdCk7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE9yKCZ6LCB5LCByZXN1bHQpOwot
ICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQg
Zm9vMTUodWludCB4LCB1aW50IHkpIHsKLSAgICAgICAgICAgIGF0b21pY191aW50IHo7Ci0gICAg
ICAgICAgICB0aHJlYWQgdWludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9j
a2VkQWRkKCZ6LCB4LCByZXN1bHQpOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRYb3IoJnosIHks
IHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gdWludCh6KTsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IGludCBmb28xNihpbnQgeCwgaW50IHkpIHsKLSAgICAgICAgICAgIGF0b21pY19pbnQg
ejsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIHJlc3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBJ
bnRlcmxvY2tlZEFkZCgmeiwgeCwgcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkWG9y
KCZ6LCB5LCByZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IHVpbnQgZm9vMTcodWludCB4LCB1aW50IHksIHVpbnQgeikgewotICAgICAg
ICAgICAgYXRvbWljX3VpbnQgdzsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiByZXN1bHQgPSBu
dWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJncsIHgsIHJlc3VsdCk7Ci0gICAgICAg
ICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgmdywgeSwgeiwgcmVzdWx0KTsKLSAgICAg
ICAgICAgIHJldHVybiB1aW50KHcpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzE4
KGludCB4LCBpbnQgeSwgaW50IHopIHsKLSAgICAgICAgICAgIGF0b21pY19pbnQgdzsKLSAgICAg
ICAgICAgIHRocmVhZCBpbnQqIHJlc3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBJbnRlcmxvY2tl
ZEFkZCgmdywgeCwgcmVzdWx0KTsKLSAgICAgICAgICAgIEludGVybG9ja2VkQ29tcGFyZUV4Y2hh
bmdlKCZ3LCB5LCB6LCByZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIGludCh3KTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb28xOSgpIHsKLSAgICAgICAgICAgIHRocmVhZCBhdG9t
aWNfaW50KiB4ID0gbnVsbDsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIHJlc3VsdCA9IG51bGw7
Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCh4LCAxLCByZXN1bHQpOwotICAgICAgICAgICAg
cmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMjAoKSB7Ci0gICAgICAg
ICAgICB0aHJlYWQgYXRvbWljX3VpbnQqIHggPSBudWxsOwotICAgICAgICAgICAgdGhyZWFkIHVp
bnQqIHJlc3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCh4LCAxLCByZXN1
bHQpOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQg
Zm9vMjEoKSB7Ci0gICAgICAgICAgICB0aHJlYWQgYXRvbWljX2ludCogeCA9IG51bGw7Ci0gICAg
ICAgICAgICB0aHJlYWQgaW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2Nr
ZWRBbmQoeCwgMSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgaW50IGZvbzIyKCkgewotICAgICAgICAgICAgdGhyZWFkIGF0b21pY191aW50
KiB4ID0gbnVsbDsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiByZXN1bHQgPSBudWxsOwotICAg
ICAgICAgICAgSW50ZXJsb2NrZWRBbmQoeCwgMSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVy
biAxOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzIzKCkgewotICAgICAgICAgICAg
dGhyZWFkIGF0b21pY19pbnQqIHggPSBudWxsOwotICAgICAgICAgICAgdGhyZWFkIGludCogcmVz
dWx0ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9ja2VkRXhjaGFuZ2UoeCwgMSwgcmVzdWx0
KTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZv
bzI0KCkgewotICAgICAgICAgICAgdGhyZWFkIGF0b21pY191aW50KiB4ID0gbnVsbDsKLSAgICAg
ICAgICAgIHRocmVhZCB1aW50KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2Nr
ZWRFeGNoYW5nZSh4LCAxLCByZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAg
IH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMjUoKSB7Ci0gICAgICAgICAgICB0aHJlYWQgYXRvbWlj
X2ludCogeCA9IG51bGw7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiByZXN1bHQgPSBudWxsOwot
ICAgICAgICAgICAgSW50ZXJsb2NrZWRNYXgoeCwgMSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJl
dHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZvbzI2KCkgewotICAgICAgICAg
ICAgdGhyZWFkIGF0b21pY191aW50KiB4ID0gbnVsbDsKLSAgICAgICAgICAgIHRocmVhZCB1aW50
KiByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgSW50ZXJsb2NrZWRNYXgoeCwgMSwgcmVzdWx0
KTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGZv
bzI3KCkgewotICAgICAgICAgICAgdGhyZWFkIGF0b21pY19pbnQqIHggPSBudWxsOwotICAgICAg
ICAgICAgdGhyZWFkIGludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9ja2Vk
TWluKHgsIDEsIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAg
ICAgICB0ZXN0IGludCBmb28yOCgpIHsKLSAgICAgICAgICAgIHRocmVhZCBhdG9taWNfdWludCog
eCA9IG51bGw7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCogcmVzdWx0ID0gbnVsbDsKLSAgICAg
ICAgICAgIEludGVybG9ja2VkTWluKHgsIDEsIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4g
MTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28yOSgpIHsKLSAgICAgICAgICAgIHRo
cmVhZCBhdG9taWNfaW50KiB4ID0gbnVsbDsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIHJlc3Vs
dCA9IG51bGw7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZE9yKHgsIDEsIHJlc3VsdCk7Ci0gICAg
ICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28zMCgpIHsK
LSAgICAgICAgICAgIHRocmVhZCBhdG9taWNfdWludCogeCA9IG51bGw7Ci0gICAgICAgICAgICB0
aHJlYWQgdWludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIEludGVybG9ja2VkT3IoeCwg
MSwgcmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIHRl
c3QgaW50IGZvbzMxKCkgewotICAgICAgICAgICAgdGhyZWFkIGF0b21pY19pbnQqIHggPSBudWxs
OwotICAgICAgICAgICAgdGhyZWFkIGludCogcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIElu
dGVybG9ja2VkWG9yKHgsIDEsIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGludCBmb28zMigpIHsKLSAgICAgICAgICAgIHRocmVhZCBhdG9t
aWNfdWludCogeCA9IG51bGw7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCogcmVzdWx0ID0gbnVs
bDsKLSAgICAgICAgICAgIEludGVybG9ja2VkWG9yKHgsIDEsIHJlc3VsdCk7Ci0gICAgICAgICAg
ICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28zMygpIHsKLSAgICAg
ICAgICAgIHRocmVhZCBhdG9taWNfaW50KiB4ID0gbnVsbDsKLSAgICAgICAgICAgIHRocmVhZCBp
bnQqIHJlc3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5n
ZSh4LCAxLCAyLCByZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAg
ICAgICAgdGVzdCBpbnQgZm9vMzQoKSB7Ci0gICAgICAgICAgICB0aHJlYWQgYXRvbWljX3VpbnQq
IHggPSBudWxsOwotICAgICAgICAgICAgdGhyZWFkIHVpbnQqIHJlc3VsdCA9IG51bGw7Ci0gICAg
ICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSh4LCAxLCAyLCByZXN1bHQpOwotICAg
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCA2KTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW21h
a2VVaW50KHByb2dyYW0sIDYpXSksIDEyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChw
cm9ncmFtLCA1KV0pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0p
LCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW21ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
VWludChwcm9ncmFtLCAzKV0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDUp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwg
W21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFttYWtlVWlu
dChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFttYWtlSW50KHByb2dyYW0s
IDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDcp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1Iiwg
W21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFttYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE4IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbXSksIGNoZWNrSW50KTsKLSAgICBj
aGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtd
KSwgY2hlY2tJbnQpOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIxIiwgW10pLCBjaGVja0ludCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0s
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbXSksIGNoZWNrSW50KTsKLSAg
ICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIs
IFtdKSwgY2hlY2tJbnQpOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI0IiwgW10pLCBjaGVja0ludCk7Ci0gICAgY2hlY2tUcmFwKHByb2dy
YW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbXSksIGNoZWNrSW50KTsK
LSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
NiIsIFtdKSwgY2hlY2tJbnQpOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW10pLCBjaGVja0ludCk7Ci0gICAgY2hlY2tUcmFwKHBy
b2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbXSksIGNoZWNrSW50
KTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yOSIsIFtdKSwgY2hlY2tJbnQpOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW10pLCBjaGVja0ludCk7Ci0gICAgY2hlY2tUcmFw
KHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbXSksIGNoZWNr
SW50KTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMiIsIFtdKSwgY2hlY2tJbnQpOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW10pLCBjaGVja0ludCk7Ci0gICAgY2hlY2tU
cmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbXSksIGNo
ZWNrSW50KTsKLX0KLQotdGVzdHMuc2VsZkNhc3RzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnQg
eDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBGb28gZm9vOwotICAgICAgICAgICAgZm9vLnggPSAyMTsKLSAgICAgICAgICAgIEZvbyBi
YXIgPSBGb28oZm9vKTsKLSAgICAgICAgICAgIGJhci54ID0gNDI7Ci0gICAgICAgICAgICByZXR1
cm4gZm9vLnggKyBiYXIueDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAyMSArIDQyKTsKLX0KLQotdGVz
dHMucG9pbnRlclRvTWVtYmVyID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBmbG9hdDMgeDsKLSAgICAgICAgICAgICAgICB0aHJlYWQgZmxvYXQq
IHkgPSAmeFsxXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotCi0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBk
b1ByZXAoYAotICAgICAgICAgICAgdm9pZCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGZsb2F0M3gzIHg7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGZsb2F0MyogeSA9ICZ4
WzFdOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmJ1aWx0aW5NYXRyaWNlcyA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgZmxvYXQgZm9vKCkK
LSAgICAgICAgewotICAgICAgICAgICAgZmxvYXQyeDIgYTsKLSAgICAgICAgICAgIGFbMF1bMF0g
PSAxOwotICAgICAgICAgICAgYVswXVsxXSA9IDI7Ci0gICAgICAgICAgICBhWzFdWzBdID0gMzsK
LSAgICAgICAgICAgIGFbMV1bMV0gPSA0OwotICAgICAgICAgICAgcmV0dXJuIGFbMF1bMF07Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28yKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgZmxvYXQyeDMgYTsKLSAgICAgICAgICAgIGFbMF1bMF0gPSAxOwotICAgICAgICAgICAgYVsw
XVsxXSA9IDI7Ci0gICAgICAgICAgICBhWzBdWzJdID0gMzsKLSAgICAgICAgICAgIGFbMV1bMF0g
PSA0OwotICAgICAgICAgICAgYVsxXVsxXSA9IDU7Ci0gICAgICAgICAgICBhWzFdWzJdID0gNjsK
LSAgICAgICAgICAgIHJldHVybiBhWzFdWzJdOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxv
YXQgZm9vMygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZsb2F0MngyIGE7Ci0gICAgICAgICAg
ICByZXR1cm4gYVswXVswXTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vNCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGZsb2F0MngyIGE7Ci0gICAgICAgICAgICBhWzBdWzBdID0g
MTsKLSAgICAgICAgICAgIGFbMF1bMV0gPSAyOwotICAgICAgICAgICAgYVsxXVswXSA9IDM7Ci0g
ICAgICAgICAgICBhWzFdWzFdID0gNDsKLSAgICAgICAgICAgIGZsb2F0MngyIGI7Ci0gICAgICAg
ICAgICBiWzBdWzBdID0gNTsKLSAgICAgICAgICAgIGJbMF1bMV0gPSA2OwotICAgICAgICAgICAg
YlsxXVswXSA9IDc7Ci0gICAgICAgICAgICBiWzFdWzFdID0gODsKLSAgICAgICAgICAgIGZvciAo
dWludCBpID0gMDsgaSA8IDI7ICsraSkgewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0g
MDsgaiA8IDI7ICsraikgewotICAgICAgICAgICAgICAgICAgICBhW2ldW2pdICs9IDQ7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vNSgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZsb2F0MngyIGE7Ci0gICAgICAgICAgICBhWzBdID0gZmxvYXQyKDEsIDIpOwotICAgICAg
ICAgICAgYVsxXSA9IGZsb2F0MigzLCA0KTsKLSAgICAgICAgICAgIGZsb2F0MngyIGI7Ci0gICAg
ICAgICAgICBiWzBdWzBdID0gMTsKLSAgICAgICAgICAgIGJbMF1bMV0gPSAyOwotICAgICAgICAg
ICAgYlsxXVswXSA9IDM7Ci0gICAgICAgICAgICBiWzFdWzFdID0gNDsKLSAgICAgICAgICAgIHJl
dHVybiBhID09IGI7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzYoKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBmbG9hdDJ4MiBhOwotICAgICAgICAgICAgYVswXVswXSA9IDE7Ci0g
ICAgICAgICAgICBhWzBdWzFdID0gMjsKLSAgICAgICAgICAgIGFbMV1bMF0gPSAzOwotICAgICAg
ICAgICAgYVsxXVsxXSA9IDQ7Ci0gICAgICAgICAgICBmbG9hdDJ4MiBiOwotICAgICAgICAgICAg
YlswXVswXSA9IDU7Ci0gICAgICAgICAgICBiWzBdWzFdID0gMTA7Ci0gICAgICAgICAgICBiWzFd
WzBdID0gMTg7Ci0gICAgICAgICAgICBiWzFdWzFdID0gMjQ7Ci0gICAgICAgICAgICBhWzBdICo9
IDU7Ci0gICAgICAgICAgICBhWzFdICo9IDY7Ci0gICAgICAgICAgICByZXR1cm4gYSA9PSBiOwot
ICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vNygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZsb2F0MngzIGEgPSBmbG9hdDJ4MyhmbG9hdDMoMywgNCwgNSksIGZsb2F0Myg2LCA3LCA4
KSk7Ci0gICAgICAgICAgICByZXR1cm4gYVswXVsyXTsKLSAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W10pLCA2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtdKSwgMCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSksIDUpOwotfQotCi10
ZXN0cy5oYWxmU2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKCJ0ZXN0IGhhbGYgZm9vKGhhbGYgeCwgaGFsZiB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwot
ICAgIGNoZWNrSGFsZihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SGFsZihwcm9ncmFtLCA3KSwgbWFrZUhhbGYocHJvZ3JhbSwgNSldKSwgMTIpOwotICAgIHByb2dy
YW0gPSBkb1ByZXAoInRlc3QgaGFsZiBmb28oaGFsZiB4LCBoYWxmIHkpIHsgcmV0dXJuIHggLSB5
OyB9Iik7Ci0gICAgY2hlY2tIYWxmKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VIYWxmKHByb2dyYW0sIDcpLCBtYWtlSGFsZihwcm9ncmFtLCA1KV0pLCAyKTsKLSAg
ICBjaGVja0hhbGYocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUhh
bGYocHJvZ3JhbSwgNSksIG1ha2VIYWxmKHByb2dyYW0sIDcpXSksIC0yKTsKLSAgICBwcm9ncmFt
ID0gZG9QcmVwKCJ0ZXN0IGhhbGYgZm9vKGhhbGYgeCwgaGFsZiB5KSB7IHJldHVybiB4ICogeTsg
fSIpOwotICAgIGNoZWNrSGFsZihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSGFsZihwcm9ncmFtLCA3KSwgbWFrZUhhbGYocHJvZ3JhbSwgNSldKSwgMzUpOwotICAg
IGNoZWNrSGFsZihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSGFs
Zihwcm9ncmFtLCA3KSwgbWFrZUhhbGYocHJvZ3JhbSwgLTUpXSksIC0zNSk7Ci0gICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidGVzdCBoYWxmIGZvbyhoYWxmIHgsIGhhbGYgeSkgeyByZXR1cm4geCAvIHk7
IH0iKTsKLSAgICBjaGVja0hhbGYocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUhhbGYocHJvZ3JhbSwgNyksIG1ha2VIYWxmKHByb2dyYW0sIDIpXSksIDMuNSk7Ci0g
ICAgY2hlY2tIYWxmKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VI
YWxmKHByb2dyYW0sIDcpLCBtYWtlSGFsZihwcm9ncmFtLCAtMildKSwgLTMuNSk7Ci19Ci0KLXRl
c3RzLm1hdHJpeE11bHRpcGxpY2F0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICBmbG9hdDJ4NCBtdWx0aXBseShmbG9hdDJ4MyB4LCBmbG9hdDN4
NCB5KSB7Ci0gICAgICAgICAgICAvLyBDb3BpZWQgYW5kIHBhc3RlZCBmcm9tIHRoZSBzdGFuZGFy
ZCBsaWJyYXJ5Ci0gICAgICAgICAgICBmbG9hdDJ4NCByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1
bHRbMF1bMF0gPSAwOwotICAgICAgICAgICAgcmVzdWx0WzBdWzBdICs9IHhbMF1bMF0gKiB5WzBd
WzBdOwotICAgICAgICAgICAgcmVzdWx0WzBdWzBdICs9IHhbMF1bMV0gKiB5WzFdWzBdOwotICAg
ICAgICAgICAgcmVzdWx0WzBdWzBdICs9IHhbMF1bMl0gKiB5WzJdWzBdOwotICAgICAgICAgICAg
cmVzdWx0WzBdWzFdID0gMDsKLSAgICAgICAgICAgIHJlc3VsdFswXVsxXSArPSB4WzBdWzBdICog
eVswXVsxXTsKLSAgICAgICAgICAgIHJlc3VsdFswXVsxXSArPSB4WzBdWzFdICogeVsxXVsxXTsK
LSAgICAgICAgICAgIHJlc3VsdFswXVsxXSArPSB4WzBdWzJdICogeVsyXVsxXTsKLSAgICAgICAg
ICAgIHJlc3VsdFswXVsyXSA9IDA7Ci0gICAgICAgICAgICByZXN1bHRbMF1bMl0gKz0geFswXVsw
XSAqIHlbMF1bMl07Ci0gICAgICAgICAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1b
Ml07Ci0gICAgICAgICAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMl07Ci0gICAg
ICAgICAgICByZXN1bHRbMF1bM10gPSAwOwotICAgICAgICAgICAgcmVzdWx0WzBdWzNdICs9IHhb
MF1bMF0gKiB5WzBdWzNdOwotICAgICAgICAgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5
WzFdWzNdOwotICAgICAgICAgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzNdOwot
ICAgICAgICAgICAgcmVzdWx0WzFdWzBdID0gMDsKLSAgICAgICAgICAgIHJlc3VsdFsxXVswXSAr
PSB4WzFdWzBdICogeVswXVswXTsKLSAgICAgICAgICAgIHJlc3VsdFsxXVswXSArPSB4WzFdWzFd
ICogeVsxXVswXTsKLSAgICAgICAgICAgIHJlc3VsdFsxXVswXSArPSB4WzFdWzJdICogeVsyXVsw
XTsKLSAgICAgICAgICAgIHJlc3VsdFsxXVsxXSA9IDA7Ci0gICAgICAgICAgICByZXN1bHRbMV1b
MV0gKz0geFsxXVswXSAqIHlbMF1bMV07Ci0gICAgICAgICAgICByZXN1bHRbMV1bMV0gKz0geFsx
XVsxXSAqIHlbMV1bMV07Ci0gICAgICAgICAgICByZXN1bHRbMV1bMV0gKz0geFsxXVsyXSAqIHlb
Ml1bMV07Ci0gICAgICAgICAgICByZXN1bHRbMV1bMl0gPSAwOwotICAgICAgICAgICAgcmVzdWx0
WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzJdOwotICAgICAgICAgICAgcmVzdWx0WzFdWzJdICs9
IHhbMV1bMV0gKiB5WzFdWzJdOwotICAgICAgICAgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0g
KiB5WzJdWzJdOwotICAgICAgICAgICAgcmVzdWx0WzFdWzNdID0gMDsKLSAgICAgICAgICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVszXTsKLSAgICAgICAgICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzFdICogeVsxXVszXTsKLSAgICAgICAgICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzJdICogeVsyXVszXTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgZmxvYXQyeDMgbWF0cml4MSgpIHsKLSAgICAgICAgICAgIGZsb2F0MngzIHg7Ci0gICAg
ICAgICAgICB4WzBdWzBdID0gMjsKLSAgICAgICAgICAgIHhbMF1bMV0gPSAzOwotICAgICAgICAg
ICAgeFswXVsyXSA9IDU7Ci0gICAgICAgICAgICB4WzFdWzBdID0gNzsKLSAgICAgICAgICAgIHhb
MV1bMV0gPSAxMTsKLSAgICAgICAgICAgIHhbMV1bMl0gPSAxMzsKLSAgICAgICAgICAgIHJldHVy
biB4OwotICAgICAgICB9Ci0gICAgICAgIGZsb2F0M3g0IG1hdHJpeDIoKSB7Ci0gICAgICAgICAg
ICBmbG9hdDN4NCB5OwotICAgICAgICAgICAgeVswXVswXSA9IDE3OwotICAgICAgICAgICAgeVsw
XVsxXSA9IDE5OwotICAgICAgICAgICAgeVswXVsyXSA9IDIzOwotICAgICAgICAgICAgeVswXVsz
XSA9IDI5OwotICAgICAgICAgICAgeVsxXVswXSA9IDMxOwotICAgICAgICAgICAgeVsxXVsxXSA9
IDM3OwotICAgICAgICAgICAgeVsxXVsyXSA9IDQxOwotICAgICAgICAgICAgeVsxXVszXSA9IDQz
OwotICAgICAgICAgICAgeVsyXVswXSA9IDQ3OwotICAgICAgICAgICAgeVsyXVsxXSA9IDUzOwot
ICAgICAgICAgICAgeVsyXVsyXSA9IDU5OwotICAgICAgICAgICAgeVsyXVszXSA9IDYxOwotICAg
ICAgICAgICAgcmV0dXJuIHk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28wMCgp
IHsKLSAgICAgICAgICAgIHJldHVybiBtdWx0aXBseShtYXRyaXgxKCksIG1hdHJpeDIoKSlbMF1b
MF07Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28wMSgpIHsKLSAgICAgICAgICAg
IHJldHVybiBtdWx0aXBseShtYXRyaXgxKCksIG1hdHJpeDIoKSlbMF1bMV07Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCBmbG9hdCBmb28wMigpIHsKLSAgICAgICAgICAgIHJldHVybiBtdWx0aXBs
eShtYXRyaXgxKCksIG1hdHJpeDIoKSlbMF1bMl07Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBm
bG9hdCBmb28wMygpIHsKLSAgICAgICAgICAgIHJldHVybiBtdWx0aXBseShtYXRyaXgxKCksIG1h
dHJpeDIoKSlbMF1bM107Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xMCgpIHsK
LSAgICAgICAgICAgIHJldHVybiBtdWx0aXBseShtYXRyaXgxKCksIG1hdHJpeDIoKSlbMV1bMF07
Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xMSgpIHsKLSAgICAgICAgICAgIHJl
dHVybiBtdWx0aXBseShtYXRyaXgxKCksIG1hdHJpeDIoKSlbMV1bMV07Ci0gICAgICAgIH0KLSAg
ICAgICAgdGVzdCBmbG9hdCBmb28xMigpIHsKLSAgICAgICAgICAgIHJldHVybiBtdWx0aXBseSht
YXRyaXgxKCksIG1hdHJpeDIoKSlbMV1bMl07Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9h
dCBmb28xMygpIHsKLSAgICAgICAgICAgIHJldHVybiBtdWx0aXBseShtYXRyaXgxKCksIG1hdHJp
eDIoKSlbMV1bM107Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMDAiLCBbXSksIDE3ICogMiArIDMxICogMyArIDQ3
ICogNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzAxIiwgW10pLCAxOSAqIDIgKyAzNyAqIDMgKyA1MyAqIDUpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28wMiIsIFtdKSwgMjMgKiAyICsgNDEgKiAz
ICsgNTkgKiA1KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMDMiLCBbXSksIDI5ICogMiArIDQzICogMyArIDYxICogNSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW10pLCAxNyAqIDcgKyAz
MSAqIDExICsgNDcgKiAxMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW10pLCAxOSAqIDcgKyAzNyAqIDExICsgNTMgKiAxMyk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10pLCAy
MyAqIDcgKyA0MSAqIDExICsgNTkgKiAxMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCAyOSAqIDcgKyA0MyAqIDExICsgNjEgKiAx
Myk7Ci19Ci0KLXRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBpbm5lckFycmF5TGVuZ3RoKCkgewotICAg
ICAgICAgICAgaW50WzJdWzNdIGFycmF5OwotICAgICAgICAgICAgcmV0dXJuIGFycmF5WzBdLmxl
bmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgdWludCBvdXRlckFycmF5TGVuZ3RoKCkg
ewotICAgICAgICAgICAgaW50WzJdWzNdIGFycmF5OwotICAgICAgICAgICAgcmV0dXJuIGFycmF5
Lmxlbmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3QgaW50IGFycmF5SW5kZXhpbmcodWlu
dCBpLCB1aW50IGopIHsKLSAgICAgICAgICAgIGludFsyXVszXSBhcnJheTsKLSAgICAgICAgICAg
IGFycmF5WzBdWzBdID0gMTsKLSAgICAgICAgICAgIGFycmF5WzBdWzFdID0gMjsKLSAgICAgICAg
ICAgIGFycmF5WzBdWzJdID0gMzsKLSAgICAgICAgICAgIGFycmF5WzFdWzBdID0gNDsKLSAgICAg
ICAgICAgIGFycmF5WzFdWzFdID0gNTsKLSAgICAgICAgICAgIGFycmF5WzFdWzJdID0gNjsKLSAg
ICAgICAgICAgIHJldHVybiBhcnJheVtpXVtqXTsKLSAgICAgICAgfQotICAgIGApOwotCi0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW5uZXJBcnJheUxlbmd0
aCIsIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAib3V0ZXJBcnJheUxlbmd0aCIsIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkgXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDEpIF0pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkgXSksIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpIF0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7Ci19Ci0KLXRlc3RzLm51bVRocmVh
ZHMgPSBmdW5jdGlvbigpIHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIFtu
dW10aHJlYWRzKDMsIDQsIDUpXQotICAgICAgICBjb21wdXRlIHZvaWQgZm9vKCkgewotICAgICAg
ICB9Ci0KLSAgICAgICAgc3RydWN0IFIgewotICAgICAgICAgICAgZmxvYXQ0IHBvc2l0aW9uIDog
U1ZfUG9zaXRpb247Ci0gICAgICAgIH0KLSAgICAgICAgdmVydGV4IFIgYmFyKCkgewotICAgICAg
ICAgICAgUiByOwotICAgICAgICAgICAgci5wb3NpdGlvbiA9IGZsb2F0NCgxLCAyLCAzLCA0KTsK
LSAgICAgICAgICAgIHJldHVybiByOwotICAgICAgICB9Ci0gICAgYCk7Ci0KLSAgICBpZiAocHJv
Z3JhbS5mdW5jdGlvbnMuZ2V0KCJmb28iKS5sZW5ndGggIT0gMSkKLSAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJDYW5ub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAnZm9vJyIpOwotICAgIGxldCBmb28g
PSBwcm9ncmFtLmZ1bmN0aW9ucy5nZXQoImZvbyIpWzBdOwotICAgIGlmIChmb28uYXR0cmlidXRl
QmxvY2subGVuZ3RoICE9IDEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiJ2ZvbycgZG9lc24n
dCBoYXZlIG51bXRocmVhZHMgYXR0cmlidXRlIik7Ci0gICAgaWYgKGZvby5hdHRyaWJ1dGVCbG9j
a1swXS54ICE9IDMpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiJ2ZvbycgbnVtdGhyZWFkcyB4
IGlzIG5vdCAzIik7Ci0gICAgaWYgKGZvby5hdHRyaWJ1dGVCbG9ja1swXS55ICE9IDQpCi0gICAg
ICAgIHRocm93IG5ldyBFcnJvcigiJ2ZvbycgbnVtdGhyZWFkcyB5IGlzIG5vdCA0Iik7Ci0gICAg
aWYgKGZvby5hdHRyaWJ1dGVCbG9ja1swXS56ICE9IDUpCi0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiJ2ZvbycgbnVtdGhyZWFkcyB6IGlzIG5vdCA1Iik7Ci0KLSAgICBpZiAocHJvZ3JhbS5mdW5j
dGlvbnMuZ2V0KCJiYXIiKS5sZW5ndGggIT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
YW5ub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAnYmFyJyIpOwotICAgIGxldCBiYXIgPSBwcm9ncmFt
LmZ1bmN0aW9ucy5nZXQoImJhciIpWzBdOwotICAgIGlmIChiYXIuYXR0cmlidXRlQmxvY2sgIT0g
bnVsbCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCInYmF6JyBoYXMgYXR0cmlidXRlIGJsb2Nr
Iik7Ci0KLSAgICBjaGVja0ZhaWwoKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgW251bXRocmVhZHMo
MywgNCldCi0gICAgICAgIGNvbXB1dGUgdm9pZCBmb28oKSB7Ci0gICAgICAgIH0KLSAgICBgKSwg
ZSA9PiBlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKTsKLQotICAgIGNoZWNrRmFpbCgoKSA9PiBk
b1ByZXAoYAotICAgICAgICBbXQotICAgICAgICBjb21wdXRlIHZvaWQgZm9vKCkgewotICAgICAg
ICB9Ci0gICAgYCksIGUgPT4gZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcik7Ci0KLSAgICBjaGVj
a0ZhaWwoKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgW251bXRocmVhZHMoMywgNCwgNSksIG51bXRo
cmVhZHMoMywgNCwgNSldCi0gICAgICAgIGNvbXB1dGUgdm9pZCBmb28oKSB7Ci0gICAgICAgIH0K
LSAgICBgKSwgZSA9PiBlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKTsKLQotICAgIGNoZWNrRmFp
bCgoKSA9PiBkb1ByZXAoYAotICAgICAgICBjb21wdXRlIHZvaWQgZm9vKCkgewotICAgICAgICB9
Ci0gICAgYCksIGUgPT4gZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcik7Ci0KLSAgICBjaGVja0Zh
aWwoKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IFIgewotICAgICAgICAgICAgZmxvYXQ0
IHBvc2l0aW9uOwotICAgICAgICB9Ci0gICAgICAgIFtudW10aHJlYWRzKDMsIDQsIDUpXQotICAg
ICAgICB2ZXJ0ZXggUiBiYXooKSB7Ci0gICAgICAgICAgICBSIHI7Ci0gICAgICAgICAgICByLnBv
c2l0aW9uID0gZmxvYXQ0KDEsIDIsIDMsIDQpOwotICAgICAgICAgICAgcmV0dXJuIHI7Ci0gICAg
ICAgIH0KLSAgICBgKSwgZSA9PiBlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKTsKLX0KLQotdGVz
dHMuY29uc3RhbnRBZGRyZXNzU3BhY2UgPSBmdW5jdGlvbigpIHsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICB2b2lkIGZvbyhjb25zdGFudCBpbnQq
IGJhcikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAqYmFyID0gMDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiY29uc3RhbnQgYWRkcmVzcyBzcGFjZSIpICE9PSAtMSk7
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9p
ZCBmb28oY29uc3RhbnQgaW50W10gYmFyKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGJhclswXSA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoImNvbnN0YW50IGFk
ZHJlc3Mgc3BhY2UiKSAhPT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHR5cGVkZWYgQ29uc3RhbnRJbnRBcnJheVJlZiA9IGNvbnN0YW50
IGludFtdOwotICAgICAgICAgICAgdm9pZCBmb28oQ29uc3RhbnRJbnRBcnJheVJlZlszXSBiYXIp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYmFyWzBdWzBdID0gMDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiY29uc3RhbnQgYWRkcmVzcyBzcGFjZSIpICE9PSAtMSk7
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdHlw
ZWRlZiBJbnRBcnJheSA9IGludFszXTsKLSAgICAgICAgICAgIHZvaWQgZm9vKGNvbnN0YW50IElu
dEFycmF5W10gYmFyKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGJhclswXVswXSA9
IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoImNvbnN0YW50IGFkZHJlc3Mgc3Bh
Y2UiKSAhPT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHR5cGVkZWYgSW50QXJyYXkgPSBpbnRbM107Ci0gICAgICAgICAgICBzdHJ1Y3Qg
QmFyIHsKLSAgICAgICAgICAgICAgICBJbnRBcnJheSBiYXo7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2b2lkIGZvbyhjb25zdGFudCBCYXJbXSBiYXIpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgYmFyWzBdLmJhelswXSA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGAp
LAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmlu
ZGV4T2YoImNvbnN0YW50IGFkZHJlc3Mgc3BhY2UiKSAhPT0gLTEpOwotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBCYXIgewotICAgICAg
ICAgICAgICAgIGludCBiYXo7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0eXBlZGVmIEJh
ckFycmF5ID0gQmFyWzNdOwotICAgICAgICAgICAgdm9pZCBmb28oY29uc3RhbnQgQmFyQXJyYXlb
XSBiYXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYmFyWzBdWzBdLmJheiA9IDA7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoImNvbnN0YW50IGFkZHJlc3Mgc3BhY2Ui
KSAhPT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIHR5cGVkZWYgSW50QXJyYXkgPSBpbnRbM107Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsKLSAgICAgICAgICAgICAgICBjb25zdGFudCBJbnRBcnJheVtdIGJhejsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHZvaWQgZm9vKEJhciBiYXIpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgYmFyLmJhelswXVswXSA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAot
ICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4
T2YoImNvbnN0YW50IGFkZHJlc3Mgc3BhY2UiKSAhPT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHR5cGVkZWYgQ29uc3RhbnRJbnRBcnJh
eVJlZiA9IGNvbnN0YW50IGludFtdOwotICAgICAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAg
ICAgICAgICAgQ29uc3RhbnRJbnRBcnJheVJlZlszXSBiYXo7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2b2lkIGZvbyhCYXIgYmFyKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGJhci5iYXpbMF1bMF0gPSAwOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAg
KGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJjb25z
dGFudCBhZGRyZXNzIHNwYWNlIikgIT09IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgp
ID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgICAgICBp
bnQgYmF6OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdHlwZWRlZiBDb25zdGFudEJhckFy
cmF5UmVmID0gY29uc3RhbnQgQmFyW107Ci0gICAgICAgICAgICB2b2lkIGZvbyhDb25zdGFudEJh
ckFycmF5UmVmWzNdIGJhcikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBiYXJbMF1b
MF0uYmF6ID0gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiY29uc3RhbnQgYWRk
cmVzcyBzcGFjZSIpICE9PSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAgICAgICAgY29uc3RhbnQg
aW50W10gYmF6OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdm9pZCBmb28oQmFyWzNdIGJh
cikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBiYXJbMF0uYmF6WzBdID0gMDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiY29uc3RhbnQgYWRkcmVzcyBzcGFjZSIpICE9
PSAtMSk7Ci19Ci0KLXRlc3RzLnN0YW5kYXJkTGlicmFyeURldmljZVBvaW50ZXJzID0gZnVuY3Rp
b24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGZsb2F0IGZv
bzEoKSB7Ci0gICAgICAgICAgICBmbG9hdCBzOwotICAgICAgICAgICAgZmxvYXQgYzsKLSAgICAg
ICAgICAgIHNpbmNvcygwLCAmcywgJmMpOwotICAgICAgICAgICAgcmV0dXJuIGM7Ci0gICAgICAg
IH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28yKCkgewotICAgICAgICAgICAgZmxvYXQgczsKLSAg
ICAgICAgICAgIGZsb2F0IGM7Ci0gICAgICAgICAgICBzaW5jb3MoMCwgJnMsICZjKTsKLSAgICAg
ICAgICAgIHJldHVybiBzOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vMygpIHsK
LSAgICAgICAgICAgIHRocmVhZCBmbG9hdCogcyA9IG51bGw7Ci0gICAgICAgICAgICBmbG9hdCBj
OwotICAgICAgICAgICAgc2luY29zKDAsIHMsICZjKTsKLSAgICAgICAgICAgIHJldHVybiBjOwot
ICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vNCgpIHsKLSAgICAgICAgICAgIGZsb2F0
IHM7Ci0gICAgICAgICAgICB0aHJlYWQgZmxvYXQqIGMgPSBudWxsOwotICAgICAgICAgICAgc2lu
Y29zKDAsICZzLCBjKTsKLSAgICAgICAgICAgIHJldHVybiBzOwotICAgICAgICB9Ci0gICAgICAg
IHRlc3Qgdm9pZCBmb281KGRldmljZSBmbG9hdCogcykgewotICAgICAgICAgICAgdGhyZWFkIGZs
b2F0KiBjID0gbnVsbDsKLSAgICAgICAgICAgIHNpbmNvcygwLCBzLCBjKTsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IHZvaWQgZm9vNihkZXZpY2UgZmxvYXQqIGMpIHsKLSAgICAgICAgICAgIHRo
cmVhZCBmbG9hdCogcyA9IG51bGw7Ci0gICAgICAgICAgICBzaW5jb3MoMCwgcywgYyk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdGVzdCB2b2lkIGZvbzcoZGV2aWNlIGZsb2F0KiBzLCBkZXZpY2UgZmxv
YXQqIGMpIHsKLSAgICAgICAgICAgIHNpbmNvcygwLCBzLCBjKTsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IHZvaWQgZm9vOChkZXZpY2UgZmxvYXRbXSByZXN1bHQpIHsKLSAgICAgICAgICAgIHNp
bmNvcygwLCAmcmVzdWx0WzBdLCAmcmVzdWx0WzFdKTsKLSAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW10pLCAx
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtdKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW10pLCAwKTsKLQotICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigy
KTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuZmxv
YXQpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDAp
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAo
ZXhwZWN0ZWQgMCk6ICIgKyBidWZmZXIuZ2V0KDApKTsKLQotICAgIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5mbG9hdCksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSk7Ci0gICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAxKTogIiArIGJ1ZmZlci5n
ZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtUeXBlZFZhbHVlLmJv
eChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2lj
cy5mbG9hdCksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpLCBUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlw
ZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5mbG9hdCksIG5l
dyBFUHRyKGJ1ZmZlciwgMSkpXSk7Ci0gICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gMCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3Rl
ZCAwKTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGlmIChidWZmZXIuZ2V0KDEpICE9IDEpCi0g
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhw
ZWN0ZWQgMSk6ICIgKyBidWZmZXIuZ2V0KDEpKTsKLQotICAgIGJ1ZmZlci5zZXQoMCwgMCk7Ci0g
ICAgYnVmZmVyLnNldCgxLCAwKTsKLSAgICBsZXQgYXJyYXlSZWYgPSBUeXBlZFZhbHVlLmJveCgK
LSAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dy
YW0uaW50cmluc2ljcy5mbG9hdCksCi0gICAgICAgIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVm
ZmVyLCAwKSwgMikpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFthcnJheVJl
Zl0pOwotICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDApCi0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgMCk6ICIgKyBidWZmZXIu
Z2V0KDApKTsKLSAgICBpZiAoYnVmZmVyLmdldCgxKSAhPSAxKQotICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDEpOiAiICsgYnVm
ZmVyLmdldCgxKSk7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9n
cmFtKQotewotICAgIGxldCB0ZXh0dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwg
NywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKTsKLSAgICBsZXQgdGV4dHVyZTFE
QXJyYXkgPSBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEz
LCAxNl0sIFsxNV1dLCBbWzE2LCAxNywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0
Iik7Ci0gICAgbGV0IHRleHR1cmUyRCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWwotICAgICAg
ICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAotICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMs
IDE0LCAxNSwgMTZdLAotICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwK
LSAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAotICAgICAgICBbWzMz
LCAzNCwgMzUsIDM2XSwKLSAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCi0gICAgICAgIFtbNDEs
IDQyXV0KLSAgICBdLCAiZmxvYXQiKTsKLSAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sKLSAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
XSwKLSAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKLSAgICAgICAgWzE3
LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCi0gICAgICAgIFsyNSwgMjYsIDI3LCAyOCwg
MjksIDMwLCAzMSwgMzJdXSwKLSAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCi0gICAgICAgIFsz
NywgMzgsIDM5LCA0MF1dLAotICAgICAgICBbWzQxLCA0Ml1dCi0gICAgXSwgWwotICAgICAgICBb
WzQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCi0gICAgICAgIFs1MSwgNTIsIDUzLCA1
NCwgNTUsIDU2LCA1NywgNThdLAotICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUs
IDY2XSwKLSAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAotICAgICAg
ICBbWzc1LCA3NiwgNzcsIDc4XSwKLSAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCi0gICAgICAg
IFtbODMsIDg0XV0KLSAgICBdXSwgImZsb2F0Iik7Ci0gICAgbGV0IHRleHR1cmUzRCA9IG1ha2Uz
RFRleHR1cmUocHJvZ3JhbSwgWwotICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwK
LSAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKLSAgICAgICAgWzE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCi0gICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdXSwKLSAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBd
LAotICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKLSAgICAgICAgWzQ5
LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCi0gICAgICAgIFs1NywgNTgsIDU5LCA2MCwg
NjEsIDYyLCA2MywgNjRdXV0sCi0gICAgICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKLSAgICAgICAg
WzY5LCA3MCwgNzEsIDcyXV1dCi0gICAgXSwgImZsb2F0Iik7Ci0gICAgbGV0IHRleHR1cmVDdWJl
ID0gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIFtbCi0gICAgICAgIFtbMSwgMl0sCi0gICAgICAg
IFszLCA0XSwKLSAgICAgICAgWzUsIDZdLAotICAgICAgICBbNywgOF1dLAotICAgICAgICBbWzld
LAotICAgICAgICBbMTBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtbMTEsIDEyXSwKLSAgICAgICAg
WzEzLCAxNF0sCi0gICAgICAgIFsxNSwgMTZdLAotICAgICAgICBbMTcsIDE4XV0sCi0gICAgICAg
IFtbMTldLAotICAgICAgICBbMjBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtbMjEsIDIyXSwKLSAg
ICAgICAgWzIzLCAyNF0sCi0gICAgICAgIFsyNSwgMjZdLAotICAgICAgICBbMjcsIDI4XV0sCi0g
ICAgICAgIFtbMjldLAotICAgICAgICBbMzBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtbMzEsIDMy
XSwKLSAgICAgICAgWzMzLCAzNF0sCi0gICAgICAgIFszNSwgMzZdLAotICAgICAgICBbMzcsIDM4
XV0sCi0gICAgICAgIFtbMzldLAotICAgICAgICBbNDBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtb
NDEsIDQyXSwKLSAgICAgICAgWzQzLCA0NF0sCi0gICAgICAgIFs0NSwgNDZdLAotICAgICAgICBb
NDcsIDQ4XV0sCi0gICAgICAgIFtbNDldLAotICAgICAgICBbNTBdXSwKLSAgICBdLCBbCi0gICAg
ICAgIFtbNTEsIDUyXSwKLSAgICAgICAgWzUzLCA1NF0sCi0gICAgICAgIFs1NSwgNTZdLAotICAg
ICAgICBbNTcsIDU4XV0sCi0gICAgICAgIFtbNTldLAotICAgICAgICBbNjBdXSwKLSAgICBdXSwg
ImZsb2F0Iik7Ci0gICAgbGV0IHJ3VGV4dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0s
IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgImZsb2F0Iik7Ci0gICAgbGV0IHJ3VGV4dHVyZTFE
QXJyYXkgPSBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDhdLCBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0XV0sICJmbG9hdCIpOwotICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VS
VzJEVGV4dHVyZShwcm9ncmFtLCBbCi0gICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwK
LSAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKLSAgICAgICAgWzE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCi0gICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7Ci0gICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtl
UlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBbCi0gICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCi0gICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCi0gICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAotICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sCi0gICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwg
MzksIDQwXSwKLSAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCi0gICAg
ICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAotICAgICAgICBbNTcsIDU4LCA1
OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKLSAgICBsZXQgcndUZXh0dXJlM0Qg
PSBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgWwotICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDhdLAotICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAotICAgICAg
ICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKLSAgICAgICAgWzI1LCAyNiwgMjcs
IDI4LCAyOSwgMzAsIDMxLCAzMl1dLAotICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgs
IDM5LCA0MF0sCi0gICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAotICAg
ICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKLSAgICAgICAgWzU3LCA1OCwg
NTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7Ci0gICAgbGV0IHRleHR1cmVEZXB0
aDJEID0gbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFsKLSAgICAgICAgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKLSAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
LSAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCi0gICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKLSAgICAgICAgW1szMywgMzQsIDM1LCAzNl0s
Ci0gICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAotICAgICAgICBbWzQxLCA0Ml1dCi0gICAgXSwg
ImZsb2F0Iik7Ci0gICAgbGV0IHRleHR1cmVEZXB0aDJEQXJyYXkgPSBtYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbWwotICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAot
ICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAotICAgICAgICBbMTcsIDE4
LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKLSAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwg
MzAsIDMxLCAzMl1dLAotICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKLSAgICAgICAgWzM3LCAz
OCwgMzksIDQwXV0sCi0gICAgICAgIFtbNDEsIDQyXV0KLSAgICBdLCBbCi0gICAgICAgIFtbNDMs
IDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKLSAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1
NSwgNTYsIDU3LCA1OF0sCi0gICAgICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZd
LAotICAgICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCi0gICAgICAgIFtb
NzUsIDc2LCA3NywgNzhdLAotICAgICAgICBbNzksIDgwLCA4MSwgODJdXSwKLSAgICAgICAgW1s4
MywgODRdXQotICAgIF1dLCAiZmxvYXQiKTsKLSAgICBsZXQgdGV4dHVyZURlcHRoQ3ViZSA9IG1h
a2VEZXB0aFRleHR1cmVDdWJlKHByb2dyYW0sIFtbCi0gICAgICAgIFtbMSwgMl0sCi0gICAgICAg
IFszLCA0XSwKLSAgICAgICAgWzUsIDZdLAotICAgICAgICBbNywgOF1dLAotICAgICAgICBbWzld
LAotICAgICAgICBbMTBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtbMTEsIDEyXSwKLSAgICAgICAg
WzEzLCAxNF0sCi0gICAgICAgIFsxNSwgMTZdLAotICAgICAgICBbMTcsIDE4XV0sCi0gICAgICAg
IFtbMTldLAotICAgICAgICBbMjBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtbMjEsIDIyXSwKLSAg
ICAgICAgWzIzLCAyNF0sCi0gICAgICAgIFsyNSwgMjZdLAotICAgICAgICBbMjcsIDI4XV0sCi0g
ICAgICAgIFtbMjldLAotICAgICAgICBbMzBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtbMzEsIDMy
XSwKLSAgICAgICAgWzMzLCAzNF0sCi0gICAgICAgIFszNSwgMzZdLAotICAgICAgICBbMzcsIDM4
XV0sCi0gICAgICAgIFtbMzldLAotICAgICAgICBbNDBdXSwKLSAgICBdLCBbCi0gICAgICAgIFtb
NDEsIDQyXSwKLSAgICAgICAgWzQzLCA0NF0sCi0gICAgICAgIFs0NSwgNDZdLAotICAgICAgICBb
NDcsIDQ4XV0sCi0gICAgICAgIFtbNDldLAotICAgICAgICBbNTBdXSwKLSAgICBdLCBbCi0gICAg
ICAgIFtbNTEsIDUyXSwKLSAgICAgICAgWzUzLCA1NF0sCi0gICAgICAgIFs1NSwgNTZdLAotICAg
ICAgICBbNTcsIDU4XV0sCi0gICAgICAgIFtbNTldLAotICAgICAgICBbNjBdXSwKLSAgICBdXSwg
ImZsb2F0Iik7Ci0gICAgbGV0IHJ3VGV4dHVyZURlcHRoMkQgPSBtYWtlUlcyRERlcHRoVGV4dHVy
ZShwcm9ncmFtLCBbCi0gICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKLSAgICAgICAg
WzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKLSAgICAgICAgWzE3LCAxOCwgMTksIDIw
LCAyMSwgMjIsIDIzLCAyNF0sCi0gICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwg
MzJdXSwgImZsb2F0Iik7Ci0gICAgbGV0IHJ3VGV4dHVyZURlcHRoMkRBcnJheSA9IG1ha2VSVzJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWwotICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDhdLAotICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAotICAgICAg
ICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKLSAgICAgICAgWzI1LCAyNiwgMjcs
IDI4LCAyOSwgMzAsIDMxLCAzMl1dLAotICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgs
IDM5LCA0MF0sCi0gICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAotICAg
ICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKLSAgICAgICAgWzU3LCA1OCwg
NTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7Ci0gICAgcmV0dXJuIFt0ZXh0dXJl
MUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0Qs
IHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQs
IHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURl
cHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJl
RGVwdGgyREFycmF5XTsKLX0KLQotdGVzdHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigp
IHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28xKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKLSAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+
IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOwotICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7Ci0gICAgICAgICAgICByZXR1cm4gd2lkdGg7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1
aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVp
bnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGVsZW1lbnRzOwotICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gZWxl
bWVudHM7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1
aW50IGVsZW1lbnRzOwotICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKLSAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJP
ZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCB1aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAg
ICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWludCBoZWlnaHQ7Ci0gICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1
cm4gd2lkdGg7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzcoVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7Ci0gICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwotICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVs
cyk7Ci0gICAgICAgICAgICByZXR1cm4gaGVpZ2h0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3Qg
dWludCBmb284KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3
aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOwotICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2
ZWxzOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb285KFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7Ci0gICAgICAgICAgICB1aW50IGVsZW1lbnRzOwotICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzEwKFRleHR1cmUy
REFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAg
ICAgICAgdWludCBoZWlnaHQ7Ci0gICAgICAgICAgICB1aW50IGVsZW1lbnRzOwotICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7Ci0gICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28x
MShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0
aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBlbGVtZW50czsK
LSAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOwotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOwotICAgICAgICB9Ci0gICAgICAgIHRl
c3QgdWludCBmb28xMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAg
ICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKLSAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOwotICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOwotICAg
ICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28xMyhUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUp
IHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAg
ICAgICAgICAgIHVpbnQgZGVwdGg7Ci0gICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwot
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZk
ZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKLSAgICAgICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7
Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWludCBoZWlnaHQ7Ci0gICAg
ICAgICAgICB1aW50IGRlcHRoOwotICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKLSAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVw
dGgsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gaGVpZ2h0OwotICAgICAg
ICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28xNShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsK
LSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAg
ICAgICAgIHVpbnQgZGVwdGg7Ci0gICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwotICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0
aCwgJm51bWJlck9mTGV2ZWxzKTsKLSAgICAgICAgICAgIHJldHVybiBkZXB0aDsKLSAgICAgICAg
fQotICAgICAgICB0ZXN0IHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7Ci0g
ICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWludCBoZWlnaHQ7Ci0gICAgICAg
ICAgICB1aW50IGRlcHRoOwotICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKLSAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgs
ICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0
dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWludCBoZWlnaHQ7
Ci0gICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwotICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7Ci0gICAg
ICAgICAgICByZXR1cm4gd2lkdGg7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzE4
KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwot
ICAgICAgICAgICAgdWludCBoZWlnaHQ7Ci0gICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gaGVpZ2h0OwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgewot
ICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOwotICAgICAgICAgICAg
cmV0dXJuIG51bWJlck9mTGV2ZWxzOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28y
MChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsK
LSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsKLSAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMjEoUldUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKLSAgICAgICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRz
KTsKLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVp
bnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICAgICAgICAgIHJldHVybiB3aWR0
aDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMjQoUldUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhl
aWdodDsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0
KTsKLSAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1
aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAg
IHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIHVpbnQg
ZWxlbWVudHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhl
aWdodCwgJmVsZW1lbnRzKTsKLSAgICAgICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAgICAgfQot
ICAgICAgICB0ZXN0IHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
ewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOwotICAgICAgICAgICAgcmV0dXJuIGhlaWdo
dDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMjcoUldUZXh0dXJlMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBlbGVtZW50czsKLSAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOwotICAgICAgICAg
ICAgcmV0dXJuIGVsZW1lbnRzOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28yOChS
V1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBkZXB0aDsKLSAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOwotICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28y
OShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsK
LSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBkZXB0aDsKLSAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOwot
ICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQg
Zm9vMzAoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lk
dGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIHVpbnQgZGVwdGg7Ci0g
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRo
KTsKLSAgICAgICAgICAgIHJldHVybiBkZXB0aDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVp
bnQgZm9vMzEoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVp
bnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKLSAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMzIoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+
IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhl
aWdodDsKLSAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
LSAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50
IGZvbzMzKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50
IHdpZHRoOwotICAgICAgICAgICAgdWludCBoZWlnaHQ7Ci0gICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZM
ZXZlbHM7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzM0KFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7Ci0gICAgICAg
ICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Ci0gICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKLSAgICAg
ICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vMzUo
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3
aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBlbGVtZW50
czsKLSAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZM
ZXZlbHMpOwotICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKLSAgICAgICAgfQotICAgICAgICB0
ZXN0IHVpbnQgZm9vMzYoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAg
ICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKLSAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1l
bnRzLCAmbnVtYmVyT2ZMZXZlbHMpOwotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOwotICAg
ICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb28zNyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWludCBo
ZWlnaHQ7Ci0gICAgICAgICAgICB1aW50IGVsZW1lbnRzOwotICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7Ci0gICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzM4KFRl
eHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHVpbnQgd2lkdGg7
Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJm51bWJlck9mTGV2ZWxzKTsKLSAgICAgICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAgICAg
fQotICAgICAgICB0ZXN0IHVpbnQgZm9vMzkoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVy
ZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owot
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOwotICAgICAg
ICAgICAgcmV0dXJuIGhlaWdodDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IHVpbnQgZm9vNDAo
VGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0
aDsKLSAgICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmbnVtYmVyT2ZMZXZlbHMpOwotICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxz
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWludCBmb280MShSV1RleHR1cmVEZXB0aDJEPGZs
b2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB1aW50IHdpZHRoOwotICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhl
aWdodCk7Ci0gICAgICAgICAgICByZXR1cm4gd2lkdGg7Ci0gICAgICAgIH0KLSAgICAgICAgdGVz
dCB1aW50IGZvbzQyKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAg
ICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICAgICAgICAgIHJldHVy
biBoZWlnaHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzQzKFJXVGV4dHVyZURl
cHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OwotICAgICAgICAgICAgdWludCBlbGVtZW50czsKLSAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMp
OwotICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgdWlu
dCBmb280NChSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAg
ICAgIHVpbnQgd2lkdGg7Ci0gICAgICAgICAgICB1aW50IGhlaWdodDsKLSAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmhlaWdodCwgJmVsZW1lbnRzKTsKLSAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7Ci0gICAgICAg
IH0KLSAgICAgICAgdGVzdCB1aW50IGZvbzQ1KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgewotICAgICAgICAgICAgdWludCB3aWR0aDsKLSAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OwotICAgICAgICAgICAgdWludCBlbGVtZW50czsKLSAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOwotICAgICAgICAgICAgcmV0
dXJuIGVsZW1lbnRzOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgbGV0IFt0ZXh0dXJlMUQsIHRl
eHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1
cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4
dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRB
cnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgy
REFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRF0pLCA0
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3RleHR1cmUxRF0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXldKSwgMik7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMURBcnJheV0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyRF0pLCA0KTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
RF0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFycmF5XSksIDQpOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmUy
REFycmF5XSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUzRF0pLCA4KTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJl
M0RdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAyKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlQ3ViZV0pLCAy
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlQ3ViZV0pLCA0KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmUxRF0pLCA4KTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFty
d1RleHR1cmUxREFycmF5XSksIDgpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgMyk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbcndUZXh0dXJlMkRd
KSwgOCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJheV0pLCA4KTsKLSAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFtyd1RleHR1cmUy
REFycmF5XSksIDQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndUZXh0dXJlM0RdKSwgOCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbcndU
ZXh0dXJlM0RdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRdKSwgOCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4
dHVyZURlcHRoMkRdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkRdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eV0pLCA4KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSksIDQpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwg
Mik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzci
LCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDIpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1
cmVEZXB0aEN1YmVdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoQ3ViZV0pLCAyKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFtyd1RleHR1cmVEZXB0aDJE
XSksIDgpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQyIiwgW3J3VGV4dHVyZURlcHRoMkRdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSksIDgp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0Iiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCA0KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7
Ci19Ci0KLXRlc3RzLnRleHR1cmVEaW1lbnNpb25zTnVsbCA9IGZ1bmN0aW9uKCkgewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBib29sIGZvbzEoVGV4dHVyZTFEPGZs
b2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCogcHRyID0gbnVsbDsKLSAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsIHB0ciwgcHRyKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28yKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCogcHRyID0gbnVsbDsKLSAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgcHRyLCBwdHIsIHB0cik7Ci0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMyhUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiBwdHIgPSBudWxsOwotICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCBwdHIsIHB0ciwgcHRyKTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb280KFRl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCog
cHRyID0gbnVsbDsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgcHRyLCBw
dHIsIHB0ciwgcHRyKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
ICAgIHRlc3QgYm9vbCBmb281KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAg
ICAgdGhyZWFkIHVpbnQqIHB0ciA9IG51bGw7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsIHB0ciwgcHRyLCBwdHIsIHB0cik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vNihUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4
dHVyZSkgewotICAgICAgICAgICAgdGhyZWFkIHVpbnQqIHB0ciA9IG51bGw7Ci0gICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsIHB0ciwgcHRyLCBwdHIpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzcoUldUZXh0dXJl
MUQ8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiBwdHIgPSBudWxs
OwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCBwdHIpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzgoUldUZXh0dXJl
MURBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdGhyZWFkIHVpbnQqIHB0ciA9
IG51bGw7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIHB0ciwgcHRyKTsKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb285
KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCog
cHRyID0gbnVsbDsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgcHRyLCBwdHIp
OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29s
IGZvbzEwKFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHRo
cmVhZCB1aW50KiBwdHIgPSBudWxsOwotICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCBwdHIsIHB0ciwgcHRyKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgYm9vbCBmb28xMShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgewotICAg
ICAgICAgICAgdGhyZWFkIHVpbnQqIHB0ciA9IG51bGw7Ci0gICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIHB0ciwgcHRyLCBwdHIpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzEyKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlKSB7Ci0gICAgICAgICAgICB0aHJlYWQgdWludCogcHRyID0gbnVsbDsKLSAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgcHRyLCBwdHIsIHB0cik7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMTMoVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewotICAgICAgICAgICAgdGhyZWFkIHVpbnQq
IHB0ciA9IG51bGw7Ci0gICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsIHB0ciwg
cHRyLCBwdHIsIHB0cik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAg
ICAgICB0ZXN0IGJvb2wgZm9vMTQoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgewot
ICAgICAgICAgICAgdGhyZWFkIHVpbnQqIHB0ciA9IG51bGw7Ci0gICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsIHB0ciwgcHRyLCBwdHIpOwotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzE1KFJXVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+IHRleHR1cmUpIHsKLSAgICAgICAgICAgIHRocmVhZCB1aW50KiBwdHIgPSBudWxsOwot
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCBwdHIsIHB0cik7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMTYoUldUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICB0aHJlYWQgdWlu
dCogcHRyID0gbnVsbDsKLSAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgcHRyLCBw
dHIsIHB0cik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRB
cnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJy
YXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURl
cHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURl
cHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3Rpbmco
cHJvZ3JhbSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMURdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMURBcnJheV0pLCB0cnVlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUy
RF0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUyREFycmF5XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTNEXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVy
ZUN1YmVdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFtyd1RleHR1cmUxRF0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFtyd1RleHR1cmUyRF0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFtyd1RleHR1cmUyREFycmF5XSksIHRydWUpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVy
ZTNEXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJEXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXld
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTQiLCBbdGV4dHVyZURlcHRoQ3ViZV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmVEZXB0aDJEXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCB0cnVlKTsKLX0KLQotdGVzdHMudGV4dHVyZUxv
YWQgPSBmdW5jdGlvbigpIHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgZmxvYXQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50
IG1pcG1hcCkgewotICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlv
biwgbWlwbWFwKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28yKFRleHR1cmUx
RDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7
Ci0gICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXAp
LCBvZmZzZXQpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vMyhUZXh0dXJlMURB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIp
IHsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1h
cCwgbGF5ZXIpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzQoVGV4dHVyZTFE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVy
LCBpbnQgb2Zmc2V0KSB7Ci0gICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxv
Y2F0aW9uLCBtaXBtYXAsIGxheWVyKSwgb2Zmc2V0KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBt
aXBtYXApIHsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlw
bWFwKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb282KFRleHR1cmUyRDxmbG9h
dD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlw
bWFwKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBm
bG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGlu
dCBtaXBtYXAsIGludCBsYXllcikgewotICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9h
dCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBt
aXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9m
ZnNldFgsIG9mZnNldFkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzkoVGV4
dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFwKSB7
Ci0gICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCkp
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFksIGludCBvZmZzZXRaKSB7Ci0gICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQ0KHgsIHksIHosIG1pcG1hcCksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0Wikp
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8ZmxvYXQ+
IHRleHR1cmUsIGludCBsb2NhdGlvbikgewotICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgbG9jYXRpb24pOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vMTIoUldUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbGF5ZXIpIHsKLSAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24sIGxheWVyKSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4
dHVyZSwgaW50IHgsIGludCB5KSB7Ci0gICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKHgsIHkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzE0KFJXVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwg
aW50IHgsIGludCB5LCBpbnQgeikgewotICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50Myh4LCB5LCB6KSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xNihUZXh0
dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOwotICAg
ICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vMTcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRl
eHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZ
KSB7Ci0gICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCks
IGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQg
Zm9vMTgoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBp
bnQgbWlwbWFwLCBpbnQgbGF5ZXIpIHsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDQoeCwgeSwgbWlwbWFwLCBsYXllcikpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxv
YXQgZm9vMTkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5
LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewotICAg
ICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBm
b28yMChSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHkpIHsKLSAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwgeSkpOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgZmxvYXQgZm9vMjEoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgewotICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgbGV0
IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0
ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndU
ZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwg
dGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwg
cndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFt
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDE2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxNik7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAyMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIC0xKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxNik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDEzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDE2KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMTApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM4KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDMzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDMzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDM0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
Nyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDUyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA3NSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NzYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDExKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMzQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM5KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMzUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA1Mik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjApOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCA2MSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzYpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDgwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDgwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDgxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzcpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0MSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQy
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjUpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDY5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgNzApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMTcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgNDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTgpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMzUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDkpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDMpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTApOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDY5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDY3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcw
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2NSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MSk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1
cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFty
d1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDExKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDE3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAxOCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDEzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjAp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAyMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDIyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMjMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAyNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMCk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMxKTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MzIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA0Mik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDEwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAz
NCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1
IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDM0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzOCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzMp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDMpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQ0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1MSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDgwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE5KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM1KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IC0xKV0pLCAzNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzkpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUy
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDUyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MCk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDYxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nik7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDc3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4
MSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODApOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgODEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nyk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgOCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgOSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDMpXSksIDI2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAyKSwg
bWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjgpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMzEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50
KHByb2dyYW0sIDMpXSksIDMyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFty
d1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDM0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDQyKTsKLX0KLQotdGVzdHMudGV4dHVyZVN0b3JlID0gZnVuY3Rpb24o
KSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGZsb2F0IGZvbzEo
UldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7
Ci0gICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb24pOwotICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50KGxvY2F0aW9uKSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdGVzdCBmbG9hdCBmb28yKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQg
bG9jYXRpb24sIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7Ci0gICAgICAgICAgICBTdG9yZSh0
ZXh0dXJlLCB2YWx1ZSwgdWludDIobG9jYXRpb24sIGxheWVyKSk7Ci0gICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludChsb2NhdGlvbiksIGludChsYXllcikpKTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUs
IHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgewotICAgICAgICAgICAgU3RvcmUodGV4dHVy
ZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDIoaW50KHgpLCBpbnQoeSkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZv
bzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQg
bGF5ZXIsIGZsb2F0IHZhbHVlKSB7Ci0gICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwg
dWludDMoeCwgeSwgbGF5ZXIpKTsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IGZsb2F0IGZvbzUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1
aW50IHosIGZsb2F0IHZhbHVlKSB7Ci0gICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwg
dWludDMoeCwgeSwgeikpOwotICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhp
bnQoeCksIGludCh5KSwgaW50KHopKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBm
b282KFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9h
dCB2YWx1ZSkgewotICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkp
KTsKLSAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkp
KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzcoUldUZXh0dXJlRGVwdGgyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwgZmxvYXQgdmFs
dWUpIHsKLSAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5LCBsYXll
cikpOwotICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5
KSwgaW50KGxheWVyKSkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgbGV0IFt0ZXh0dXJlMUQs
IHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRl
eHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3
VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRo
MkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVw
dGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUx
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
cndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1
cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1
cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4
dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndU
ZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
cndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0
dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJl
M0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAy
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9n
cmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwotfQotCi10ZXN0cy50ZXh0dXJlU2FtcGxlID0gZnVuY3Rp
b24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGZsb2F0IGZv
bzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7
Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKTsKLSAgICAg
ICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KSB7Ci0gICAgICAgICAgICByZXR1
cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uLCBvZmZzZXQpOwotICAgICAgICB9Ci0gICAg
ICAgIHRlc3QgZmxvYXQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCBsYXllcikgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0
ZXh0dXJlLCBzLCBmbG9hdDIoeCwgbGF5ZXIpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZs
b2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXQpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVyKSwgb2Zmc2V0KTsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHkpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywg
ZmxvYXQyKHgsIHkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzYoVGV4dHVy
ZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBz
LCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9Ci0gICAg
ICAgIHRlc3QgZmxvYXQgZm9vNyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgewotICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpKTsKLSAgICAgICAgfQotICAg
ICAgICB0ZXN0IGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zm
c2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKLSAgICAgICAgfQotICAgICAgICB0
ZXN0IGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIHopKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZv
bzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB6LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgaW50Myhv
ZmZzZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9h
dCBmb28xMShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB6KSB7Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCB6KSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xMihU
ZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgQmlhcykgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpLCBCaWFzKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzEzKFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAgICAgICAgICAgIHJldHVybiBT
YW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xNChUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwg
ZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgewotICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSks
IGZsb2F0MihkZHkwLCBkZHkxKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28x
NShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJl
LCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEp
LCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0
IGZvbzE2KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCBMT0QpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJl
LCBzLCBmbG9hdDIoeCwgeSksIExPRCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBm
b28xNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCwgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28xOChUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCBsYXllciwgZmxvYXQgQmlhcykgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXMo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcyk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdGVzdCBmbG9hdCBmb28xOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJl
LCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzIwKFRleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9h
dCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9h
dDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7Ci0gICAgICAgIH0KLSAgICAgICAg
dGVzdCBmbG9hdCBmb28yMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwg
ZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28yMihUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgTE9EKSB7Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9EKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IGZsb2F0IGZvbzIzKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMjQoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgbG9jYXRpb24pLng7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMjUoVGV4
dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKLSAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLnk7Ci0gICAgICAgIH0K
LSAgICAgICAgdGVzdCBpbnQgZm9vMjYoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgbG9jYXRpb24pIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwg
cywgbG9jYXRpb24pLno7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgZm9vMjcoVGV4dHVy
ZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKLSAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLnc7Ci0gICAgICAgIH0KLSAg
ICAgICAgdGVzdCBmbG9hdCBmb28yOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBm
b28yOShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAgICAgICAgICAgIHJldHVybiBT
YW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzMwKFRleHR1cmVEZXB0aDJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIp
IHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28zMShUZXh0dXJlRGVwdGgy
REFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAgICAgICAgICAgIHJldHVybiBT
YW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZz
ZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28zMihUZXh0dXJlRGVwdGhD
dWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop
IHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHop
KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzMzKFRleHR1cmVEZXB0aDJEPGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMpIHsK
LSAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
Qmlhcyk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28zNChUZXh0dXJlRGVwdGgy
RDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFz
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGVC
aWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZ
KSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb28zNShUZXh0dXJlRGVwdGgyRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBm
bG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7Ci0gICAgICAgICAgICByZXR1cm4g
U2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwg
ZmxvYXQyKGRkeTAsIGRkeTEpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzM2
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBv
ZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4
dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBk
ZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBm
bG9hdCBmb28zNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZl
bCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVz
dCBmbG9hdCBmb28zOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewot
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
TE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZs
b2F0IGZvbzM5KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMpIHsKLSAgICAgICAgICAg
IHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMp
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vNDAoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBp
bnQyKG9mZnNldFgsIG9mZnNldFkpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZv
bzQxKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRk
eTAsIGZsb2F0IGRkeTEpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAs
IGRkeTEpKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzQyKFRleHR1cmVEZXB0
aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdy
YWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBm
bG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgZmxvYXQgZm9vNDMoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7
Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IGxheWVyKSwgTE9EKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzQ0KFRleHR1
cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKLSAgICAgICAgfQotICAgICAgICB0
ZXN0IGZsb2F0IGZvbzQ1KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSkgewotICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb280NihUZXh0dXJlRGVwdGgyRDxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNt
cCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb280NyhUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1w
bGVDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlKTsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGZsb2F0IGZvbzQ4KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZs
b2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBh
cmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVz
dCBmbG9hdCBmb280OShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBiaWFzKSB7Ci0gICAgICAgICAgICByZXR1cm4g
U2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGJpYXMpOwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vNTAoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4
MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgZmxvYXQgZGR5MikgewotICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBm
bG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZsb2F0MyhkZHkwLCBkZHkxLCBkZHkyKSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb281MShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKLSAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiks
IGxvZCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb281MihUZXh0dXJlRGVwdGhD
dWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos
IGZsb2F0IGJpYXMpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCB6KSwgYmlhcyk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBm
b281MyhUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeDIsIGZs
b2F0IGRkeTAsIGZsb2F0IGRkeTEsIGZsb2F0IGRkeTIpIHsKLSAgICAgICAgICAgIHJldHVybiBT
YW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgZmxvYXQzKGRkeDAsIGRkeDEs
IGRkeDIpLCBmbG9hdDMoZGR5MCwgZGR5MSwgZGR5MikpOwotICAgICAgICB9Ci0gICAgICAgIHRl
c3QgZmxvYXQgZm9vNTQoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKLSAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGxvZCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdCBmb281NShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUpIHsK
LSAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXBMZXZlbFplcm8odGV4dHVyZSwgcywgZmxvYXQy
KHgsIHkpLCBjb21wYXJlVmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9v
NTYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVDbXBMZXZlbFplcm8odGV4dHVyZSwgcywgZmxvYXQyKHgs
IHkpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgZmxvYXQgZm9vNTcoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFy
ZVZhbHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wTGV2ZWxaZXJvKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1ZSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdGVzdCBmbG9hdCBmb281OChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFs
dWUsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZUNtcExldmVsWmVybyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBjb21wYXJlVmFs
dWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxv
YXQgZm9vNTkoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKLSAgICAgICAgICAg
IHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBjb21wYXJlVmFs
dWUpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQgZm9vNjAoVGV4dHVyZURlcHRoQ3Vi
ZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBm
bG9hdCBjb21wYXJlVmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXBMZXZlbFpl
cm8odGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBjb21wYXJlVmFsdWUpOwotICAgICAgICB9
Ci0gICAgYCk7Ci0gICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQs
IHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndU
ZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNE
LCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwg
cndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVz
Rm9yVGVzdGluZyhwcm9ncmFtKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgNyk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksIDE0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNjI1KV0pLCAxNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICog
NyArIDMgKiAxNCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVy
Q29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0p
LCAoMSAqIDcgKyAzICogMTQpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAo
NyArIDE0KSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
KyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDE0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkg
LyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0p
LCAoNyArIDE0KSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJy
b3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDcpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2MjUpXSksICgz
ICogNyArIDEgKiAxNCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJl
cGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgxICogNyArIDMgKiAx
NCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
ICsgMC4zNzUpXSksIDE0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVz
c01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAo
NyArIDE0KSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJy
b3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAtMC4zNzUpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCA3OSk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAu
Mzc1KV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxLjM3NSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9y
ZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwg
MCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVC
bGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBi
b3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSks
IDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVl
V2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzkgKyAxKSAvIDIpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1w
OiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE2KSAvIDIpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4
dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDcgKyAx
NCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoMTcgKyAxOCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAoMTggKyAxOSkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkg
LyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
MTIgKyAxMyArIDIwICsgMjEgKyA0NCArIDQ1ICsgNTIgKyA1MykgLyA4KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYx
KSAvIDgpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNSAvIDgpXSksICgxMiArIDEzICsgMjAgKyAyMSArICg0NCArIDQ1
ICsgNTIgKyA1MykgKiAzKSAvIDE2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0
ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC4yNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgKDQ0ICsgNDUgKyA1MiArIDUzKSAvIDQpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUg
KyAxNikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0
dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNDMg
KyA0NCArIDQ1ICsgNDYpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYp
IC8gNCk7Ci0gICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWN0dWFsbHkgdGVzdCB0aGUg
IkJpYXMiIGFyZ3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1cHBvc2VkIHRvIGJlIGFwcGxpZWQKLSAg
ICAvLyB0byB0aGUgdW5jbGFtcGVkIExPRCwgd2hpY2ggZm9yIHVzIGlzIC1JbmZpbml0eSAoYmVj
YXVzZSBvdXIgZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0
dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUg
KyAzOCArIDM5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsg
MzkpIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVkRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KSkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCAr
IDI5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
NTQgKyA1NSArIDYyICsgNjMpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMp
IC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUNh
c3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkg
KyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0
ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkg
KyA0MCkgLyA0KSkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
Q2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1
NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkp
IC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCAr
IDU1ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEp
IC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsg
MzkpIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5
ICsgNDApIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcg
KyA4MCArIDgxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyAr
IDgwICsgODEpIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSAr
IDU2ICsgNjMgKyA2NCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsg
NzggKyA4MSArIDgyKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSAr
IDU2ICsgNjMgKyA2NCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3
OCArIDgxICsgODIpIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBs
b2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciIsIG1heEFuaXNvdHJvcHk6IDJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCAoNC8zKSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwotICAgIGxldCB0
ZXh0dXJlMURJbnQ0ID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbW1sxLCAyLCAzLCA0XSwgWzEw
MCwgMjAwLCAzMDAsIDQwMF0sIFsxMDEsIDIwMiwgMzAxLCA0MDFdLCBbMTMsIDE0LCAxNSwgMTZd
XSwgW1sxNywgMTgsIDE5LCAyMF0sIFsyMSwgMjIsIDIzLCAyNF1dLCBbWzI1LCAyNiwgMjcsIDI4
XV1dLCAiaW50NCIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjQiLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMTAwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3RleHR1cmUxRElu
dDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksIDIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yNiIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAzMDAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBb
dGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgNDAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjki
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIw
ICsgMjEgKyAyOCArIDI5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQg
KyAyNSArIDI2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYp
IC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAgKyAyMSArIDI4ICsg
MjkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsg
MTQgKyAyMSArIDIyKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQg
KyA1NSArIDYyICsgNjMpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUg
KyA1NiArIDYzICsgNjQpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
Q2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYg
KyAzOSArIDQwKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVkRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1
ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSAr
IDQwKSAvIDQpKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYg
LyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIw
ICsgMjEgKyAyOCArIDI5KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAw
LjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgo
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAy
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQg
KyA1NSArIDYyICsgNjMpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgwICsg
ODEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVk
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAg
KyA4MSkgLyA0KSkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEz
ICsgMTQgKyAyMSArIDIyKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgo
MzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkg
LyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4
MikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VDYXN0ZWRGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VDYXN0ZWRG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUNhc3RlZEZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlQ2FzdGVkRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsg
NjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAv
IDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5
ICsgNDApIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUg
KyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUg
KyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSAr
IDgyKSAvIDQpKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDExKV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5l
dmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkRE
ZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMjMpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0Vx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSks
IDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTcpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMjMpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTdd
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90
RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dy
YW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdy
ZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFr
ZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxNyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVB
cnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTcpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxl
c3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDE3KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTcpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MjMpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21h
a2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9n
cmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAv
IDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1
ICsgNTYpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsg
NCArIDUgKyA2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0
ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoOSArIDEwKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCwgMCwgNCAvIHRleHR1
cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxOSArIDIwKSAvIDIpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMjkgKyAzMCkgLyAy
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJlLmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoMzkgKyA0MCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8g
dGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg0OSArIDUwKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTkgKyA2MCkgLyAyKTsK
LSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBb
dGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSAr
IDE2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0
ICsgMjUgKyAyNikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICg5ICsgMTApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICgxOSArIDIwKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpXSksICgyOSArIDMwKSAvIDIpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoMzkgKyA0MCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoNDkgKyA1MCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgKDU5ICsgNjApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAz
NSArIDM2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAv
IDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0
ICsgMjUgKyAyNikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00
IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDkgKyAxMCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCwgMCwg
NCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTkgKyAyMCkg
LyAyKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDI5ICsgMzApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM5
ICsgNDApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4
dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDkgKyA1MCkgLyAyKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1
cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU5ICsgNjApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0x
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSAr
IDM2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQz
ICsgNDQgKyA0NSArIDQ2KSAvIDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICg5ICsgMTApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDE5ICsgMjApIC8gMik7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMjkgKyAzMCkgLyAyKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzkgKyA0MCkgLyAyKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0OSArIDUwKSAvIDIpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1OSArIDYwKSAvIDIpOwotCi0gICAg
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1Iiwg
W21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEp
XSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDE3KV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNz
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBb
W1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9n
cmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVy
ZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtlMkREZXB0
aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUiLCBbbWFr
ZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwg
MCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1
IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDExKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tb
MTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
bGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShw
cm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21h
a2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyld
KSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTEpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtb
WzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
Im5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShw
cm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUiLCBbbWFrZTJE
RGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcp
XSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyMyldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdh
eXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0s
IFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRo
VGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0p
LCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3Iiwg
W21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTEpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFr
ZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDExKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0s
IFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyld
KSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRo
VGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9n
cmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDE3KV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVh
bCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2Uy
RERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFrZTJERGVwdGhUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyMyldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlz
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShw
cm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyMyldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgLSAxKV0pLCAwKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
KDMgKyA0ICsgNSArIDYpIC8gNCldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgKyAx
KV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0
ICsgNSArIDYpIC8gNCldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCArIDEpXSksIDAp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281OSIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUg
KyA2KSAvIDQpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281OSIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0ICsgMSldKSwgMCk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQg
KyA1ICsgNikgLyA0KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgKyAxKV0p
LCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMg
KyA0ICsgNSArIDYpIC8gNCldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCArIDEp
XSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281OSIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVE
ZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21w
YXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
ICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281OSIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibm90RXF1
YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0
ICsgMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5Iiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5j
dGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgz
ICsgNCArIDUgKyA2KSAvIDQgKyAxKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5
cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQg
LSAxKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDEpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281OSIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFy
ZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMg
KyA0ICsgNSArIDYpIC8gNCArIDEpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0g
MSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDApOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1
bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQg
KyA1ICsgNikgLyA0ICsgMSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSks
IDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9u
OiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2
KSAvIDQgKyAxKV0pLCAwKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDApOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAoMyArIDQgKyA1ICsgNikgLyA0KV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8g
NCArIDEpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDEpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246
ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1
ICsgNikgLyA0ICsgMSldKSwgMCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSks
IDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDApOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0
aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCAr
IDUgKyA2KSAvIDQgKyAxKV0pLCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEp
XSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0KV0pLCAwKTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVG
dW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMg
KyA0ICsgNSArIDYpIC8gNCArIDEpXSksIDEpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRl
ckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYp
IC8gNCAtIDEpXSksIDApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCldKSwgMSk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0ICsgMSldKSwgMSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyAr
IDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJhbHdheXMi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0KV0p
LCAxKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgKyAxKV0pLCAxKTsKLX0KLQotdGVzdHMu
dGV4dHVyZUdhdGhlciA9IGZ1bmN0aW9uKCkgewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
LSAgICAgICAgdGVzdCBmbG9hdDQgZm9vMShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSkpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZv
bzIoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewotICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0
ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAg
ICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKLSAgICAgICAg
ICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdDQgZm9vNChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9
Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzUoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgewotICAgICAgICAgICAgcmV0dXJu
IEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOwotICAgICAgICB9Ci0gICAgICAg
IHRlc3QgZmxvYXQ0IGZvbzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJl
LCBzLCBmbG9hdDIoeCwgeSkpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzco
VGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICByZXR1cm4gR2F0aGVy
KHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdDQgZm9vOChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikp
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzkoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICByZXR1cm4gR2F0aGVy
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzEwKFRleHR1cmVEZXB0aEN1YmU8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgewot
ICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOwot
ICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzExKFRleHR1cmVEZXB0aDJEPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1
ZSkgewotICAgICAgICAgICAgcmV0dXJuIEdhdGhlckNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIGNvbXBhcmVWYWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBmbG9hdDQgZm9vMTIo
VGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKLSAgICAg
ICAgICAgIHJldHVybiBHYXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJl
VmFsdWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3Qg
ZmxvYXQ0IGZvbzEzKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSkgewot
ICAgICAgICAgICAgcmV0dXJuIEdhdGhlckNtcCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5
ZXIpLCBjb21wYXJlVmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgZmxvYXQ0IGZvbzE0
KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGlu
dCBvZmZzZXRZKSB7Ci0gICAgICAgICAgICByZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXks
IHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4
dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwg
cndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJl
RGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3Jl
YXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKLSAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIFsyMSwgMjIsIDE0LCAx
M10pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSks
IFsyOCwgMjksIDIxLCAyMF0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBb
MjEsIDIyLCAxNCwgMTNdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgWzI4
LCAyOSwgMjEsIDIwXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjAsIDIxLCAxMywgMTJdKTsK
LSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksIFs2MiwgNjMsIDU1LCA1NF0pOwotICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzIxLCAyMiwg
MTQsIDEzXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFs2MywgNjQsIDU2LCA1
NV0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgWzcwLCA3MSwgNjMsIDYyXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFs1LCA2LCA0LCAz
XSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCBbMTUsIDE2LCAxNCwgMTNdKTsKLSAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzI1
LCAyNiwgMjQsIDIzXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMzUsIDM2LCAzNCwgMzNdKTsKLSAgICBj
aGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgWzQ1LCA0NiwgNDQsIDQzXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCBbNTUsIDU2LCA1NCwg
NTNdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgWzIxLCAyMiwgMTQsIDEzXSk7Ci0gICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCBbMjgsIDI5LCAy
MSwgMjBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIy
LCAxNCwgMTNdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgs
IDI5LCAyMSwgMjBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzIwLCAyMSwgMTMsIDEy
XSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksIFs2MiwgNjMsIDU1LCA1NF0pOwotICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgWzI4LCAyOSwgMjEsIDIwXSk7Ci0g
ICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIFs2MywgNjQsIDU2LCA1NV0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbNzAsIDcxLCA2MywgNjJd
KTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzUsIDYsIDQsIDNdKTsKLSAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksIFsxNSwgMTYsIDE0LCAxM10pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjUsIDI2LCAyNCwg
MjNdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0x
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFszNSwgMzYsIDM0LCAzM10pOwotICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCBbNDUsIDQ2LCA0NCwgNDNdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksIFs1NSwg
NTYsIDU0LCA1M10pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTMpXSksIFswLCAwLCAwLCAwXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEzKV0pLCBbMSwgMSwgMCwgMF0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTMpXSksIFswLCAwLCAxLCAwXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
Imxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAxLCAxLCAwXSk7Ci0gICAgY2hl
Y2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEzKV0pLCBbMCwgMCwgMCwgMV0p
OwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsx
LCAxLCAwLCAxXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTMpXSksIFswLCAwLCAxLCAxXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAxLCAxLCAxXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
Im5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIFsxLCAxLCAwLCAwXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
WzAsIDAsIDEsIDBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEs
IDEsIDEsIDBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAw
LCAxXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDFd
KTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDFd
KTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDEsIDFdKTsKLSAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA1NSldKSwgWzAsIDAsIDAsIDBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246
ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwg
MSwgMCwgMF0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwgMCwgMSwgMF0pOwotICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA1NSldKSwgWzEsIDEsIDEsIDBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJn
cmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwg
MCwgMCwgMV0pOwotICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwgMSwgMCwgMV0pOwotICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA1NSldKSwgWzAsIDAsIDEsIDFdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSks
IFsxLCAxLCAxLCAxXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAwLCAwXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0
aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDBdKTsK
LSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgWzAsIDAsIDEsIDBdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsxLCAxLCAxLCAwXSk7Ci0gICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29t
cGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAs
IDAsIDAsIDFdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDFdKTsKLSAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAx
LCAxXSk7Ci0gICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMV0pOwotICAgIC8vIEZJWE1FOiBHYXRoZXIgb3RoZXIg
Y29tcG9uZW50cwotfQotCi10ZXN0cy5yZWZlcmVuY2VFcXVhbGl0eSA9IGZ1bmN0aW9uKCkgewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBib29sIGZvbzEoKSB7Ci0g
ICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKLSAgICAg
ICAgICAgIHRocmVhZCBpbnQqIHogPSAmeDsKLSAgICAgICAgICAgIHJldHVybiB5ID09IHo7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzIoKSB7Ci0gICAgICAgICAgICBpbnQgeDsK
LSAgICAgICAgICAgIHRocmVhZCBpbnQqIHogPSAmeDsKLSAgICAgICAgICAgIHJldHVybiAmeCA9
PSB6OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28zKCkgewotICAgICAgICAgICAg
aW50IHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiB5ID0gJng7Ci0gICAgICAgICAgICByZXR1
cm4geSA9PSAmeDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vNCgpIHsKLSAgICAg
ICAgICAgIGludCB4OwotICAgICAgICAgICAgcmV0dXJuICZ4ID09ICZ4OwotICAgICAgICB9Ci0g
ICAgICAgIHRlc3QgYm9vbCBmb281KCkgewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAg
ICByZXR1cm4gJnggIT0gJng7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzYoKSB7
Ci0gICAgICAgICAgICBpbnQgeCA9IDc7Ci0gICAgICAgICAgICBpbnQgeSA9IDc7Ci0gICAgICAg
ICAgICByZXR1cm4gJnggPT0gJnk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzco
KSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbCA9PSBudWxsOwotICAgICAgICB9Ci0gICAgICAg
IHRlc3QgYm9vbCBmb284KCkgewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB0aHJl
YWQgaW50KiB5ID0gJng7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiB6ID0gJng7Ci0gICAgICAg
ICAgICByZXR1cm4gJnkgPT0gJno7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzko
KSB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsK
LSAgICAgICAgICAgIHJldHVybiAmeSA9PSAmeTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJv
b2wgZm9vMTAoKSB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiB5OwotICAgICAgICAgICAgcmV0
dXJuIG51bGwgPT0geTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMTEoKSB7Ci0g
ICAgICAgICAgICB0aHJlYWQgaW50KiB5OwotICAgICAgICAgICAgcmV0dXJuIHkgPT0gbnVsbDsK
LSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMTIoKSB7Ci0gICAgICAgICAgICBpbnQg
eDsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKLSAgICAgICAgICAgIHJldHVybiBu
dWxsID09IHk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzEzKCkgewotICAgICAg
ICAgICAgaW50IHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiB5ID0gJng7Ci0gICAgICAgICAg
ICByZXR1cm4geSA9PSBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28xNCgp
IHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsK
LSAgICAgICAgICAgIHRocmVhZCBpbnRbXSB6ID0gQHg7Ci0gICAgICAgICAgICByZXR1cm4geSA9
PSB6OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28xNSgpIHsKLSAgICAgICAgICAg
IGludCB4OwotICAgICAgICAgICAgdGhyZWFkIGludFtdIHogPSBAeDsKLSAgICAgICAgICAgIHJl
dHVybiBAeCA9PSB6OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28xNigpIHsKLSAg
ICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsKLSAgICAg
ICAgICAgIHJldHVybiB5ID09IEB4OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28x
NygpIHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgcmV0dXJuIEB4ID09IEB4Owot
ICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28xOCgpIHsKLSAgICAgICAgICAgIGludCB4
OwotICAgICAgICAgICAgcmV0dXJuIEB4ICE9IEB4OwotICAgICAgICB9Ci0gICAgICAgIHRlc3Qg
Ym9vbCBmb28xOSgpIHsKLSAgICAgICAgICAgIGludCB4ID0gNzsKLSAgICAgICAgICAgIGludCB5
ID0gNzsKLSAgICAgICAgICAgIHJldHVybiBAeCA9PSBAeTsKLSAgICAgICAgfQotICAgICAgICB0
ZXN0IGJvb2wgZm9vMjEoKSB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIHRocmVh
ZCBpbnRbXSB5ID0gQHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W10geiA9IEB4OwotICAgICAg
ICAgICAgcmV0dXJuIEB5ID09IEB6OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28y
MigpIHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBA
eDsKLSAgICAgICAgICAgIHJldHVybiBAeSA9PSBAeTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0
IGJvb2wgZm9vMjMoKSB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W10geTsKLSAgICAgICAgICAg
IHJldHVybiBudWxsID09IHk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzI0KCkg
ewotICAgICAgICAgICAgdGhyZWFkIGludFtdIHk7Ci0gICAgICAgICAgICByZXR1cm4geSA9PSBu
dWxsOwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28yNSgpIHsKLSAgICAgICAgICAg
IGludCB4OwotICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsKLSAgICAgICAgICAgIHJl
dHVybiBudWxsID09IHk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzI2KCkgewot
ICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W10geSA9IEB4OwotICAg
ICAgICAgICAgcmV0dXJuIHkgPT0gbnVsbDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wg
Zm9vMjcoKSB7Ci0gICAgICAgICAgICBpbnRbM10geDsKLSAgICAgICAgICAgIHRocmVhZCBpbnRb
XSB5ID0gQHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W10geiA9IEB4OwotICAgICAgICAgICAg
cmV0dXJuIHkgPT0gejsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMjgoKSB7Ci0g
ICAgICAgICAgICBpbnRbM10geDsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSB6ID0gQHg7Ci0g
ICAgICAgICAgICByZXR1cm4gQHggPT0gejsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wg
Zm9vMjkoKSB7Ci0gICAgICAgICAgICBpbnRbM10geDsKLSAgICAgICAgICAgIHRocmVhZCBpbnRb
XSB5ID0gQHg7Ci0gICAgICAgICAgICByZXR1cm4geSA9PSBAeDsKLSAgICAgICAgfQotICAgICAg
ICB0ZXN0IGJvb2wgZm9vMzAoKSB7Ci0gICAgICAgICAgICBpbnRbM10geDsKLSAgICAgICAgICAg
IHJldHVybiBAeCA9PSBAeDsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMzEoKSB7
Ci0gICAgICAgICAgICBpbnRbM10geDsKLSAgICAgICAgICAgIHJldHVybiBAeCAhPSBAeDsKLSAg
ICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMzIoKSB7Ci0gICAgICAgICAgICBpbnRbM10g
eDsKLSAgICAgICAgICAgIHhbMF0gPSA3OwotICAgICAgICAgICAgeFsxXSA9IDg7Ci0gICAgICAg
ICAgICB4WzJdID0gOTsKLSAgICAgICAgICAgIGludFszXSB5OwotICAgICAgICAgICAgeVswXSA9
IDc7Ci0gICAgICAgICAgICB5WzFdID0gODsKLSAgICAgICAgICAgIHlbMl0gPSA5OwotICAgICAg
ICAgICAgcmV0dXJuIEB4ID09IEB5OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBmb28z
MygpIHsKLSAgICAgICAgICAgIGludFszXSB4OwotICAgICAgICAgICAgdGhyZWFkIGludFtdIHkg
PSBAeDsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSB6ID0gQHg7Ci0gICAgICAgICAgICByZXR1
cm4gQHkgPT0gQHo7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzM0KCkgewotICAg
ICAgICAgICAgaW50WzNdIHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W10geSA9IEB4OwotICAg
ICAgICAgICAgcmV0dXJuIEB5ID09IEB5OwotICAgICAgICB9Ci0gICAgICAgIHRlc3QgYm9vbCBm
b28zNSgpIHsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSB5OwotICAgICAgICAgICAgcmV0dXJu
IG51bGwgPT0geTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMzYoKSB7Ci0gICAg
ICAgICAgICB0aHJlYWQgaW50W10geTsKLSAgICAgICAgICAgIHJldHVybiB5ID09IG51bGw7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGVzdCBib29sIGZvbzM3KCkgewotICAgICAgICAgICAgaW50WzNd
IHg7Ci0gICAgICAgICAgICB0aHJlYWQgaW50W10geSA9IEB4OwotICAgICAgICAgICAgcmV0dXJu
IG51bGwgPT0geTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0IGJvb2wgZm9vMzgoKSB7Ci0gICAg
ICAgICAgICBpbnRbM10geDsKLSAgICAgICAgICAgIHRocmVhZCBpbnRbXSB5ID0gQHg7Ci0gICAg
ICAgICAgICByZXR1cm4geSA9PSBudWxsOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtdKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCBmYWxzZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNiIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW10pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIyIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW10pLCBmYWxzZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBb
XSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yNyIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjgiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFtdKSwgdHJ1ZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
MiIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMzIiwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBb
XSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zOCIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBpbnQgeDsKLSAgICAgICAgICAgICAgICBmbG9hdCB5OwotICAgICAgICAgICAgICAgIGJv
b2wgeiA9ICgmeCA9PSAmeSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiB5ID0gJng7
Ci0gICAgICAgICAgICAgICAgYm9vbCB6ID0gKCZ4ID09ICZ5KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9pZCBmb28o
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgICAg
IGZsb2F0IHk7Ci0gICAgICAgICAgICAgICAgYm9vbCB6ID0gKEB4ID09IEB5KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
cik7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAg
dm9pZCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAg
ICAgICAgICAgIHRocmVhZCBpbnRbXSB5ID0gQHg7Ci0gICAgICAgICAgICAgICAgYm9vbCB6ID0g
KEB4ID09IEB5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLmNvbW1lbnRQYXJzaW5nID0gZnVu
Y3Rpb24oKSB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICAvKiB0aGlzIGNv
bW1lbnQKLSAgICAgICAgcnVucyBvdmVyIG11bHRpcGxlIGxpbmVzICovCi0gICAgICAgIHRlc3Qg
Ym9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKLQotICAgIGNoZWNr
RmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgLyogdGhpcyBjb21tZW50Ci0g
ICAgICAgIHJ1bnMgb3ZlciBtdWx0aXBsZSBsaW5lcwotICAgICAgICBib29sIGZvbygpIHsgcmV0
dXJuIHRydWU7IH0KLSAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV0xl
eGljYWxFcnJvcik7Ci19Ci0KLXRlc3RzLmNhbGxBcmd1bWVudHNBcmVDb3BpZWRJbW1lZGlhdGVs
eUFmdGVyRXZhbHVhdGlvbiA9ICgpID0+IHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAqYmFy
KDUpICsgKmJhcig3KTsKLSAgICAgICAgfQotCi0gICAgICAgIHRocmVhZCBpbnQqIGJhcihpbnQg
dmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB4ID0gdmFsdWU7Ci0gICAgICAgICAg
ICByZXR1cm4gJng7Ci0gICAgICAgIH0KLSAgICBgKTsKLQotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAxMik7Ci19OwotCi10ZXN0cy5ldmFs
dWF0aW9uT3JkZXJGb3JBcmd1bWVudHMgPSAoKSA9PiB7Ci0gICAgY29uc3QgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpIHsgcmV0dXJuICpiYXIoMTApICsgKmJhcigy
MCk7IH0KLQotICAgICAgICB0aHJlYWQgaW50KiBiYXIoaW50IHZhbHVlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpbnQgeCA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuICZ4OwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGVzdCBpbnQgYmF6KCkgeyByZXR1cm4gcGx1cyhiYXIoMTApLCBiYXIo
MjApKTsgfQotCi0gICAgICAgIGludCBwbHVzKHRocmVhZCBpbnQqIHgsIHRocmVhZCBpbnQqIHkp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAqeCArICp5OwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDMwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
eiIsIFtdKSwgMjApOwotfQotCi10ZXN0cy5jYW5ub3RDYWxsQW5vdGhlckVudHJ5UG9pbnQgPSAo
KSA9PiB7Ci0gICAgY2hlY2tGYWlsKCgpID0+IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28g
eyBpbnQgeCA6IGF0dHJpYnV0ZSgwKTsgfQotICAgICAgICB2ZXJ0ZXggRm9vIGZvbygpIHsgcmV0
dXJuIGJhcigpOyB9Ci0gICAgICAgIHZlcnRleCBGb28gYmFyKCkgeyByZXR1cm4gRm9vKCk7IH0K
LSAgICBgKSwgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhP
ZigiaXQgY2Fubm90IGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhbiBleGlzdGluZyBzaGFkZXIiKSAh
PT0gLTEpOwotfQotCi10ZXN0cy5pbmxpbmluZ0RvZXNOb3RBZmZlY3ROZXN0ZWRDYWxscyA9ICgp
ID0+IHsKLSAgICBjb25zdCBwcm9ncmFtID0gcHJlcGFyZSgiL2ludGVybmFsL3Rlc3QiLCAwLCBg
Ci0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBw
bHVzKGJhcigpLCBiYXooKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgcGx1cyhpbnQgYSwg
aW50IGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhICsgYjsKLSAgICAgICAgfQot
Ci0gICAgICAgIGludCBiYXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMTc7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpbnQgYmF6KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIDM7Ci0gICAgICAgIH0KLSAgICBgLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMjApCi19Ci0KLXRlc3RzLmlubGluaW5n
RG9lc250UHJvZHVjZUFsaWFzaW5nSXNzdWVzID0gKCkgPT4gewotICAgIGNvbnN0IHByb2dyYW0g
PSBwcmVwYXJlKCIvaW50ZXJuYWwvdGVzdCIsIDAsIGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhcigyKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGludCBiYXIoaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB5ID0geCAqIHg7
Ci0gICAgICAgICAgICByZXR1cm4gYmF6KHkpOwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IGJh
eihpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHkgPSA0ICogeDsKLSAgICAgICAg
ICAgIHJldHVybiB4ICsgeTsKLSAgICAgICAgfQotICAgIGAsIHRydWUpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAyMCk7Ci19Ci0KLXRl
c3RzLnJldHVyblJlZmVyZW5jZVRvUGFyYW1ldGVyID0gKCkgPT4gewotICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGJvb2wgY29uZGl0aW9uKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gKmJhcihjb25kaXRpb24sIDEsIDIpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGhyZWFkIGludCogYmFyKGJvb2wgY29uZGl0aW9uLCBpbnQgYSwgaW50IGIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBjb25kaXRpb24gPyAmYSA6ICZiOwotICAg
ICAgICB9Ci0gICAgYCk7Ci0KLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFsgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSkgXSksIDEpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgWyBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSkgXSksIDIpOwotfQotCi10ZXN0cy5yZXR1cm5SZWZlcmVuY2VUb1BhcmFtZXRl
cldpdGhEaWZmZXJlbnRGdW5jdGlvbnMgPSAoKSA9PiB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gKmJhcigxMCkgKyAqYmF6KDIwKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRocmVhZCBpbnQq
IGJhcihpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICZ4OwotICAgICAgICB9
Ci0KLSAgICAgICAgdGhyZWFkIGludCogYmF6KGludCB5KQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gJnk7Ci0gICAgICAgIH0KLSAgICBgKTsKLQotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzMCk7Ci19Ci0KLXRlc3RzLnJldHVy
blJlZmVyZW5jZVRvU2FtZVBhcmFtZXRlciA9ICgpID0+IHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBwbHVzKGJhcig1KSwgYmFyKDcpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBwbHVz
KHRocmVhZCBpbnQqIHgsIHRocmVhZCBpbnQqIHkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiAqeCArICp5OwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyZWFkIGludCogYmFyKGludCB4
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gJng7Ci0gICAgICAgIH0KLSAgICBgKTsK
LQotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCAxMCk7Ci19Ci0KLXRlc3RzLnJldHVyblJlZmVyZW5jZVRvTG9jYWxWYXJpYWJsZSA9ICgpID0+
IHsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAqYmFyKCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICB0aHJlYWQgaW50KiBiYXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgYSA9IDQyOwot
ICAgICAgICAgICAgcmV0dXJuICZhOwotICAgICAgICB9Ci0gICAgYCk7Ci0KLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwotfQotCi10
ZXN0cy5yZXR1cm5SZWZlcmVuY2VUb0xvY2FsVmFyaWFibGVXaXRoTmVzdGluZyA9ICgpID0+IHsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiAqYmFyKCkgKyAqYmF6KCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aHJlYWQgaW50KiBiYXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgYSA9
IDIwOwotICAgICAgICAgICAgcmV0dXJuICZhOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyZWFk
IGludCogYmF6KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGEgPSAyMjsKLSAgICAgICAg
ICAgIHJldHVybiAmYTsKLSAgICAgICAgfQotICAgIGApOwotCi0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKLX0KLQotdGVzdHMuY29u
dmVydFB0clRvQXJyYXlSZWYgPSAoKSA9PiB7Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFy
KClbMF07Ci0gICAgICAgIH0KLQotICAgICAgICB0aHJlYWQgaW50W10gYmFyKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgaW50IHggPSA0MjsKLSAgICAgICAgICAgIHJldHVybiBAKCZ4KTsKLSAg
ICAgICAgfQotICAgIGApOwotCi0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksIDQyKTsKLX0KLQotdGVzdHMuY29udmVydExvY2FsVmFyaWFibGVU
b0FycmF5UmVmID0gKCkgPT4gewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
dGVzdCBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhcigpWzBdOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdGhyZWFkIGludFtdIGJhcigpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGludCB4ID0gNDI7Ci0gICAgICAgICAgICByZXR1cm4gQHg7Ci0gICAgICAgIH0KLSAg
ICBgKTsKLQotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA0Mik7Ci19Ci0KLXRlc3RzLnJlZmVyZW5jZVRha2VuVG9Mb2NhbFZhcmlhYmxlSW5F
bnRyeVBvaW50U2hvdWxkbnRNb3ZlQW55dGhpbmcgPSAoKSA9PiB7Ci0gICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpbnQgYSA9IDQyOwotICAgICAgICAgICAgdGhyZWFkIGludCogYiA9ICZhOwotICAgICAgICAg
ICAgcmV0dXJuICpiOwotICAgICAgICB9Ci0gICAgYCk7Ci0KLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwotfTsKLQotdGVzdHMucGFz
c2luZ0FycmF5VG9GdW5jdGlvbiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlu
dFsxMF0gYXJyOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgICAgIGFycltpXSA9IGludChpKSArIDE7Ci0gICAgICAgICAgICBy
ZXR1cm4gc3VtKGFycik7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgc3VtKGludFsxMF0geHMp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWlu
dCBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAgIHQgPSB0ICsgeHNb
aV07Ci0gICAgICAgICAgICByZXR1cm4gdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA1NSk7Ci19Ci0K
LXRlc3RzLnJldHVybkFuQXJyYXlGcm9tQUZ1bmN0aW9uID0gZnVuY3Rpb24oKQotewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaW50WzVdIHlzID0gYmFyKCk7Ci0gICAgICAgICAgICByZXR1cm4geXNbMF0g
KyB5c1sxXSArIHlzWzJdICsgeXNbM10gKyB5c1s0XTsKLSAgICAgICAgfQotCi0gICAgICAgIGlu
dFs1XSBiYXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnRbNV0geHM7Ci0gICAgICAgICAg
ICB4c1swXSA9IDE7Ci0gICAgICAgICAgICB4c1sxXSA9IDI7Ci0gICAgICAgICAgICB4c1syXSA9
IDM7Ci0gICAgICAgICAgICB4c1szXSA9IDQ7Ci0gICAgICAgICAgICB4c1s0XSA9IDU7Ci0gICAg
ICAgICAgICByZXR1cm4geHM7Ci0gICAgICAgIH0KLSAgICBgKTsKLX0KLQotdGVzdHMuY29weUFy
cmF5ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
dGVzdCBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50WzEwXSB4czsKLSAgICAg
ICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAg
ICAgIHhzW2ldID0gaW50KGkpICsgMTsKLSAgICAgICAgICAgIGludFsxMF0geXMgPSB4czsKLSAg
ICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgICAgIHhzW2ldID0gMDsKLSAgICAgICAgICAgIGludCBzdW0gPSAwOwotICAgICAgICAgICAg
Zm9yICh1aW50IGkgPSAwOyBpIDwgeXMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgc3Vt
ID0gc3VtICsgeXNbaV07Ci0gICAgICAgICAgICByZXR1cm4gc3VtOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDU1KTsKLX0KLQotdGVzdHMuc2V0dGluZ0FuQXJyYXlJbnNpZGVBU3RydWN0ID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7
Ci0gICAgICAgICAgICBpbnRbMV0gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQg
Zm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIHRocmVh
ZCBGb28qIGJhciA9ICZmb287Ci0gICAgICAgICAgICBiYXItPmFycmF5WzBdID0gMjE7Ci0gICAg
ICAgICAgICByZXR1cm4gZm9vLmFycmF5WzBdOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDIxKTsKLX0K
LQotdGVzdHMudHJhcEJlY2F1c2VPZkluZGV4QWNlc3NzID0gKCkgPT4gewotICAgIGNvbnN0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpbnRbNV0gYXJyYXk7Ci0gICAgICAgICAgICBhcnJheVs2XSA9IDQyOwotICAgICAg
ICAgICAgcmV0dXJuIGFycmF5WzZdOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFw
KHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0lu
dCk7Ci19Ci0KLXRlc3RzLnRyYXBUcmFuc2l0aXZlbHkgPSAoKSA9PiB7Ci0gICAgY29uc3QgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHdpbGxUcmFwVHJhbnNpdGl2ZWx5KCk7Ci0gICAgICAgICAgICByZXR1cm4gNDI7Ci0g
ICAgICAgIH0KLQotICAgICAgICB2b2lkIHdpbGxUcmFwVHJhbnNpdGl2ZWx5KCkKLSAgICAgICAg
ewotICAgICAgICAgICAgZG9UcmFwKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRvVHJh
cCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRyYXA7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIGNoZWNrSW50KTsKLX07Ci0KLW9rVG9UZXN0ID0gdHJ1ZTsKLQotbGV0IHRlc3RGaWx0ZXIg
PSAvLiovOyAvLyBydW4gZXZlcnl0aGluZyBieSBkZWZhdWx0Ci1sZXQgdGVzdEV4Y2x1c2lvbkZp
bHRlciA9IC9eRElTQUJMRURfLzsKLWlmICh0aGlzWyJhcmd1bWVudHMiXSkgewotICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHN3aXRjaCAo
YXJndW1lbnRzWzBdKSB7Ci0gICAgICAgIGNhc2UgIi0tZmlsdGVyIjoKLSAgICAgICAgICAgIHRl
c3RGaWx0ZXIgPSBuZXcgUmVnRXhwKGFyZ3VtZW50c1srK2ldKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3du
IGFyZ3VtZW50OiAiLCBhcmd1bWVudHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotfQotCi1mdW5j
dGlvbiogZG9UZXN0KHRlc3RGaWx0ZXIpCi17Ci0gICAgaWYgKCFva1RvVGVzdCkKLSAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IHNldHVwIGlzIGluY29tcGxldGUuIik7Ci0gICAgbGV0IGJl
Zm9yZSA9IHByZWNpc2VUaW1lKCk7Ci0KLSAgICBsZXQgbmFtZXMgPSBbXTsKLSAgICBmb3IgKGxl
dCBzIGluIHRlc3RzKQotICAgICAgICBuYW1lcy5wdXNoKHMpOwotICAgIG5hbWVzLnNvcnQoKTsK
LSAgICBmb3IgKGxldCBzIG9mIG5hbWVzKSB7Ci0gICAgICAgIGlmIChzLm1hdGNoKHRlc3RGaWx0
ZXIpKSB7Ci0gICAgICAgICAgICBpZiAocy5tYXRjaCh0ZXN0RXhjbHVzaW9uRmlsdGVyKSkgewot
ICAgICAgICAgICAgICAgIHByaW50KGBTa2lwcGluZyAke3N9IGJlY2F1c2UgaXQgaXMgZGlzYWJs
ZWQuYCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHByaW50KCJURVNU
OiAiICsgcyArICIuLi4iKTsKLSAgICAgICAgICAgICAgICB5aWVsZDsKLSAgICAgICAgICAgICAg
ICBjb25zdCB0ZXN0QmVmb3JlID0gcHJlY2lzZVRpbWUoKTsKLSAgICAgICAgICAgICAgICB0ZXN0
c1tzXSgpOwotICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RBZnRlciA9IHByZWNpc2VUaW1lKCk7
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYCAgICBPSywgdG9vayAke01hdGgucm91bmQoKHRlc3RB
ZnRlciAtIHRlc3RCZWZvcmUpICogMTAwMCl9IG1zYCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICBsZXQgYWZ0ZXIgPSBwcmVjaXNlVGltZSgpOwotCi0gICAgcHJpbnQo
IlN1Y2Nlc3MhIik7Ci0gICAgcHJpbnQoIlRoYXQgdG9vayAiICsgKGFmdGVyIC0gYmVmb3JlKSAq
IDEwMDAgKyAiIG1zLiIpOwotfQotCi1pZiAoIXRoaXMud2luZG93ICYmICF0aGlzLnJ1bm5pbmdJ
bkNvY29hSG9zdCkgewotICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IEluZmluaXR5OwotICAg
IGZvciAobGV0IF8gb2YgZG9UZXN0KHRlc3RGaWx0ZXIpKSB7IH0KLX0KLQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQwNzY5NGZhYzI2Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXh0dXJlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTQ0ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBUZXh0dXJlIHsKLSAgICBjb25zdHJ1Y3RvcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpCi0gICAgewotICAg
ICAgICB0aGlzLl9kaW1lbnNpb24gPSBkaW1lbnNpb247Ci0gICAgICAgIHRoaXMuX3dpZHRoID0g
d2lkdGg7Ci0gICAgICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDsKLSAgICAgICAgdGhpcy5fZGVw
dGggPSBkZXB0aDsKLSAgICAgICAgdGhpcy5fbGV2ZWxDb3VudCA9IGxldmVsQ291bnQ7Ci0gICAg
ICAgIHRoaXMuX2xheWVyQ291bnQgPSBsYXllckNvdW50OwotICAgICAgICB0aGlzLl9pbm5lclR5
cGUgPSBpbm5lclR5cGU7Ci0gICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhOwotICAgIH0KLQotICAg
IGdldCBkaW1lbnNpb24oKSB7IHJldHVybiB0aGlzLl9kaW1lbnNpb247IH0KLSAgICBnZXQgd2lk
dGgoKSB7IHJldHVybiB0aGlzLl93aWR0aDsgfQotICAgIGdldCBoZWlnaHQoKSB7IHJldHVybiB0
aGlzLl9oZWlnaHQ7IH0KLSAgICBnZXQgZGVwdGgoKSB7IHJldHVybiB0aGlzLl9kZXB0aDsgfQot
ICAgIGdldCBsZXZlbENvdW50KCkgeyByZXR1cm4gdGhpcy5fbGV2ZWxDb3VudDsgfQotICAgIGdl
dCBsYXllckNvdW50KCkgeyByZXR1cm4gdGhpcy5fbGF5ZXJDb3VudDsgfQotICAgIGdldCBpbm5l
clR5cGUoKSB7IHJldHVybiB0aGlzLl9pbm5lclR5cGU7IH0KLSAgICBnZXQgZGF0YSgpIHsgcmV0
dXJuIHRoaXMuX2RhdGE7IH0KLQotICAgIGVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwgaywg
aiwgaSkKLSAgICB7Ci0gICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXll
ckNvdW50Ci0gICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENv
dW50Ci0gICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgKLSAgICAgICAgICAg
IHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKLSAgICAgICAgICAgIHx8IGkgPCAwIHx8IGkg
Pj0gdGhpcy53aWR0aCkKLSAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgIHJl
dHVybiB0aGlzLmVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKTsKLSAgICB9Ci0KLSAgICBz
ZXRFbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQotICAgIHsKLSAg
ICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKLSAgICAgICAg
ICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKLSAgICAgICAgICAg
IHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAotICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+
PSB0aGlzLmhlaWdodAotICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB0aGlzLnNldEVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpLCB2YWx1ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLX0K
LQotY2xhc3MgVGV4dHVyZTFEIGV4dGVuZHMgVGV4dHVyZSB7Ci0gICAgY29uc3RydWN0b3IoaW5u
ZXJUeXBlLCBkYXRhKQotICAgIHsKLSAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1p
cG1hcHMuCi0gICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJyYXkgb2YgZWxlbWVu
dHMuCi0gICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkg
b2YgMi00IHNjYWxhcnMuCi0gICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2Yt
dHdvLgotICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXNpemUgb2YgdGhlIHByZXZpb3Vz
IHNpemUuCi0KLSAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7Ci0gICAgICAgIGxldCB3aWR0aCA9
IGRhdGFbMF0ubGVuZ3RoOwotICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKLSAgICAgICAgbGV0IGRl
cHRoID0gMTsKLSAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKLSAgICAgICAg
bGV0IGxheWVyQ291bnQgPSAxOwotICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOwotICAg
IH0KLQotICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
LmRhdGFbbGV2ZWxdLmxlbmd0aDsKLSAgICB9Ci0KLSAgICBoZWlnaHRBdExldmVsKGxldmVsKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgZGVwdGhBdExldmVsKGxldmVs
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgZWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGkpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtp
XTsKLSAgICB9Ci0KLSAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUp
Ci0gICAgewotICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2ldID0gdmFsdWU7Ci0gICAgfQotfQot
Ci1jbGFzcyBUZXh0dXJlMURBcnJheSBleHRlbmRzIFRleHR1cmUgewotICAgIGNvbnN0cnVjdG9y
KGlubmVyVHlwZSwgZGF0YSkKLSAgICB7Ci0gICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBv
ZiAxRCB0ZXh0dXJlcy4KLSAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2Ft
ZSB3aWR0aCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCi0KLSAgICAgICAgbGV0IGRpbWVuc2lvbiA9
IDE7Ci0gICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwotICAgICAgICBsZXQg
aGVpZ2h0ID0gMTsKLSAgICAgICAgbGV0IGRlcHRoID0gMTsKLSAgICAgICAgbGV0IGxldmVsQ291
bnQgPSBkYXRhWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0
aDsKLSAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKLSAgICB9Ci0KLSAgICB3aWR0aEF0
TGV2ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5s
ZW5ndGg7Ci0gICAgfQotCi0gICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiAxOwotICAgIH0KLQotICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ldOwotICAg
IH0KLQotICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ldID0gdmFsdWU7Ci0gICAgfQotfQot
Ci1jbGFzcyBUZXh0dXJlMkQgZXh0ZW5kcyBUZXh0dXJlIHsKLSAgICBjb25zdHJ1Y3Rvcihpbm5l
clR5cGUsIGRhdGEpCi0gICAgewotICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlw
bWFwcy4KLSAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5
IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgotICAgICAg
ICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2Fs
YXJzLgotICAgICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10
d28uCi0gICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0
IG9mIHRoZSBwcmV2aW91cyBzaXplLgotCi0gICAgICAgIGxldCBkaW1lbnNpb24gPSAyOwotICAg
ICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGhlaWdodCA9
IGRhdGFbMF0ubGVuZ3RoOwotICAgICAgICBsZXQgZGVwdGggPSAxOwotICAgICAgICBsZXQgbGV2
ZWxDb3VudCA9IGRhdGEubGVuZ3RoOwotICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7Ci0gICAg
ICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxh
eWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7Ci0gICAgfQotCi0gICAgd2lkdGhBdExldmVsKGxl
dmVsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOwot
ICAgIH0KLQotICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7Ci0gICAgfQotCi0gICAgZGVwdGhBdExldmVsKGxldmVs
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgZWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGkpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtq
XVtpXTsKLSAgICB9Ci0KLSAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFs
dWUpCi0gICAgewotICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldID0gdmFsdWU7Ci0gICAg
fQotfQotCi1sZXQgVGV4dHVyZURlcHRoMkQgPSBUZXh0dXJlMkQ7Ci0KLWNsYXNzIFRleHR1cmUy
REFycmF5IGV4dGVuZHMgVGV4dHVyZSB7Ci0gICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQotICAgIHsKLSAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIHRleHR1cmVzLgot
ICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQg
YW5kIG51bWJlciBvZiBtaXBtYXBzLgotCi0gICAgICAgIGxldCBkaW1lbnNpb24gPSAyOwotICAg
ICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGhlaWdo
dCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwotICAgICAgICBsZXQgZGVwdGggPSAxOwotICAgICAgICBs
ZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOwotICAgICAgICBsZXQgbGF5ZXJDb3VudCA9
IGRhdGEubGVuZ3RoOwotICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOwotICAgIH0KLQot
ICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFb
MF1bbGV2ZWxdWzBdLmxlbmd0aDsKLSAgICB9Ci0KLSAgICBoZWlnaHRBdExldmVsKGxldmVsKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOwotICAgIH0K
LQotICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAxOwotICAg
IH0KLQotICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOwotICAgIH0KLQotICAgIHNldEVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
ZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7Ci0gICAgfQotfQotCi1sZXQgVGV4dHVy
ZURlcHRoMkRBcnJheSA9IFRleHR1cmUyREFycmF5OwotCi1jbGFzcyBUZXh0dXJlM0QgZXh0ZW5k
cyBUZXh0dXJlIHsKLSAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCi0gICAgewotICAg
ICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KLSAgICAgICAgLy8gVGhlIGZp
cnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2Ug
aXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRz
LgotICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9m
IDItNCBzY2FsYXJzLgotICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11
c3QgYmUgcG93ZXJzLW9mLXR3by4KLSAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0
aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRlcHRoIG9mIHRoZSBwcmV2aW91cyBzaXplLgotCi0g
ICAgICAgIGxldCBkaW1lbnNpb24gPSAzOwotICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBd
WzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwotICAg
ICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGxldmVsQ291bnQg
PSBkYXRhLmxlbmd0aDsKLSAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOwotICAgICAgICBzdXBl
cihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50
LCBpbm5lclR5cGUsIGRhdGEpOwotICAgIH0KLQotICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdWzBdLmxlbmd0aDsKLSAgICB9
Ci0KLSAgICBoZWlnaHRBdExldmVsKGxldmVsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOwotICAgIH0KLQotICAgIGRlcHRoQXRMZXZlbChsZXZlbCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKLSAgICB9Ci0K
LSAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldOwotICAgIH0KLQotICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuZGF0YVtsZXZl
bF1ba11bal1baV0gPSB2YWx1ZTsKLSAgICB9Ci19Ci0KLWNsYXNzIFRleHR1cmVDdWJlIGV4dGVu
ZHMgVGV4dHVyZSB7Ci0gICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQotICAgIHsKLSAg
ICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMuCi0gICAgICAgIC8v
IEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGFu
ZCBudW1iZXIgb2YgbWlwbWFwcy4KLQotICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKLSAgICAg
ICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7Ci0gICAgICAgIGxldCBoZWlnaHQg
PSBkYXRhWzBdWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGRlcHRoID0gMTsKLSAgICAgICAgbGV0
IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGxheWVyQ291bnQgPSBk
YXRhLmxlbmd0aDsKLSAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKLSAgICB9Ci0KLSAg
ICB3aWR0aEF0TGV2ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBd
W2xldmVsXVswXS5sZW5ndGg7Ci0gICAgfQotCi0gICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKLSAgICB9Ci0K
LSAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9
Ci0KLSAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsKLSAgICB9Ci0KLSAgICBzZXRFbGVt
ZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLmRh
dGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOwotICAgIH0KLX0KLQotbGV0IFRleHR1cmVE
ZXB0aEN1YmUgPSBUZXh0dXJlQ3ViZTsKLQotY2xhc3MgVGV4dHVyZTFEUlcgZXh0ZW5kcyBUZXh0
dXJlIHsKLSAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCi0gICAgewotICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCi0gICAgICAgIC8vIEVhY2ggZWxlbWVu
dCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCi0gICAgICAgIC8v
IFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgotCi0gICAgICAgIGxldCBkaW1lbnNp
b24gPSAxOwotICAgICAgICBsZXQgd2lkdGggPSBkYXRhLmxlbmd0aDsKLSAgICAgICAgbGV0IGhl
aWdodCA9IDE7Ci0gICAgICAgIGxldCBkZXB0aCA9IDE7Ci0gICAgICAgIGxldCBsZXZlbENvdW50
ID0gMTsKLSAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOwotICAgICAgICBzdXBlcihkaW1lbnNp
b24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5
cGUsIGRhdGEpOwotICAgIH0KLQotICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIGhlaWdodEF0TGV2ZWwo
bGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBkZXB0aEF0TGV2
ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBlbGVtZW50
KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFb
aV07Ci0gICAgfQotCi0gICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVl
KQotICAgIHsKLSAgICAgICAgdGhpcy5kYXRhW2ldID0gdmFsdWU7Ci0gICAgfQotfQotCi1jbGFz
cyBUZXh0dXJlMURBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7Ci0gICAgY29uc3RydWN0b3IoaW5u
ZXJUeXBlLCBkYXRhKQotICAgIHsKLSAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFE
IFJXIHRleHR1cmVzLgotICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1l
IHNpemUuCi0KLSAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7Ci0gICAgICAgIGxldCB3aWR0aCA9
IGRhdGFbMF0ubGVuZ3RoOwotICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKLSAgICAgICAgbGV0IGRl
cHRoID0gMTsKLSAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOwotICAgICAgICBsZXQgbGF5ZXJD
b3VudCA9IGRhdGEubGVuZ3RoOwotICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOwotICAg
IH0KLQotICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
LmRhdGFbMF0ubGVuZ3RoOwotICAgIH0KLQotICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCi0gICAg
ewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCi0g
ICAgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBlbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2ldOwot
ICAgIH0KLQotICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuZGF0YVtsYXllcl1baV0gPSB2YWx1ZTsKLSAgICB9Ci19Ci0KLWNs
YXNzIFRleHR1cmUyRFJXIGV4dGVuZHMgVGV4dHVyZSB7Ci0gICAgY29uc3RydWN0b3IoaW5uZXJU
eXBlLCBkYXRhKQotICAgIHsKLSAgICAgICAgLy8gImRhdGEiIGlzIGEgcmVjdGFuZ3VsYXIgYXJy
YXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCi0gICAg
ICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNj
YWxhcnMuCi0gICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9m
LXR3by4KLQotICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKLSAgICAgICAgbGV0IHdpZHRoID0g
ZGF0YVswXS5sZW5ndGg7Ci0gICAgICAgIGxldCBoZWlnaHQgPSBkYXRhLmxlbmd0aDsKLSAgICAg
ICAgbGV0IGRlcHRoID0gMTsKLSAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOwotICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IDE7Ci0gICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdo
dCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7Ci0gICAg
fQotCi0gICAgd2lkdGhBdExldmVsKGxldmVsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVswXS5sZW5ndGg7Ci0gICAgfQotCi0gICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIGRlcHRoQXRM
ZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtqXVtpXTsKLSAgICB9Ci0KLSAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLmRhdGFbal1baV0gPSB2YWx1ZTsKLSAgICB9Ci19
Ci0KLWxldCBUZXh0dXJlRGVwdGgyRFJXID0gVGV4dHVyZTJEUlc7Ci0KLWNsYXNzIFRleHR1cmUy
REFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKLSAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRh
dGEpCi0gICAgewotICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgUlcgdGV4dHVy
ZXMuCi0gICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5k
IGhlaWdodC4KLQotICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKLSAgICAgICAgbGV0IHdpZHRo
ID0gZGF0YVswXVswXS5sZW5ndGg7Ci0gICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0
aDsKLSAgICAgICAgbGV0IGRlcHRoID0gMTsKLSAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOwot
ICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOwotICAgICAgICBzdXBlcihkaW1l
bnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5l
clR5cGUsIGRhdGEpOwotICAgIH0KLQotICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOwotICAgIH0KLQotICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0
aDsKLSAgICB9Ci0KLSAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCi0gICAgewotICAgICAgICByZXR1
cm4gMTsKLSAgICB9Ci0KLSAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldOwotICAgIH0KLQotICAgIHNl
dEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRo
aXMuZGF0YVtsYXllcl1bal1baV0gPSB2YWx1ZTsKLSAgICB9Ci19Ci0KLWxldCBUZXh0dXJlRGVw
dGgyREFycmF5UlcgPSBUZXh0dXJlMkRBcnJheVJXCi0KLWNsYXNzIFRleHR1cmUzRFJXIGV4dGVu
ZHMgVGV4dHVyZSB7Ci0gICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQotICAgIHsKLSAg
ICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywgZWFjaCBkZXB0aCBz
bGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxl
bWVudHMuCi0gICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJy
YXkgb2YgMi00IHNjYWxhcnMuCi0gICAgICAgIC8vIFRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVw
dGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgotCi0gICAgICAgIGxldCBkaW1lbnNpb24gPSAzOwot
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKLSAgICAgICAgbGV0IGhlaWdo
dCA9IGRhdGFbMF0ubGVuZ3RoOwotICAgICAgICBsZXQgZGVwdGggPSBkYXRhLmxlbmd0aDsKLSAg
ICAgICAgbGV0IGxldmVsQ291bnQgPSAxOwotICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7Ci0g
ICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQs
IGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7Ci0gICAgfQotCi0gICAgd2lkdGhBdExldmVs
KGxldmVsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7Ci0g
ICAgfQotCi0gICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLmRhdGFbMF0ubGVuZ3RoOwotICAgIH0KLQotICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIGVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtrXVtqXVtpXTsKLSAgICB9Ci0KLSAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSwgdmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLmRhdGFba11bal1baV0gPSB2YWx1ZTsKLSAg
ICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJl
T3BlcmF0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVy
YXRpb25zLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZGFkYjg1MDA5MC4uMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJh
dGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3ODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGRl
cHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCi17Ci0gICAgLy8g
VnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNAotICAgIHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9u
KSB7Ci0gICAgICAgIGNhc2UgIm5ldmVyIjoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICBjYXNlICJsZXNzIjoKLSAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAwOwotICAg
ICAgICBjYXNlICJlcXVhbCI6Ci0gICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7
Ci0gICAgICAgIGNhc2UgImxlc3NFcXVhbCI6Ci0gICAgICAgICAgICByZXR1cm4gZHJlZiA8PSBk
ID8gMSA6IDA7Ci0gICAgICAgIGNhc2UgImdyZWF0ZXIiOgotICAgICAgICAgICAgcmV0dXJuIGRy
ZWYgPiBkID8gMSA6IDA7Ci0gICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKLSAgICAgICAgICAgIHJl
dHVybiBkcmVmICE9IGQgPyAxIDogMDsKLSAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFsIjoKLSAg
ICAgICAgICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKLSAgICAgICAgY2FzZSAiYWx3YXlz
IjoKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24iKTsKLSAg
ICB9Ci19Ci0KLWZ1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCi17Ci0gICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNQotICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5
KSB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCB2YWx1ZS5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsK
LSAgICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKLSAgICAgICAgICAgIHJlc3VsdC5w
dXNoKHJlc3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Ci19Ci0KLWZ1bmN0
aW9uIHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSkKLXsKLSAgICAvLyBWdWxr
YW4gMS4xLjgzIHNlY3Rpb24gMTUuNi4xCi0gICAgcmV0dXJuIFtzIC8gcSwgdCAvIHEsIHIgLyBx
LCBkcmVmICE9IHVuZGVmaW5lZCA/IGRyZWYgLyBxIDogdW5kZWZpbmVkXTsKLX0KLQotZnVuY3Rp
b24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnpXaXRo
UmVzcGVjdFRvWSkKLXsKLSAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi40Ci0gICAg
bGV0IHJ4ID0gczsKLSAgICBsZXQgcnkgPSB0OwotICAgIGxldCByeiA9IHI7Ci0gICAgbGV0IHdp
bm5lciA9IDA7Ci0gICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkgJiYgTWF0aC5h
YnMocnopID49IE1hdGguYWJzKHJ4KSkKLSAgICAgICAgd2lubmVyID0gMjsKLSAgICBlbHNlIGlm
IChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFi
cyhyeikpCi0gICAgICAgIHdpbm5lciA9IDE7Ci0KLSAgICBsZXQgbGF5ZXJOdW1iZXI7Ci0gICAg
bGV0IHNjOwotICAgIGxldCB0YzsKLSAgICBsZXQgcmM7Ci0gICAgbGV0IHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9YOwotICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKLSAgICBsZXQgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1g7Ci0gICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZOwot
ICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKLSAgICBsZXQgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1k7Ci0gICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKLSAgICAgICAgbGF5
ZXJOdW1iZXIgPSAwOwotICAgICAgICBzYyA9IC1yejsKLSAgICAgICAgdGMgPSAtcnk7Ci0gICAg
ICAgIHJjID0gcng7Ci0gICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eldpdGhSZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWTsKLSAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7Ci0gICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwotICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFsUmNXaXRoUmVz
cGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOwotICAgIH0gZWxzZSBpZiAod2lubmVy
ID09IDApIHsKLSAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOwotICAgICAgICBzYyA9IHJ6OwotICAg
ICAgICB0YyA9IC1yeTsKLSAgICAgICAgcmMgPSByeDsKLSAgICAgICAgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKLSAgICAgICAgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKLSAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7Ci0gICAgICAgIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwotICAgICAgICBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKLSAgICAg
ICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7Ci0g
ICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7Ci0gICAgICAgIGxheWVyTnVt
YmVyID0gMjsKLSAgICAgICAgc2MgPSByeDsKLSAgICAgICAgdGMgPSAtcno7Ci0gICAgICAgIHJj
ID0gcnk7Ci0gICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1g7Ci0gICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0
aFJlc3BlY3RUb1k7Ci0gICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6
V2l0aFJlc3BlY3RUb1g7Ci0gICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1k7Ci0gICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFy
dGlhbFJ5V2l0aFJlc3BlY3RUb1g7Ci0gICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0g
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7Ci0gICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSkgewot
ICAgICAgICBsYXllck51bWJlciA9IDM7Ci0gICAgICAgIHNjID0gcng7Ci0gICAgICAgIHRjID0g
LXJ6OwotICAgICAgICByYyA9IHJ5OwotICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOwotICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKLSAgICAgICAgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7Ci0gICAgICAgIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKLSAgICB9IGVsc2Ug
aWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKLSAgICAgICAgbGF5ZXJOdW1iZXIgPSA0Owot
ICAgICAgICBzYyA9IHJ4OwotICAgICAgICB0YyA9IC1yeTsKLSAgICAgICAgcmMgPSByejsKLSAg
ICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsK
LSAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WTsKLSAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3Bl
Y3RUb1g7Ci0gICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9ZOwotICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldp
dGhSZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxS
eldpdGhSZXNwZWN0VG9ZOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGxheWVyTnVtYmVyID0gNTsK
LSAgICAgICAgc2MgPSAtcng7Ci0gICAgICAgIHRjID0gLXJ5OwotICAgICAgICByYyA9IHJ6Owot
ICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKLSAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3Bl
Y3RUb1k7Ci0gICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlX
aXRoUmVzcGVjdFRvWTsKLSAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1g7Ci0gICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBh
cnRpYWxSeldpdGhSZXNwZWN0VG9ZOwotICAgIH0KLSAgICByZXR1cm4gW2xheWVyTnVtYmVyLCBz
YywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQotfQotCi1mdW5j
dGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMpCi17Ci0gICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNQotICAgIGxldCBzRmFjZSA9ICgxIC8gMikg
KiBzYyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7Ci0gICAgbGV0IHRGYWNlID0gKDEgLyAyKSAq
IHRjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKLSAgICByZXR1cm4gW3NGYWNlLCB0RmFjZV07
Ci19Ci0KLWZ1bmN0aW9uIGN1YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCBy
YywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkKLXsKLSAgICAvLyBWdWxrYW4g
MS4xLjgzIHNlY3Rpb24gMTUuNi42Ci0gICAgbGV0IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9Y
ID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggLSBz
YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93KHJjLCAyKSk7Ci0gICAgbGV0
IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICog
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgLSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKSAv
IE1hdGgucG93KHJjLCAyKSk7Ci0gICAgbGV0IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9YID0g
KDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggLSB0YyAq
IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93KHJjLCAyKSk7Ci0gICAgbGV0IHBh
cnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1kgLSB0YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKSAvIE1h
dGgucG93KHJjLCAyKSk7Ci0gICAgcmV0dXJuIFtwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV07Ci19Ci0KLWZ1bmN0aW9uIHNjYWxlRmFjdG9yT3Bl
cmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBzYW1wbGVy
TWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVj
dFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSkKLXsKLSAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43Ci0gICAgbGV0IG11eCA9IE1hdGguYWJzKHBhcnRp
YWxTV2l0aFJlc3BlY3RUb1gpICogd2lkdGg7Ci0gICAgbGV0IG12eCA9IE1hdGguYWJzKHBhcnRp
YWxUV2l0aFJlc3BlY3RUb1gpICogaGVpZ2h0OwotICAgIGxldCBtd3ggPSBNYXRoLmFicyhwYXJ0
aWFsUldpdGhSZXNwZWN0VG9YKSAqIGRlcHRoOwotICAgIGxldCBtdXkgPSBNYXRoLmFicyhwYXJ0
aWFsU1dpdGhSZXNwZWN0VG9ZKSAqIHdpZHRoOwotICAgIGxldCBtdnkgPSBNYXRoLmFicyhwYXJ0
aWFsVFdpdGhSZXNwZWN0VG9ZKSAqIGhlaWdodDsKLSAgICBsZXQgbXd5ID0gTWF0aC5hYnMocGFy
dGlhbFJXaXRoUmVzcGVjdFRvWSkgKiBkZXB0aDsKLQotICAgIC8vIEkgbWFkZSB0aGlzIHVwLiBU
aGUgZm9ybXVsYSBpc24ndCBsaXN0ZWQgaW4gdGhlIHNwZWMuCi0gICAgbGV0IGZ4ID0gTWF0aC5z
cXJ0KG11eCAqIG11eCArIG12eCAqIG12eCArIG13eCAqIG13eCk7Ci0gICAgbGV0IGZ5ID0gTWF0
aC5zcXJ0KG11eSAqIG11eSArIG12eSAqIG12eSArIG13eSAqIG13eSk7Ci0KLSAgICBsZXQgcmhv
WCA9IGZ4OwotICAgIGxldCByaG9ZID0gZnk7Ci0gICAgbGV0IHJob01heCA9IE1hdGgubWF4KHJo
b1gsIHJob1kpOwotICAgIGxldCByaG9NaW4gPSBNYXRoLm1pbihyaG9YLCByaG9ZKTsKLQotICAg
IGxldCBtYXhBbmlzbyA9IE1hdGgubWluKHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhB
bmlzb3Ryb3B5KTsKLQotICAgIGxldCBldGE7Ci0gICAgaWYgKHJob01heCA9PSAwICYmIHJob01p
biA9PSAwKQotICAgICAgICBldGEgPSAxOwotICAgIGVsc2UgaWYgKHJob01pbiA9PSAwKQotICAg
ICAgICBldGEgPSBtYXhBbmlzbzsKLSAgICBlbHNlCi0gICAgICAgIGV0YSA9IE1hdGgubWluKHJo
b01heCAvIHJob01pbiwgbWF4QW5pc28pOwotCi0gICAgbGV0IE4gPSBNYXRoLmNlaWwoZXRhKTsK
LSAgICByZXR1cm4gW3Job01heCwgcmhvTWluLCBldGEsIE5dOwotfQotCi1mdW5jdGlvbiBsZXZl
bE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXJMb2RNaW4sIHNhbXBsZXJMb2RNYXgsIHJob01heCwg
ZXRhKQotewotICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKLSAgICBpZiAoYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQgPT0gdW5kZWZpbmVkKQotICAgICAgICBiaWFzRnJvbUZ1bmN0
aW9uT3BlcmFuZCA9IDA7Ci0KLSAgICBsZXQgbGFtYmRhQmFzZSA9IGxvZEZyb21GdW5jdGlvbk9w
ZXJhbmQgIT0gdW5kZWZpbmVkID8gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCA6IE1hdGgubG9nMihy
aG9NYXggLyBldGEpOwotICAgIGxldCBsYW1iZGFQcmltZSA9IGxhbWJkYUJhc2UgKyBNYXRoLm1p
bihNYXRoLm1heChzYW1wbGVyQmlhcyArIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCAtZGV2aWNl
TWF4U2FtcGxlckxvZEJpYXMpLCBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyk7Ci0gICAgbGV0IGxv
ZE1pbiA9IE1hdGgubWF4KHNhbXBsZXJMb2RNaW4sIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQp
OwotICAgIGxldCBsb2RNYXggPSBzYW1wbGVyTG9kTWF4OwotICAgIGxldCBsYW1iZGE7Ci0gICAg
aWYgKGxhbWJkYVByaW1lID4gbG9kTWF4KQotICAgICAgICBsYW1iZGEgPSBsb2RNYXg7Ci0gICAg
ZWxzZSBpZiAobG9kTWluIDw9IGxhbWJkYVByaW1lICYmIGxhbWJkYVByaW1lIDw9IGxvZE1heCkK
LSAgICAgICAgbGFtYmRhID0gbGFtYmRhUHJpbWU7Ci0gICAgZWxzZSBpZiAobGFtYmRhUHJpbWUg
PCBsb2RNaW4pCi0gICAgICAgIGxhbWJkYSA9IGxvZE1pbjsKLSAgICBlbHNlCi0gICAgICAgIHRo
cm93IG5ldyBFcnJvcigibG9kTWluID49IGxvZE1heCIpOwotICAgIHJldHVybiBsYW1iZGE7Ci19
Ci0KLWZ1bmN0aW9uIGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCBsZXZlbENvdW50
LCBtaXBtYXBNb2RlLCBsYW1iZGEpCi17Ci0gICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1
LjYuNwotICAgIGZ1bmN0aW9uIG5lYXJlc3QoZFByaW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IE1hdGguY2VpbChkUHJpbWUgKyAwLjUpIC0gMTsKLSAgICB9Ci0KLSAgICBsZXQgcSA9IGxldmVs
Q291bnQgLSAxOwotICAgIGxldCBkUHJpbWUgPSBiYXNlTWlwTGV2ZWwgKyBNYXRoLm1pbihNYXRo
Lm1heChsYW1iZGEsIDApLCBxKTsKLSAgICBsZXQgZGw7Ci0gICAgaWYgKG1pcG1hcE1vZGUgPT0g
Im5lYXJlc3QiKQotICAgICAgICBkbCA9IG5lYXJlc3QoZFByaW1lKTsKLSAgICBlbHNlCi0gICAg
ICAgIGRsID0gZFByaW1lOwotICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKLSAgICAg
ICAgcmV0dXJuIGRsOwotICAgIGVsc2UgewotICAgICAgICBsZXQgZEhpID0gTWF0aC5mbG9vcihk
bCk7Ci0gICAgICAgIGxldCBkTG93ID0gTWF0aC5taW4oZEhpICsgMSwgcSk7Ci0gICAgICAgIGxl
dCBkZWx0YSA9IGRsIC0gZEhpOwotICAgICAgICByZXR1cm4gW2RIaSwgZExvdywgZGVsdGFdOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aCkKLXsKLSAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ni44Ci0gICAgbGV0IHUgPSBzICogd2lkdGg7Ci0gICAgbGV0IHYgPSB0ICogaGVpZ2h0OwotICAg
IGxldCB3ID0gciAqIGRlcHRoOwotICAgIHJldHVybiBbdSwgdiwgd107Ci19Ci0KLWZ1bmN0aW9u
IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKGxheWVyQ291
bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBk
ZWx0YUspCi17Ci0gICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjcuMQotCi0gICAgaWYg
KGRlbHRhSSA9PSB1bmRlZmluZWQpCi0gICAgICAgIGRlbHRhSSA9IDA7Ci0gICAgaWYgKGRlbHRh
SiA9PSB1bmRlZmluZWQpCi0gICAgICAgIGRlbHRhSiA9IDA7Ci0gICAgaWYgKGRlbHRhSyA9PSB1
bmRlZmluZWQpCi0gICAgICAgIGRlbHRhSyA9IDA7Ci0KLSAgICBmdW5jdGlvbiBybmUoYSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGEgKyAwLjUpOwotICAgIH0KLSAgICBsZXQg
bCA9IE1hdGgubWluKE1hdGgubWF4KHJuZShhKSwgMCksIGxheWVyQ291bnQgLSAxKSArIGJhc2VB
cnJheUxheWVyOwotICAgIGxldCBpOwotICAgIGxldCBqOwotICAgIGxldCBrOwotICAgIGlmIChm
aWx0ZXIgPT0gIm5lYXJlc3QiKSB7Ci0gICAgICAgIGkgPSBNYXRoLmZsb29yKHUpOwotICAgICAg
ICBqID0gTWF0aC5mbG9vcih2KTsKLSAgICAgICAgayA9IE1hdGguZmxvb3Iodyk7Ci0gICAgICAg
IAotICAgICAgICBpICs9IGRlbHRhSTsKLSAgICAgICAgaiArPSBkZWx0YUo7Ci0gICAgICAgIGsg
Kz0gZGVsdGFLOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIFtpLCBqLCBrLCBsXTsKLSAgICB9
IGVsc2UgewotICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQotICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOwotICAgICAgICBsZXQgaTAgPSBNYXRoLmZs
b29yKHUgLSAwLjUpOwotICAgICAgICBsZXQgaTEgPSBpMCArIDE7Ci0gICAgICAgIGxldCBqMCA9
IE1hdGguZmxvb3IodiAtIDAuNSk7Ci0gICAgICAgIGxldCBqMSA9IGowICsgMTsKLSAgICAgICAg
bGV0IGswID0gTWF0aC5mbG9vcih3IC0gMC41KTsKLSAgICAgICAgbGV0IGsxID0gazAgKyAxOwot
ICAgICAgICBsZXQgYWxwaGEgPSAodSAtIDAuNSkgLSBpMDsKLSAgICAgICAgbGV0IGJldGEgPSAo
diAtIDAuNSkgLSBqMDsKLSAgICAgICAgbGV0IGdhbW1hID0gKHcgLSAwLjUpIC0gazA7Ci0gICAg
ICAgIAotICAgICAgICBpMCArPSBkZWx0YUk7Ci0gICAgICAgIGkxICs9IGRlbHRhSTsKLSAgICAg
ICAgajAgKz0gZGVsdGFKOwotICAgICAgICBqMSArPSBkZWx0YUo7Ci0gICAgICAgIGswICs9IGRl
bHRhSzsKLSAgICAgICAgazEgKz0gZGVsdGFLOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIFtp
MCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOwotICAgIH0KLX0K
LQotZnVuY3Rpb24gaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlvbnMoYmFzZU1pcExldmVs
LCBsZXZlbENvdW50LCBsZXZlbEJhc2UsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQpCi17Ci0gICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjgKLSAgICBsZXQgZCA9IGxldmVsQmFzZSArIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQ7Ci0gICAgaWYgKGQgPCBiYXNlTWlwTGV2ZWwgfHwgZCA+PSBi
YXNlTWlwTGV2ZWwgKyBsZXZlbENvdW50KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNlbGVj
dGVkIGxldmVsIGRvZXMgbm90IGxpZSBpbnNpZGUgdGhlIGltYWdlIik7Ci0gICAgcmV0dXJuIGQ7
Ci19Ci0KLWZ1bmN0aW9uIHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBh
ZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQotewotICAg
IC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjEKLSAgICAvLyBGSVhNRTogIkN1YmUgaW1h
Z2VzIGlnbm9yZSB0aGUgd3JhcCBtb2RlcyBzcGVjaWZpZWQgaW4gdGhlIHNhbXBsZXIuIEluc3Rl
YWQsIGlmIFZLX0ZJTFRFUl9ORUFSRVNUIGlzIHVzZWQgd2l0aGluIGEgbWlwIGxldmVsIHRoZW4g
VktfU0FNUExFUl9BRERSRVNTX01PREVfQ0xBTVBfVE9fRURHRSBpcyB1c2VkLCBhbmQgaWYgVktf
RklMVEVSX0xJTkVBUiBpcyB1c2VkIHdpdGhpbiBhIG1pcCBsZXZlbCB0aGVuIHNhbXBsaW5nIGF0
IHRoZSBlZGdlcyBpcyBwZXJmb3JtZWQgYXMgZGVzY3JpYmVkIGVhcmxpZXIgaW4gdGhlIEN1YmUg
bWFwIGVkZ2UgaGFuZGxpbmcgc2VjdGlvbi4iCi0gICAgZnVuY3Rpb24gdHJhbnNmb3JtKGFkZHJl
c3NNb2RlLCBzaXplLCBpKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gbWlycm9yKG4pIHsKLSAg
ICAgICAgICAgIGlmIChuID49IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIG47Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0oMSArIG4pOwotICAgICAgICB9Ci0g
ICAgICAgIHN3aXRjaCAoYWRkcmVzc01vZGUpIHsKLSAgICAgICAgICAgIGNhc2UgImNsYW1wVG9F
ZGdlIjoKLSAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgMCksIHNp
emUgLSAxKTsKLSAgICAgICAgICAgIGNhc2UgInJlcGVhdCI6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIGkgJSBzaXplOwotICAgICAgICAgICAgY2FzZSAibWlycm9yUmVwZWF0IjoKLSAgICAgICAg
ICAgICAgICByZXR1cm4gKHNpemUgLSAxKSAtIG1pcnJvcigoaSAlICgyICogc2l6ZSkpIC0gc2l6
ZSk7Ci0gICAgICAgICAgICBjYXNlICJjbGFtcFRvQm9yZGVyQ29sb3IiOgotICAgICAgICAgICAg
ICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAtMSksIHNpemUpOwotICAgICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gYWRkcmVz
cyBtb2RlIik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIFt0cmFuc2Zvcm0oYWRkcmVz
c01vZGVVLCB3aWR0aCwgaSksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVYsIGhlaWdodCwgaiksIHRy
YW5zZm9ybShhZGRyZXNzTW9kZVcsIGRlcHRoLCBrKV07Ci19Ci0KLWZ1bmN0aW9uIGNhbGN1bGF0
ZUxhbWJkYShkZXZpY2VNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgdGV4
dHVyZSwgc2FtcGxlciwgc2FtcGxlckJpYXMsIHMsIHQsIHIsIGEsIGxvZEZyb21GdW5jdGlvbk9w
ZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5k
LCBkZHgsIGRkeSkKLXsKLSAgICBsZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IDA7Ci0gICAg
bGV0IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ggPSAwOwotICAgIGxldCBwYXJ0aWFsUldpdGhSZXNw
ZWN0VG9YID0gMDsKLSAgICBpZiAoZGR4ICE9IHVuZGVmaW5lZCkgewotICAgICAgICBwYXJ0aWFs
U1dpdGhSZXNwZWN0VG9YID0gZGR4WzBdOwotICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9Y
ID0gZGR4WzFdOwotICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0gZGR4WzJdOwotICAg
IH0KLSAgICBsZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IDA7Ci0gICAgbGV0IHBhcnRpYWxU
V2l0aFJlc3BlY3RUb1kgPSAwOwotICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsK
LSAgICBpZiAoZGR5ICE9IHVuZGVmaW5lZCkgewotICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9ZID0gZGR5WzBdOwotICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gZGR5WzFdOwot
ICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gZGR5WzJdOwotICAgIH0KLQotICAgIGlm
ICh0ZXh0dXJlIGluc3RhbmNlb2YgVGV4dHVyZUN1YmUpIHsKLSAgICAgICAgLy8gRklYTUU6IEhh
bmRsZSBjdWJlbWFwIGVkZ2UvY29ybmVycyBjb3JyZWN0bHkKLSAgICAgICAgbGV0IFtsYXllck51
bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWV0gPSBj
dWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9Z
KQotICAgICAgICBsZXQgW3NGYWNlLCB0RmFjZV0gPSBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9y
bWF0aW9uKHNjLCB0YywgcmMpCi0gICAgICAgIGxldCBbcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldID0gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zv
cm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQot
ICAgICAgICBzID0gc0ZhY2U7Ci0gICAgICAgIHQgPSB0RmFjZTsKLSAgICAgICAgciA9IDA7Ci0g
ICAgICAgIGEgPSBsYXllck51bWJlcjsKLSAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9
IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YOwotICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9ZID0gcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1k7Ci0gICAgICAgIHBhcnRpYWxUV2l0aFJl
c3BlY3RUb1ggPSBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWDsKLSAgICAgICAgcGFydGlhbFRX
aXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZOwotICAgICAgICBwYXJ0
aWFsUldpdGhSZXNwZWN0VG9YID0gMDsKLSAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9
IDA7Ci0gICAgfQotCi0gICAgbGV0IFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXSA9IHNjYWxlRmFj
dG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHRleHR1cmUud2lkdGgsIHRleHR1cmUu
aGVpZ2h0LCB0ZXh0dXJlLmRlcHRoLCBzYW1wbGVyLm1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRp
YWxSV2l0aFJlc3BlY3RUb1kpOwotICAgIGxldCBsYW1iZGEgPSBsZXZlbE9mRGV0YWlsT3BlcmF0
aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RN
aW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJp
YXMsIHNhbXBsZXIubG9kTWluQ2xhbXAsIHNhbXBsZXIubG9kTWF4Q2xhbXAsIHJob01heCwgZXRh
KTsKLSAgICByZXR1cm4gW3MsIHQsIHIsIGEsIGxhbWJkYV07Ci19Ci0KLWZ1bmN0aW9uIGNvbXB1
dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBhZGRyZXNzTW9k
ZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIsIGEsIGRlbHRh
SSwgZGVsdGFKLCBkZWx0YUspCi17Ci0gICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Iod2lkdGgsIGhl
aWdodCwgZGVwdGgsIGwsIGksIGosIGspCi0gICAgewotICAgICAgICBmdW5jdGlvbiBzaG91bGRC
ZUJvcmRlcih2YWx1ZSwgbWF4KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodmFsdWUgPCAt
MSB8fCB2YWx1ZSA+IG1heCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk91dC1v
Zi1ib3VuZHMgdGV4dHVyZSByZWFkIik7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT0gLTEg
fHwgdmFsdWUgPT0gbWF4OwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IFt3cmFwcGVkSSwgd3Jh
cHBlZEosIHdyYXBwZWRLXSA9IHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQotICAg
ICAgICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEksIHdpZHRoKSB8fCBzaG91bGRCZUJvcmRl
cih3cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSywgZGVwdGgpKQot
ICAgICAgICAgICAgcmV0dXJuIHNhbXBsZXIuY2FsY3VsYXRlQm9yZGVyQ29sb3IodGV4dHVyZS5p
bm5lclR5cGUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVt
ZW50KGwsIGxldmVsLCB3cmFwcGVkSywgd3JhcHBlZEosIHdyYXBwZWRJKTsKLSAgICB9Ci0KLSAg
ICBsZXQgW3UsIHYsIHddID0gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB0ZXh0
dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSk7Ci0gICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIp
IHsKLSAgICAgICAgbGV0IFtpLCBqLCBrLCBsXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIs
IGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7Ci0gICAgICAgIHJl
dHVybiBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVp
Z2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaSwgaiwg
ayk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKLSAgICAgICAgbGV0IFtp
MCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3YVRvSUpL
TE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50
LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVs
dGFLKTsKLSAgICAgICAgbGV0IGNvbG9yMDAwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0
TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRo
QXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMCwgazApOwotICAgICAgICBsZXQgY29sb3IxMDAgPSBh
Y2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGowLCBrMCk7
Ci0gICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2
ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGswKTsKLSAgICAgICAgbGV0IGNvbG9yMTEwID0gYWNjZXNz
Q29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazApOwotICAg
ICAgICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZl
bCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxl
dmVsKSwgbCwgaTAsIGowLCBrMSk7Ci0gICAgICAgIGxldCBjb2xvcjEwMSA9IGFjY2Vzc0NvbG9y
KHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwgajAsIGsxKTsKLSAgICAgICAg
bGV0IGNvbG9yMDExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0
ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCks
IGwsIGkwLCBqMSwgazEpOwotICAgICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3NDb2xvcih0ZXh0
dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMSk7Ci0gICAgICAgIHJldHVy
biBbY29sb3IwMDAsIGNvbG9yMTAwLCBjb2xvcjAxMCwgY29sb3IxMTAsIGNvbG9yMDAxLCBjb2xv
cjEwMSwgY29sb3IwMTEsIGNvbG9yMTExLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOwotICAgIH0KLX0K
LQotZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVlcykKLXsKLSAgICBpZiAodmFsdWVzLmxlbmd0aCAl
IDIgIT0gMCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGEgd2VpZ2h0IGNv
cnJlc3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOwotICAgIGlmICh2YWx1ZXMubGVuZ3RoIDwgMikK
LSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGVub3VnaCB0aGluZ3MgdG8gY2Fs
Y3VsYXRlIGFuIGF2ZXJhZ2UiKTsKLSAgICBsZXQgc3VtOwotICAgIGlmICh2YWx1ZXNbMV0gaW5z
dGFuY2VvZiBBcnJheSkgewotICAgICAgICBzdW0gPSBbXTsKLSAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB2YWx1ZXNbMV0ubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBzdW0ucHVzaCgwKTsK
LSAgICB9IGVsc2UKLSAgICAgICAgc3VtID0gMDsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZh
bHVlcy5sZW5ndGggLyAyOyArK2kpIHsKLSAgICAgICAgbGV0IHdlaWdodCA9IHZhbHVlc1syICog
aV07Ci0gICAgICAgIGxldCBjb2xvciA9IHZhbHVlc1syICogaSArIDFdOwotICAgICAgICBpZiAo
Y29sb3IgaW5zdGFuY2VvZiBBcnJheSkgewotICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCBjb2xvci5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBzdW1baV0gKz0gd2VpZ2h0ICog
Y29sb3JbaV07Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3VtICs9IHdlaWdodCAqIGNv
bG9yOwotICAgIH0KLSAgICByZXR1cm4gc3VtOwotfQotCi1mdW5jdGlvbiB0ZXhlbEdhdGhlcmlu
ZygKLSAgICBkZXZpY2VNYXhBbmlzb3Ryb3B5LAotICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFz
LAotICAgIGJhc2VNaXBMZXZlbCwKLSAgICBiYXNlQXJyYXlMYXllciwKLSAgICB0ZXh0dXJlLAot
ICAgIHNhbXBsZXIsCi0gICAgc2FtcGxlckJpYXMsCi0gICAgcywgdCwgciwgYSwKLSAgICBkZWx0
YUksIGRlbHRhSiwgZGVsdGFLLAotICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCi0gICAgbG9k
TWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwKLSAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKLSAg
ICBkZHgsIGRkeSwKLSAgICBjaGFubmVsKQotewotICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS45LjIKLQotICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5hbWVzIHRoYW4gV2Vi
R1BVIGRvZXMuCi0gICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFkZHJlc3NNb2RlOwot
ICAgIGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsKLSAgICBsZXQgYWRk
cmVzc01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7Ci0KLSAgICBsZXQgbGFtYmRhOwotICAg
IFtzLCB0LCByLCBhLCBsYW1iZGFdID0gY2FsY3VsYXRlTGFtYmRhKGRldmljZU1heEFuaXNvdHJv
cHksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCB0ZXh0dXJlLCBzYW1wbGVyLCBzYW1wbGVyQmlh
cywgcywgdCwgciwgYSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9u
T3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5KTsKLQotICAgIGxldCBm
aWx0ZXIgPSAibGluZWFyIjsKLQotICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVj
dGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgIm5lYXJlc3QiLCBsYW1iZGEp
OwotCi0gICAgbGV0IFtjb2xvcjAwMCwgY29sb3IxMDAsIGNvbG9yMDEwLCBjb2xvcjExMCwgY29s
b3IwMDEsIGNvbG9yMTAxLCBjb2xvcjAxMSwgY29sb3IxMTEsIGFscGhhLCBiZXRhLCBnYW1tYV0g
PSBjb21wdXRlVGF1KGltYWdlTGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVy
LCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQs
IHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOwotCi0gICAgaWYgKHRleHR1cmUuZGltZW5z
aW9uICE9IDIpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdhdGhlciBmcm9tIGEg
bm9uLTJEIGltYWdlIik7Ci0KLSAgICBsZXQgY29sb3IwMCA9IGNvbG9yMDAxOwotICAgIGxldCBj
b2xvcjEwID0gY29sb3IxMDE7Ci0gICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKLSAgICBsZXQg
Y29sb3IxMSA9IGNvbG9yMTExOwotCi0gICAgc3dpdGNoIChjaGFubmVsKSB7Ci0gICAgICAgIGNh
c2UgMDoKLSAgICAgICAgICAgIGlmIChjb2xvcjAwIGluc3RhbmNlb2YgQXJyYXkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIFtjb2xvcjAxWzBdLCBjb2xvcjExWzBdLCBjb2xvcjEwWzBdLCBjb2xv
cjAwWzBdXTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9y
MDEsIGNvbG9yMTEsIGNvbG9yMTAsIGNvbG9yMDBdOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAg
ICAgICByZXR1cm4gW2NvbG9yMDFbMV0sIGNvbG9yMTFbMV0sIGNvbG9yMTBbMV0sIGNvbG9yMDBb
MV1dOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICByZXR1cm4gW2NvbG9yMDFbMl0sIGNv
bG9yMTFbMl0sIGNvbG9yMTBbMl0sIGNvbG9yMDBbMl1dOwotICAgICAgICBjYXNlIDM6Ci0gICAg
ICAgICAgICByZXR1cm4gW2NvbG9yMDFbM10sIGNvbG9yMTFbM10sIGNvbG9yMTBbM10sIGNvbG9y
MDBbM11dOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJV
bmtub3duIGNoYW5uZWwgdG8gZ2F0aGVyIGZyb20iKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRl
eGVsRmlsdGVyaW5nKAotICAgIGRldmljZU1heEFuaXNvdHJvcHksCi0gICAgZGV2aWNlTWF4U2Ft
cGxlckxvZEJpYXMsCi0gICAgYmFzZU1pcExldmVsLAotICAgIGJhc2VBcnJheUxheWVyLAotICAg
IHRleHR1cmUsCi0gICAgc2FtcGxlciwKLSAgICBzYW1wbGVyQmlhcywKLSAgICBzLCB0LCByLCBh
LAotICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCi0gICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwKLSAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAotICAgIGJpYXNGcm9tRnVuY3Rpb25P
cGVyYW5kLAotICAgIGRkeCwgZGR5KQotewotICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS45LjMKLQotICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5hbWVzIHRoYW4gV2ViR1BV
IGRvZXMuCi0gICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFkZHJlc3NNb2RlOwotICAg
IGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsKLSAgICBsZXQgYWRkcmVz
c01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7Ci0KLSAgICBsZXQgbGFtYmRhOwotICAgIFtz
LCB0LCByLCBhLCBsYW1iZGFdID0gY2FsY3VsYXRlTGFtYmRhKGRldmljZU1heEFuaXNvdHJvcHks
IGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCB0ZXh0dXJlLCBzYW1wbGVyLCBzYW1wbGVyQmlhcywg
cywgdCwgciwgYSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5KTsKLQotICAgIGxldCBmaWx0
ZXI7Ci0gICAgaWYgKGxhbWJkYSA8PSAwKQotICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1hZ0Zp
bHRlcjsKLSAgICBlbHNlCi0gICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWluRmlsdGVyOwotCi0g
ICAgZnVuY3Rpb24gY29tcHV0ZUNvbG9yRnJvbUxldmVsKGxldmVsKQotICAgIHsKLSAgICAgICAg
aWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKLSAgICAgICAgICAgIHJldHVybiBjb21wdXRlVGF1
KGxldmVsLCBiYXNlQXJyYXlMYXllciwgdGV4dHVyZSwgc2FtcGxlciwgYWRkcmVzc01vZGVVLCBh
ZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgZmlsdGVyLCBzLCB0LCByLCBhLCBkZWx0YUksIGRl
bHRhSiwgZGVsdGFLKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChmaWx0ZXIg
IT0gImxpbmVhciIpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZp
bHRlciIpOwotICAgICAgICAgICAgbGV0IFtjb2xvcjAwMCwgY29sb3IxMDAsIGNvbG9yMDEwLCBj
b2xvcjExMCwgY29sb3IwMDEsIGNvbG9yMTAxLCBjb2xvcjAxMSwgY29sb3IxMTEsIGFscGhhLCBi
ZXRhLCBnYW1tYV0gPSBjb21wdXRlVGF1KGxldmVsLCBiYXNlQXJyYXlMYXllciwgdGV4dHVyZSwg
c2FtcGxlciwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgZmlsdGVy
LCBzLCB0LCByLCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKLSAgICAgICAgICAgIHN3aXRj
aCAodGV4dHVyZS5kaW1lbnNpb24pIHsKLSAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAg
ICAgICAgICAgICAgIGxldCBjb2xvcjAgPSBjb2xvcjAxMTsKLSAgICAgICAgICAgICAgICAgICAg
bGV0IGNvbG9yMSA9IGNvbG9yMTExOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNl
KDEgLSBhbHBoYSwgY29sb3IwLCBhbHBoYSwgY29sb3IxKTsKLSAgICAgICAgICAgICAgICBjYXNl
IDI6Ci0gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAwID0gY29sb3IwMDE7Ci0gICAgICAg
ICAgICAgICAgICAgIGxldCBjb2xvcjEwID0gY29sb3IxMDE7Ci0gICAgICAgICAgICAgICAgICAg
IGxldCBjb2xvcjAxID0gY29sb3IwMTE7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEx
ID0gY29sb3IxMTE7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBo
YSkgKiAoMSAtIGJldGEpLCBjb2xvcjAwLCBhbHBoYSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgx
IC0gYWxwaGEpICogYmV0YSwgY29sb3IwMSwgYWxwaGEgKiBiZXRhLCBjb2xvcjExKTsKLSAgICAg
ICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdh
bW1hKSwgY29sb3IwMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0
YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IxMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAoMSAt
IGFscGhhKSAqIGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IwMTAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBhbHBoYSAqIGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IxMTAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29s
b3IxMDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1t
YSwgY29sb3IwMTEsCi0gICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1t
YSwgY29sb3IxMTEpOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkaW1lbnNpb24iKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzYW1wbGVyLm1pcG1hcEZpbHRlciA9PSAibmVh
cmVzdCIpIHsKLSAgICAgICAgbGV0IGltYWdlTGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJh
c2VNaXBMZXZlbCwgdGV4dHVyZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcG1hcEZpbHRlciwgbGFt
YmRhKTsKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVDb2xvckZyb21MZXZlbChpbWFnZUxldmVsKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBpZiAoc2FtcGxlci5taXBtYXBGaWx0ZXIgIT0gImxpbmVh
ciIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7Ci0gICAg
ICAgIGxldCBbZEhpLCBkTG93LCBkZWx0YV0gPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBM
ZXZlbCwgdGV4dHVyZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcG1hcEZpbHRlciwgbGFtYmRhKTsK
LSAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEsIGNvbXB1dGVDb2xvckZyb21MZXZlbChk
SGkpLCBkZWx0YSwgY29tcHV0ZUNvbG9yRnJvbUxldmVsKGRMb3cpKTsKLSAgICB9Ci19Ci0KLWZ1
bmN0aW9uIGNhc3RUb0lubmVyVHlwZUZvckdhdGhlcih2YWx1ZSwgaW5uZXJUeXBlKQotewotICAg
IHN3aXRjaCAoaW5uZXJUeXBlKSB7Ci0gICAgICAgIGNhc2UgInVjaGFyIjoKLSAgICAgICAgY2Fz
ZSAidWNoYXIyIjoKLSAgICAgICAgY2FzZSAidWNoYXIzIjoKLSAgICAgICAgY2FzZSAidWNoYXI0
IjoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVWNoYXIpOwotICAgICAgICBj
YXNlICJ1c2hvcnQiOgotICAgICAgICBjYXNlICJ1c2hvcnQyIjoKLSAgICAgICAgY2FzZSAidXNo
b3J0MyI6Ci0gICAgICAgIGNhc2UgInVzaG9ydDQiOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Lm1hcChjYXN0VG9Vc2hvcnQpOwotICAgICAgICBjYXNlICJ1aW50IjoKLSAgICAgICAgY2FzZSAi
dWludDIiOgotICAgICAgICBjYXNlICJ1aW50MyI6Ci0gICAgICAgIGNhc2UgInVpbnQ0IjoKLSAg
ICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVWludCk7Ci0gICAgICAgIGNhc2UgImNo
YXIiOgotICAgICAgICBjYXNlICJjaGFyMiI6Ci0gICAgICAgIGNhc2UgImNoYXIzIjoKLSAgICAg
ICAgY2FzZSAiY2hhcjQiOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9DaGFy
KTsKLSAgICAgICAgY2FzZSAic2hvcnQiOgotICAgICAgICBjYXNlICJzaG9ydDIiOgotICAgICAg
ICBjYXNlICJzaG9ydDMiOgotICAgICAgICBjYXNlICJzaG9ydDQiOgotICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLm1hcChjYXN0VG9TaG9ydCk7Ci0gICAgICAgIGNhc2UgImludCI6Ci0gICAgICAg
IGNhc2UgImludDIiOgotICAgICAgICBjYXNlICJpbnQzIjoKLSAgICAgICAgY2FzZSAiaW50NCI6
Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0ludCk7Ci0gICAgICAgIGNhc2Ug
ImhhbGYiOgotICAgICAgICBjYXNlICJoYWxmMiI6Ci0gICAgICAgIGNhc2UgImhhbGYzIjoKLSAg
ICAgICAgY2FzZSAiaGFsZjQiOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9I
YWxmKTsKLSAgICAgICAgY2FzZSAiZmxvYXQiOgotICAgICAgICBjYXNlICJmbG9hdDIiOgotICAg
ICAgICBjYXNlICJmbG9hdDMiOgotICAgICAgICBjYXNlICJmbG9hdDQiOgotICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9GbG9hdCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVyZSBpbm5lciB0eXBlIik7Ci0gICAg
fQotfQotCi1mdW5jdGlvbiBnYXRoZXJUZXh0dXJlKHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLCBkcmVmLCBjaGFubmVsKQotewotICAgIGxldCBzID0gbG9jYXRpb25bMF07Ci0g
ICAgbGV0IHQgPSBsb2NhdGlvblsxXTsKLSAgICBsZXQgciA9IGxvY2F0aW9uWzJdOwotICAgIGxl
dCBxID0gbG9jYXRpb25bM107Ci0gICAgbGV0IGEgPSBsb2NhdGlvbls0XTsKLQotICAgIGxldCBk
ZWx0YUkgPSB1bmRlZmluZWQ7Ci0gICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5lZDsKLSAgICBsZXQg
ZGVsdGFLID0gdW5kZWZpbmVkOwotICAgIGlmIChkZWx0YSAhPSB1bmRlZmluZWQpIHsKLSAgICAg
ICAgZGVsdGFJID0gZGVsdGFbMF07Ci0gICAgICAgIGRlbHRhSiA9IGRlbHRhWzFdOwotICAgICAg
ICBkZWx0YUsgPSBkZWx0YVsyXTsKLSAgICB9Ci0KLSAgICBbcywgdCwgciwgZHJlZl0gPSBwcm9q
ZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOwotICAgIGxldCByZXN1bHQgPSB0ZXhl
bEdhdGhlcmluZygKLSAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKLSAgICAgICAgTnVtYmVyLk1B
WF9WQUxVRSwKLSAgICAgICAgMCwKLSAgICAgICAgMCwKLSAgICAgICAgdGV4dHVyZSwKLSAgICAg
ICAgc2FtcGxlciwKLSAgICAgICAgMCwKLSAgICAgICAgcywgdCwgciwgYSwKLSAgICAgICAgZGVs
dGFJLCBkZWx0YUosIGRlbHRhSywKLSAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKLSAg
ICAgICAgLU51bWJlci5NQVhfVkFMVUUsCi0gICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5k
LAotICAgICAgICBkZHgsIGRkeSwKLSAgICAgICAgY2hhbm5lbCk7Ci0gICAgaWYgKGRyZWYgIT0g
dW5kZWZpbmVkKQotICAgICAgICByZXN1bHQgPSByZXN1bHQubWFwKHYgPT4gZGVwdGhDb21wYXJl
T3BlcmF0aW9uKGRyZWYsIHYsIHNhbXBsZXIuY29tcGFyZUZ1bmN0aW9uKSk7Ci0gICAgcmV0dXJu
IGNhc3RUb0lubmVyVHlwZUZvckdhdGhlcihyZXN1bHQsIHRleHR1cmUuaW5uZXJUeXBlKTsKLSAg
ICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggYW5pc290cm9weQotICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBkbyBtdWx0aXNhbXBsaW5nLgotfQotCi1mdW5jdGlv
biBjYXN0VG9Jbm5lclR5cGUodmFsdWUsIGlubmVyVHlwZSkKLXsKLSAgICBzd2l0Y2ggKGlubmVy
VHlwZSkgewotICAgICAgICBjYXNlICJ1Y2hhciI6Ci0gICAgICAgICAgICByZXR1cm4gY2FzdFRv
VWNoYXIodmFsdWUpOwotICAgICAgICBjYXNlICJ1c2hvcnQiOgotICAgICAgICAgICAgcmV0dXJu
IGNhc3RUb1VzaG9ydCh2YWx1ZSk7Ci0gICAgICAgIGNhc2UgInVpbnQiOgotICAgICAgICAgICAg
cmV0dXJuIGNhc3RUb1VpbnQodmFsdWUpOwotICAgICAgICBjYXNlICJjaGFyIjoKLSAgICAgICAg
ICAgIHJldHVybiBjYXN0VG9DaGFyKHZhbHVlKTsKLSAgICAgICAgY2FzZSAic2hvcnQiOgotICAg
ICAgICAgICAgcmV0dXJuIGNhc3RUb1Nob3J0KHZhbHVlKTsKLSAgICAgICAgY2FzZSAiaW50IjoK
LSAgICAgICAgICAgIHJldHVybiBjYXN0VG9JbnQodmFsdWUpOwotICAgICAgICBjYXNlICJoYWxm
IjoKLSAgICAgICAgICAgIHJldHVybiBjYXN0VG9IYWxmKHZhbHVlKTsKLSAgICAgICAgY2FzZSAi
ZmxvYXQiOgotICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0Zsb2F0KHZhbHVlKTsKLSAgICAgICAg
Ci0gICAgICAgIGNhc2UgInVjaGFyMiI6Ci0gICAgICAgIGNhc2UgInVjaGFyMyI6Ci0gICAgICAg
IGNhc2UgInVjaGFyNCI6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VjaGFy
KTsKLSAgICAgICAgY2FzZSAidXNob3J0MiI6Ci0gICAgICAgIGNhc2UgInVzaG9ydDMiOgotICAg
ICAgICBjYXNlICJ1c2hvcnQ0IjoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRv
VXNob3J0KTsKLSAgICAgICAgY2FzZSAidWludDIiOgotICAgICAgICBjYXNlICJ1aW50MyI6Ci0g
ICAgICAgIGNhc2UgInVpbnQ0IjoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRv
VWludCk7Ci0gICAgICAgIGNhc2UgImNoYXIyIjoKLSAgICAgICAgY2FzZSAiY2hhcjMiOgotICAg
ICAgICBjYXNlICJjaGFyNCI6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0No
YXIpOwotICAgICAgICBjYXNlICJzaG9ydDIiOgotICAgICAgICBjYXNlICJzaG9ydDMiOgotICAg
ICAgICBjYXNlICJzaG9ydDQiOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9T
aG9ydCk7Ci0gICAgICAgIGNhc2UgImludDIiOgotICAgICAgICBjYXNlICJpbnQzIjoKLSAgICAg
ICAgY2FzZSAiaW50NCI6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0ludCk7
Ci0gICAgICAgIGNhc2UgImhhbGYyIjoKLSAgICAgICAgY2FzZSAiaGFsZjMiOgotICAgICAgICBj
YXNlICJoYWxmNCI6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0hhbGYpOwot
ICAgICAgICBjYXNlICJmbG9hdDIiOgotICAgICAgICBjYXNlICJmbG9hdDMiOgotICAgICAgICBj
YXNlICJmbG9hdDQiOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9GbG9hdCk7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24g
dGV4dHVyZSBpbm5lciB0eXBlIik7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBzYW1wbGVUZXh0dXJl
KHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJh
bmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBkcmVmKQotewotICAgIGxldCBz
ID0gbG9jYXRpb25bMF07Ci0gICAgbGV0IHQgPSBsb2NhdGlvblsxXTsKLSAgICBsZXQgciA9IGxv
Y2F0aW9uWzJdOwotICAgIGxldCBxID0gbG9jYXRpb25bM107Ci0gICAgbGV0IGEgPSBsb2NhdGlv
bls0XTsKLQotICAgIGxldCBkZWx0YUkgPSB1bmRlZmluZWQ7Ci0gICAgbGV0IGRlbHRhSiA9IHVu
ZGVmaW5lZDsKLSAgICBsZXQgZGVsdGFLID0gdW5kZWZpbmVkOwotICAgIGlmIChkZWx0YSAhPSB1
bmRlZmluZWQpIHsKLSAgICAgICAgZGVsdGFJID0gZGVsdGFbMF07Ci0gICAgICAgIGRlbHRhSiA9
IGRlbHRhWzFdOwotICAgICAgICBkZWx0YUsgPSBkZWx0YVsyXTsKLSAgICB9Ci0KLSAgICBbcywg
dCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOwotICAg
IGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKLSAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwK
LSAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKLSAgICAgICAgMCwKLSAgICAgICAgMCwKLSAgICAg
ICAgdGV4dHVyZSwKLSAgICAgICAgc2FtcGxlciwKLSAgICAgICAgMCwKLSAgICAgICAgcywgdCwg
ciwgYSwKLSAgICAgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKLSAgICAgICAgbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCwKLSAgICAgICAgLU51bWJlci5NQVhfVkFMVUUsCi0gICAgICAgIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLAotICAgICAgICBkZHgsIGRkeSk7Ci0gICAgaWYgKGRyZWYgIT0g
dW5kZWZpbmVkKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBBcnJheSkKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiRGVwdGggY29tcGFyaXNvbiBub3Qgc3VwcG9ydGVkIG9u
IG11bHRpY2hhbm5lbCB0ZXh0dXJlcyIpOwotICAgICAgICByZXN1bHQgPSBkZXB0aENvbXBhcmVP
cGVyYXRpb24oZHJlZiwgcmVzdWx0LCBzYW1wbGVyLmNvbXBhcmVGdW5jdGlvbik7Ci0gICAgfQot
ICAgIHJldHVybiBjYXN0VG9Jbm5lclR5cGUocmVzdWx0LCB0ZXh0dXJlLmlubmVyVHlwZSk7Ci0g
ICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKLSAgICAv
LyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGluZy4KLX0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RyYXBTdGF0ZW1lbnQuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UcmFwU3RhdGVtZW50LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMTkzZjczZTZhOS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHJhcFN0YXRlbWVudC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgVHJhcFN0YXRlbWVudCBleHRlbmRzIE5vZGUgewotICAg
IGNvbnN0cnVjdG9yKG9yaWdpbikKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRo
aXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0
dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiAidHJhcCI7Ci0gICAgfQotfTsKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5
cGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNWU1NmU1MDFkLi4wMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlIGV4dGVuZHMgTm9kZSB7Ci0g
ICAgZ2V0IGtpbmQoKSB7IHJldHVybiBUeXBlOyB9Ci0gICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICBnZXQgaXNBcnJheSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgZ2V0IGlz
QXJyYXlSZWYoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIGdldCBpc1JlZigpIHsgcmV0dXJuIHRo
aXMuaXNQdHIgfHwgdGhpcy5pc0FycmF5UmVmOyB9Ci0gICAgZ2V0IGlzTnVtYmVyKCkgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICBnZXQgaXNJbnQoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIGdldCBp
c0Zsb2F0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBnZXQgaXNFbnVtKCkgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAot
ICAgIGdldCBhcnJheVJlZlR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBBcnJheVJl
ZlR5cGUodGhpcy5vcmlnaW4sICJ0aHJlYWQiLCB0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBIYXZl
IHRvIGNhbGwgdGhlc2Ugb24gdGhlIHVuaWZ5Tm9kZS4KLSAgICBhcmd1bWVudEZvckFuZE92ZXJs
b2FkKG9yaWdpbiwgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IE1ha2VQdHJFeHBy
ZXNzaW9uKG9yaWdpbiwgdmFsdWUpOwotICAgIH0KLSAgICBhcmd1bWVudFR5cGVGb3JBbmRPdmVy
bG9hZChvcmlnaW4pCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFB0clR5cGUob3JpZ2luLCAi
dGhyZWFkIiwgdGhpcyk7Ci0gICAgfQotICAgIHJldHVyblR5cGVGcm9tQW5kT3ZlcmxvYWQob3Jp
Z2luKQotICAgIHsKLSAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0
cmluZywgIkJ5LXBvaW50ZXIgb3ZlcmxvYWQgcmV0dXJuZWQgbm9uLXBvaW50ZXIgdHlwZTogIiAr
IHRoaXMpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVHlwZURlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNGEzNGJjYzM0Li4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlRGVmIGV4dGVuZHMgVHlwZSB7
Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgfQotICAgIAotICAgIGdl
dCB1bmlmeU5vZGUoKSB7IHJldHVybiB0aGlzLnR5cGUudW5pZnlOb2RlOyB9Ci0gICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4g
dGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAg
IAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgdHlwZWRlZiAke3RoaXMu
bmFtZX0gPSAke3RoaXMudHlwZX1gOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkYmZiY2FjNTAzNC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBz
dHJpY3QiOwotCi1jbGFzcyBUeXBlRGVmUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBj
b25zdHJ1Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl92aXNp
dGluZyA9IG5ldyBWaXNpdGluZ1NldCgpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFR5cGVSZWYo
bm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQobm9kZSwgKCkgPT4g
ewotICAgICAgICAgICAgaWYgKG5vZGUudHlwZSBpbnN0YW5jZW9mIFR5cGVEZWYpIHsKLSAgICAg
ICAgICAgICAgICBsZXQgbmV3VHlwZSA9IG5vZGUudHlwZS50eXBlOwotICAgICAgICAgICAgICAg
IG5ld1R5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICAgICAgbm9kZS50eXBlID0gbmV3VHlw
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZU92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlT3ZlcmxvYWRSZXNvbHV0aW9u
RmFpbHVyZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVjYjNmNzEwZmEuLjAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVPdmVybG9h
ZFJlc29sdXRpb25GYWlsdXJlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwot
Ci1jbGFzcyBUeXBlT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZSB7Ci0gICAgY29uc3RydWN0b3Io
dHlwZSwgcmVhc29uKQotICAgIHsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgICAg
IHRoaXMuX3JlYXNvbiA9IHJlYXNvbjsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHR5cGUoKSB7IHJl
dHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IHJlYXNvbigpIHsgcmV0dXJuIHRoaXMuX3JlYXNv
bjsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5
cGUudG9TdHJpbmcoKSArICIgZGlkIG5vdCBtYXRjaCBiZWNhdXNlOiAiICsgdGhpcy5yZWFzb247
Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlUmVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDFiYjA2MDJmZjAuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7Ci0gICAg
Y29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzID0gW10pCi0gICAgewotICAg
ICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRo
aXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlID0gbnVsbDsKLSAgICAgICAgdGhp
cy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7Ci0gICAgfQotICAgIAotICAgIHN0YXRp
YyB3cmFwKHR5cGUpCi0gICAgewotICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYp
Ci0gICAgICAgICAgICByZXR1cm4gdHlwZTsKLSAgICAgICAgbGV0IHJlc3VsdDsKLSAgICAgICAg
aWYgKHR5cGUgaW5zdGFuY2VvZiBOYXRpdmVUeXBlKQotICAgICAgICAgICAgcmVzdWx0ID0gbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgdHlwZS50eXBlQXJndW1lbnRzKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4s
IHR5cGUubmFtZSk7Ci0gICAgICAgIHJlc3VsdC50eXBlID0gdHlwZTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0gCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdp
bjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBl
QXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQotICAgIAotICAgIGdl
dCB0eXBlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlOwotICAgIH0KLQotICAg
IHNldCB0eXBlKG5ld1R5cGUpCi0gICAgewotICAgICAgICB0aGlzLl90eXBlID0gbmV3VHlwZTsK
LSAgICB9Ci0KLSAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKQotICAgIHsKLSAgICAgICAg
aWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBhbnkgdHlwZXMgbmFtZWQg
IiArIHRoaXMubmFtZSk7Ci0KLSAgICAgICAgbGV0IGZhaWx1cmVzID0gW107Ci0gICAgICAgIGxl
dCBvdmVybG9hZCA9IHJlc29sdmVUeXBlT3ZlcmxvYWRJbXBsKHBvc3NpYmxlT3ZlcmxvYWRzLCB0
aGlzLnR5cGVBcmd1bWVudHMpOwotCi0gICAgICAgIGlmICghb3ZlcmxvYWQudHlwZSkgewotICAg
ICAgICAgICAgZmFpbHVyZXMucHVzaCguLi5vdmVybG9hZC5mYWlsdXJlcyk7Ci0gICAgICAgICAg
ICBsZXQgbWVzc2FnZSA9ICJEaWQgbm90IGZpbmQgdHlwZSBuYW1lZCAiICsgdGhpcy5uYW1lICsg
IiBmb3IgdHlwZSBhcmd1bWVudHMgIjsKLSAgICAgICAgICAgIG1lc3NhZ2UgKz0gIigiICsgdGhp
cy50eXBlQXJndW1lbnRzICsgIikiOwotICAgICAgICAgICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkK
LSAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1
cmVzLmpvaW4oIlxuIikKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3Jp
Z2luLm9yaWdpblN0cmluZywgbWVzc2FnZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAg
ICAgbGV0IHR5cGVBcmd1bWVudCA9IHRoaXMudHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAgICAg
IGxldCByZXNvbHZlZFR5cGVBcmd1bWVudCA9IG92ZXJsb2FkLnR5cGUudHlwZUFyZ3VtZW50c1tp
XTsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnQuZXF1YWxzV2l0aENvbW1p
dChyZXNvbHZlZFR5cGVBcmd1bWVudCk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmlnaW5TdHJp
bmcgKyAiIGFyZ3VtZW50IHR5cGVzIGZvciBUeXBlIGFuZCBUeXBlUmVmIG5vdCBlcXVhbDogYXJn
dW1lbnQgdHlwZSA9ICIgKyB0eXBlQXJndW1lbnQgKyAiLCByZXNvbHZlZCB0eXBlIGFyZ3VtZW50
ID0gIiArIHJlc29sdmVkVHlwZUFyZ3VtZW50KTsKLSAgICAgICAgICAgIGlmIChyZXNvbHZlZFR5
cGVBcmd1bWVudC5jb25zdHJ1Y3Rvci5uYW1lID09ICJHZW5lcmljTGl0ZXJhbCIpIHsKLSAgICAg
ICAgICAgICAgICByZXN1bHQgPSB0eXBlQXJndW1lbnQudHlwZS5lcXVhbHNXaXRoQ29tbWl0KHJl
c29sdmVkVHlwZUFyZ3VtZW50LnR5cGUpOwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQot
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5v
cmlnaW5TdHJpbmcgKyAiIGFyZ3VtZW50IHR5cGVzIGZvciBUeXBlIGFuZCBUeXBlUmVmIG5vdCBl
cXVhbDogYXJndW1lbnQgdHlwZSA9ICIgKyB0eXBlQXJndW1lbnQgKyAiLCByZXNvbHZlZCB0eXBl
IGFyZ3VtZW50ID0gIiArIHJlc29sdmVkVHlwZUFyZ3VtZW50KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgfQotICAgICAgICB0aGlzLnR5cGUgPSBvdmVybG9hZC50
eXBlOwotICAgIH0KLQotICAgIGdldCB1bmlmeU5vZGUoKQotICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLnR5cGUpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHR5cGUgd2hlbiBldmFs
dWF0aW5nICR7dGhpc30gdW5pZnlOb2RlYCk7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5p
ZnlOb2RlOwotICAgIH0KLSAgICAKLSAgICBwb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9m
ZnNldCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFs
dWUoYnVmZmVyLCBvZmZzZXQpOwotICAgIH0KLSAgICAKLSAgICBnZXQgc2l6ZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgfQotICAgIAotICAgIGdldCBpc1By
aW1pdGl2ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwot
ICAgIH0KLSAgICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAg
ICB7Ci0gICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgVHlwZVJlZikpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghdGhpcy50eXBlLnVuaWZ5KHVuaWZpY2F0aW9u
Q29udGV4dCwgb3RoZXIudHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMubmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmco
KTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMubmFtZTsKLSAgICAgICAgaWYgKHRoaXMudHlw
ZUFyZ3VtZW50cy5sZW5ndGggPiAwKQotICAgICAgICAgICAgcmVzdWx0ICs9ICI8IiArIHRoaXMu
dHlwZUFyZ3VtZW50cy5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudG9TdHJpbmcoKSkuam9pbigi
LCIpICsgIj4iOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZWRWYWx1ZS5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVkVmFsdWUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNiNjlmYjQ3OWU1Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UeXBlZFZhbHVlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBUeXBlZFZhbHVlIHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlLCBlUHRyKQot
ICAgIHsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX2VQdHIgPSBl
UHRyOwotICAgIH0KLSAgICAKLSAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0K
LSAgICBnZXQgZVB0cigpIHsgcmV0dXJuIHRoaXMuX2VQdHI7IH0KLSAgICAKLSAgICBzdGF0aWMg
Ym94KHR5cGUsIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBUeXBlZFZhbHVlKHR5
cGUsIEVQdHIuYm94KHZhbHVlKSk7Ci0gICAgfQotICAgIAotICAgIGdldCB2YWx1ZSgpIHsgcmV0
dXJuIHRoaXMuZVB0ci5sb2FkVmFsdWUoKTsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAiKCIgKyB0aGlzLmVQdHIgKyAiKSI7Ci0gICAg
fQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVWludExpdGVy
YWwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0ZXJhbC5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdhMDU2NjUyNmYuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VpbnRMaXRlcmFsLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1sZXQgVWludExpdGVyYWwgPSBjcmVhdGVMaXRlcmFs
KHsKLSAgICBsaXRlcmFsQ2xhc3NOYW1lOiAiVWludExpdGVyYWwiLAotICAgIHByZWZlcnJlZFR5
cGVOYW1lOiAidWludCIsCi0gICAgCi0gICAgbmVnQ29uc3RleHByKG9yaWdpbikKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgVWludExpdGVyYWwob3JpZ2luLCAoLXRoaXMudmFsdWUpID4+PiAw
KTsKLSAgICB9LAotICAgIAotICAgIGNyZWF0ZVR5cGUob3JpZ2luLCB2YWx1ZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgVWludExpdGVyYWxUeXBlKG9yaWdpbiwgdmFsdWUpOwotICAgIH0K
LX0pOwotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0
ZXJhbFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0ZXJhbFR5
cGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYjAzYzMxY2U5Li4wMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0ZXJhbFR5cGUu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWxldCBVaW50TGl0ZXJhbFR5
cGUgPSBjcmVhdGVMaXRlcmFsVHlwZSh7Ci0gICAgcHJlZmVycmVkVHlwZU5hbWU6ICJ1aW50IiwK
LSAgICAKLSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0g
ICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAg
ICAgICBpZiAoIXJlYWxUaGlzLmlzSW50KQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZh
bHNlLCByZWFzb246ICJDYW5ub3QgdXNlIHVpbnQgbGl0ZXJhbCB3aXRoIG5vbi1pbnRlZ2VyIHR5
cGUgIiArIHJlYWxUaGlzfTsKLSAgICAgICAgaWYgKHJlYWxUaGlzLmlzU2lnbmVkKQotICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJDYW5ub3QgdXNlIHVpbnQgbGl0
ZXJhbCB3aXRoIHNpZ25lZCB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIGlmICghcmVhbFRo
aXMuY2FuUmVwcmVzZW50KHRoaXMudmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6
IGZhbHNlLCByZWFzb246ICJVaW50IGxpdGVyYWwgIiArIHRoaXMudmFsdWUgKyAiIHRvbyBsYXJn
ZSB0byBiZSByZXByZXNlbnRlZCBieSB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIHJldHVy
biB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzgxOTE2OTcyMjMuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEz
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7Ci0gICAgY29uc3RydWN0
b3IoKQotICAgIHsKLSAgICAgICAgdGhpcy5fbmV4dE1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAg
dGhpcy5fZXh0cmFOb2RlcyA9IG5ldyBTZXQoKTsKLSAgICB9Ci0gICAgCi0gICAgdW5pb24oYSwg
YikKLSAgICB7Ci0gICAgICAgIGEgPSB0aGlzLmZpbmQoYSk7Ci0gICAgICAgIGIgPSB0aGlzLmZp
bmQoYik7Ci0KLSAgICAgICAgaWYgKGEgPT0gYikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBpZiAoIWEuaXNVbmlmaWFibGUpIHsKLSAgICAgICAgICAgIFthLCBiXSA9IFtiLCBhXTsK
LSAgICAgICAgICAgIGlmICghYS5pc1VuaWZpYWJsZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbm5vdCB1bmlmeSBub24tdW5pZmlhYmxlIHRoaW5ncyAiICsgYSArICIgYW5k
ICIgKyBiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX25leHRNYXAuc2V0KGEsIGIpOwot
ICAgIH0KLSAgICAKLSAgICBmaW5kKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgY3VycmVudE5v
ZGUgPSBub2RlOwotICAgICAgICBsZXQgbmV4dE5vZGUgPSB0aGlzLl9uZXh0TWFwLmdldChjdXJy
ZW50Tm9kZSk7Ci0gICAgICAgIGlmICghbmV4dE5vZGUpCi0gICAgICAgICAgICByZXR1cm4gY3Vy
cmVudE5vZGU7Ci0gICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgIGN1cnJlbnROb2RlID0g
bmV4dE5vZGU7Ci0gICAgICAgICAgICBuZXh0Tm9kZSA9IHRoaXMuX25leHRNYXAuZ2V0KGN1cnJl
bnROb2RlKTsKLSAgICAgICAgICAgIGlmICghbmV4dE5vZGUpCi0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fbmV4dE1hcC5zZXQobm9kZSwgY3VycmVudE5v
ZGUpOwotICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7Ci0gICAgfQotICAgIAotICAgIGFkZEV4
dHJhTm9kZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZXh0cmFOb2Rlcy5hZGQobm9kZSk7
Ci0gICAgfQotICAgIAotICAgIGdldCBub2RlcygpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFNldCgpOwotICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5fbmV4
dE1hcCkgewotICAgICAgICAgICAgcmVzdWx0LmFkZChrZXkpOwotICAgICAgICAgICAgcmVzdWx0
LmFkZCh2YWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChsZXQgbm9kZSBvZiB0aGlzLl9l
eHRyYU5vZGVzKQotICAgICAgICAgICAgcmVzdWx0LmFkZChub2RlKTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgKnR5cGVBcmd1bWVudHMoKQotICAgIHsKLSAgICAg
ICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHRoaXMubm9kZXMpIHsKLSAgICAgICAgICAgIGlm
ICghdHlwZUFyZ3VtZW50LmlzVW5pZmlhYmxlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgeWllbGQgdHlwZUFyZ3VtZW50OwotICAgICAgICB9Ci0gICAgfQotICAgIAot
ICAgIHZlcmlmeSgpCi0gICAgewotICAgICAgICAvLyBXZSBkbyBhIHR3by1waGFzZSBwcmUtdmVy
aWZpY2F0aW9uLiBUaGlzIGdpdmVzIGxpdGVyYWxzIGEgY2hhbmNlIHRvIHNlbGVjdCBhIG1vcmUg
c3BlY2lmaWMgdHlwZS4KLSAgICAgICAgbGV0IHByZXBhcmF0aW9ucyA9IFtdOwotICAgICAgICBm
b3IgKGxldCBub2RlIG9mIHRoaXMubm9kZXMpIHsKLSAgICAgICAgICAgIGxldCBwcmVwYXJhdGlv
biA9IG5vZGUucHJlcGFyZVRvVmVyaWZ5KHRoaXMpOwotICAgICAgICAgICAgaWYgKHByZXBhcmF0
aW9uKQotICAgICAgICAgICAgICAgIHByZXBhcmF0aW9ucy5wdXNoKHByZXBhcmF0aW9uKTsKLSAg
ICAgICAgfQotICAgICAgICBmb3IgKGxldCBwcmVwYXJhdGlvbiBvZiBwcmVwYXJhdGlvbnMpIHsK
LSAgICAgICAgICAgIGxldCByZXN1bHQgPSBwcmVwYXJhdGlvbigpOwotICAgICAgICAgICAgaWYg
KCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
IH0KLQotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy50eXBlQXJndW1lbnRz
KCkpIHsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnQudmVyaWZ5QXNBcmd1
bWVudCh0aGlzKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0
cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGNvbnZlcnNpb25Db3N0KCkKLSAgICB7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSAwOwotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhp
cy50eXBlQXJndW1lbnRzKCkpCi0gICAgICAgICAgICByZXN1bHQgKz0gdHlwZUFyZ3VtZW50LmNv
bnZlcnNpb25Db3N0KHRoaXMpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAK
LSAgICBjb21taXQoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHRo
aXMudHlwZUFyZ3VtZW50cygpKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LmNvbW1pdFVuaWZp
Y2F0aW9uKHRoaXMpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVW5yZWFjaGFibGVDb2RlQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1VucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDExYzhlMTllZTE2Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9VbnJlYWNoYWJsZUNvZGVDaGVja2VyLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBVbnJlYWNoYWJsZUNvZGVDaGVja2VyIGV4dGVu
ZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3IocHJvZ3JhbSkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKCk7Ci0gICAgICAgIHRoaXMuX3JldHVybkNoZWNrZXIgPSBuZXcgUmV0dXJuQ2hlY2tlcihw
cm9ncmFtKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRCbG9jayhub2RlKQotICAgIHsKLSAgICAg
ICAgc3VwZXIudmlzaXRCbG9jayhub2RlKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBu
b2RlLnN0YXRlbWVudHMubGVuZ3RoIC0gMTsgKytpKSB7Ci0gICAgICAgICAgICBzd2l0Y2gobm9k
ZS5zdGF0ZW1lbnRzW2ldLnZpc2l0KHRoaXMuX3JldHVybkNoZWNrZXIpKSB7Ci0gICAgICAgICAg
ICBjYXNlIHRoaXMuX3JldHVybkNoZWNrZXIucmV0dXJuU3R5bGUuRGVmaW5pdGVseVJldHVybnM6
Ci0gICAgICAgICAgICBjYXNlIHRoaXMuX3JldHVybkNoZWNrZXIucmV0dXJuU3R5bGUuRGVmaW5p
dGVseURvZXNudFJldHVybjoKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgbm9kZS5zdGF0ZW1lbnRzW2kgKyAxXS5vcmlnaW4ub3JpZ2lu
U3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAiVW5yZWFjaGFibGUgY29kZSIpOwotICAgICAg
ICAgICAgY2FzZSB0aGlzLl9yZXR1cm5DaGVja2VyLnJldHVyblN0eWxlLkhhc250UmV0dXJuZWRZ
ZXQ6Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WYWx1
ZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ZhbHVlLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzZjUwZGJmOTEwNC4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFsdWUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWNsYXNzIFZhbHVlIGV4dGVuZHMgTm9kZSB7Ci0gICAgZ2V0IGtpbmQoKSB7
IHJldHVybiBWYWx1ZTsgfQotICAgIGdldCBpc0NvbnN0ZXhwcigpIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgZ2V0IGlzTFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBnZXQgbm90TFZhbHVl
UmVhc29uKCkgeyByZXR1cm4gbnVsbDsgfQotICAgIAotICAgIGdldCBub3RMVmFsdWVSZWFzb25T
dHJpbmcoKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMubm90TFZhbHVlUmVhc29u
OwotICAgICAgICBpZiAocmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuICJcbiIgKyByZXN1bHQ7
Ci0gICAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0gICAgCi0gICAgYmVjb21lKG90aGVyVmFsdWUp
Ci0gICAgewotICAgICAgICAvLyBOT1RFOiBNYWtlIHN1cmUgdGhhdCBJZGVudGl0eUV4cHJlc3Np
b24gaW1wbGVtZW50cyB1bmlmeU5vZGUgYW5kIGFsbCB0aGF0Ci0gICAgICAgIGxldCBvcmlnaW4g
PSB0aGlzLm9yaWdpbjsKLSAgICAgICAgdGhpcy5fX3Byb3RvX18gPSBJZGVudGl0eUV4cHJlc3Np
b24ucHJvdG90eXBlOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRo
aXMuX3RhcmdldCA9IG90aGVyVmFsdWU7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WYXJpYWJsZURlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9WYXJpYWJsZURlY2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc2OGY4YmFhYWQzLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9WYXJpYWJsZURlY2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWNsYXNzIFZhcmlhYmxlRGVjbCBleHRlbmRzIFZhbHVlIHsKLSAgICBjb25zdHJ1Y3Rvcihv
cmlnaW4sIG5hbWUsIHR5cGUsIGluaXRpYWxpemVyKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsK
LSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX2luaXRpYWxpemVy
ID0gaW5pdGlhbGl6ZXI7Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0
aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAg
ICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KLSAgICBnZXQgaW5pdGlhbGl6ZXIo
KSB7IHJldHVybiB0aGlzLl9pbml0aWFsaXplcjsgfQotICAgIGdldCB2YXJJc0xWYWx1ZSgpIHsg
cmV0dXJuIHRydWU7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lICsgKHRoaXMuaW5pdGlhbGl6ZXIgPyAiID0g
IiArIHRoaXMuaW5pdGlhbGl6ZXIgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WYXJpYWJsZVJlZi5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1ZhcmlhYmxlUmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDc1OTY5M2YzNy4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVmFyaWFibGVSZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWNsYXNzIFZhcmlhYmxlUmVmIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gICAgY29uc3RydWN0
b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luKTsKLSAgICAgICAg
dGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMudmFyaWFibGUgPSBudWxsOwotICAgIH0K
LSAgICAKLSAgICBzdGF0aWMgd3JhcCh2YXJpYWJsZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1
bHQgPSBuZXcgVmFyaWFibGVSZWYodmFyaWFibGUub3JpZ2luLCB2YXJpYWJsZS5uYW1lKTsKLSAg
ICAgICAgcmVzdWx0LnZhcmlhYmxlID0gdmFyaWFibGU7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgfQotICAgIAotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAg
IGdldCBpc0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRoaXMudmFyaWFibGUuaXNDb25zdGV4cHI7IH0K
LSAgICBnZXQgdW5pZnlOb2RlKCkgeyByZXR1cm4gdGhpcy52YXJpYWJsZS51bmlmeU5vZGU7IH0g
Ly8gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gdGhpcyBpcyBhIGNvbnN0ZXhwci4KLSAgICBn
ZXQgaXNMVmFsdWUoKSB7IHJldHVybiB0aGlzLnZhcmlhYmxlLnZhcklzTFZhbHVlOyB9Ci0gICAg
Z2V0IGFkZHJlc3NTcGFjZSgpIHsgcmV0dXJuICJ0aHJlYWQiOyB9Ci0gICAgCi0gICAgdG9TdHJp
bmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKLSAgICB9Ci19CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WZWN0b3JUeXBlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmVjdG9yVHlwZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZGYwY2JjMmM3MzAuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1ZlY3RvclR5cGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3Ry
aWN0IjsKLQotY2xhc3MgVmVjdG9yVHlwZSBleHRlbmRzIE5hdGl2ZVR5cGUgewotICAgIGNvbnN0
cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIHN1cGVy
KG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cyk7Ci0gICAgfQotCi0gICAgZ2V0IGVsZW1lbnRU
eXBlKCkgeyByZXR1cm4gdGhpcy50eXBlQXJndW1lbnRzWzBdOyB9Ci0gICAgZ2V0IG51bUVsZW1l
bnRzKCkgeyByZXR1cm4gdGhpcy50eXBlQXJndW1lbnRzWzFdOyB9Ci0gICAgZ2V0IG51bUVsZW1l
bnRzVmFsdWUoKSB7IHJldHVybiB0aGlzLm51bUVsZW1lbnRzLnZhbHVlOyB9Ci0gICAgZ2V0IHNp
emUoKSB7IHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnNpemUgKiB0aGlzLm51bUVsZW1lbnRzVmFs
dWU7IH0KLQotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsK
LSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBWZWN0b3JUeXBlKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAodGhpcy5udW1FbGVtZW50c1ZhbHVlICE9PSBv
dGhlci5udW1FbGVtZW50c1ZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3Ro
ZXIuZWxlbWVudFR5cGUpOwotICAgIH0KLQotICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZl
ciwgb2Zmc2V0KQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm51bUVs
ZW1lbnRzVmFsdWU7ICsraSkKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudFR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQgKyBpICogdGhpcy5lbGVtZW50VHlwZS5zaXplKTsK
LSAgICB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSB0
eXBlZGVmIHZlY3Rvcjwke3RoaXMuZWxlbWVudFR5cGV9LCAke3RoaXMubnVtRWxlbWVudHNWYWx1
ZX0+YDsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Zpc2l0aW5nU2V0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRp
bmdTZXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2MDU4ZjEzNDVmLi4wMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdGluZ1NldC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgVmlzaXRpbmdTZXQg
ewotICAgIGNvbnN0cnVjdG9yKC4uLml0ZW1zKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2V0ID0g
bmV3IFNldChpdGVtcyk7Ci0gICAgfQotICAgIAotICAgIGRvVmlzaXQoaXRlbSwgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5fc2V0LmhhcyhpdGVtKSkKLSAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKGl0ZW0ub3JpZ2luLm9yaWdpblN0cmluZywgIlJlY3Vyc2l2ZSAi
ICsgaXRlbS5raW5kLm5hbWUpOwotICAgICAgICB0aGlzLl9zZXQuYWRkKGl0ZW0pOwotICAgICAg
ICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0gZmluYWxs
eSB7Ci0gICAgICAgICAgICB0aGlzLl9zZXQuZGVsZXRlKGl0ZW0pOwotICAgICAgICB9Ci0gICAg
fQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDRlYTFiOWVlNGZhLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzc4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1
c2Ugc3RyaWN0IjsKLQotY2xhc3MgVmlzaXRvciB7Ci0gICAgdmlzaXRQcm9ncmFtKG5vZGUpCi0g
ICAgewotICAgICAgICBmb3IgKGxldCBzdGF0ZW1lbnQgb2Ygbm9kZS50b3BMZXZlbFN0YXRlbWVu
dHMpCi0gICAgICAgICAgICBzdGF0ZW1lbnQudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0RnVuYyhub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRo
aXMpOwotICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKQotICAg
ICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICBpZiAobm9kZS5hdHRyaWJ1
dGVCbG9jaykgewotICAgICAgICAgICAgZm9yIChsZXQgYXR0cmlidXRlIG9mIG5vZGUuYXR0cmli
dXRlQmxvY2spCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlLnZpc2l0KHRoaXMpOwotICAgICAg
ICB9Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS5zZW1hbnRpYywgdGhpcyk7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50eXBl
LnZpc2l0KHRoaXMpOwotICAgICAgICBOb2RlLnZpc2l0KG5vZGUuc2VtYW50aWMsIHRoaXMpOwot
ICAgIH0KLSAgICAKLSAgICB2aXNpdEZ1bmNEZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
dmlzaXRGdW5jKG5vZGUpOwotICAgICAgICBub2RlLmJvZHkudmlzaXQodGhpcyk7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0TmF0aXZlRnVuYyhub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNp
dEZ1bmMobm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0QmxvY2sobm9kZSkKLSAgICB7Ci0g
ICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVudHMpCi0gICAgICAgICAg
ICBzdGF0ZW1lbnQudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29tbWFFeHBy
ZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBleHByZXNzaW9uIG9mIG5vZGUu
bGlzdCkKLSAgICAgICAgICAgIGV4cHJlc3Npb24udmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAot
ICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3Vt
ZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNp
dCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCi0gICAgewot
ICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAg
ICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2aXNp
dFR5cGVEZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAg
ICB9Ci0gICAgCi0gICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBmb3Ig
KGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykKLSAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMp
OwotICAgIH0KLSAgICAKLSAgICB2aXNpdEZpZWxkKG5vZGUpCi0gICAgewotICAgICAgICBub2Rl
LnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS5zZW1hbnRpYywgdGhp
cyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAg
IG5vZGUuYmFzZVR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IG1lbWJlciBvZiBu
b2RlLm1lbWJlcnMpCi0gICAgICAgICAgICBtZW1iZXIudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0RW51bU1lbWJlcihub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChu
b2RlLnZhbHVlLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRFbnVtTGl0ZXJhbChub2Rl
KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRFbGVtZW50YWxUeXBlKG5vZGUpCi0gICAg
ewotICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRFbGVt
ZW50YWxUeXBlKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFB0clR5cGUobm9kZSkKLSAg
ICB7Ci0gICAgICAgIHRoaXMudmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpOwotICAgIH0KLSAgICAK
LSAgICB2aXNpdEFycmF5UmVmVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdFJl
ZmVyZW5jZVR5cGUobm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0QXJyYXlUeXBlKG5vZGUp
Ci0gICAgewotICAgICAgICB0aGlzLnZpc2l0RWxlbWVudGFsVHlwZShub2RlKTsKLSAgICAgICAg
bm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRWYXJp
YWJsZURlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAg
ICAgICAgTm9kZS52aXNpdChub2RlLmluaXRpYWxpemVyLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmxocy52aXNpdCh0
aGlzKTsKLSAgICAgICAgbm9kZS5yaHMudmlzaXQodGhpcyk7Ci0gICAgICAgIE5vZGUudmlzaXQo
bm9kZS50eXBlLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRSZWFkTW9kaWZ5V3JpdGVF
eHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmxWYWx1ZS52aXNpdCh0aGlzKTsK
LSAgICAgICAgbm9kZS5vbGRWYWx1ZVZhci52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5uZXdW
YWx1ZVZhci52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5uZXdWYWx1ZUV4cC52aXNpdCh0aGlz
KTsKLSAgICAgICAgbm9kZS5yZXN1bHRFeHAudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0RGVyZWZlcmVuY2VFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnB0
ci52aXNpdCh0aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNpdFRlcm5hcnlFeHByZXNzaW9uKG5vZGUp
Ci0gICAgewotICAgICAgICBub2RlLnByZWRpY2F0ZS52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9k
ZS5ib2R5RXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5lbHNlRXhwcmVzc2lv
bi52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgX2hhbmRsZVByb3BlcnR5QWNjZXNzRXhw
cmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLmJhc2VUeXBlLCB0
aGlzKTsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLmNhbGxGb3JHZXQsIHRoaXMpOwotICAgICAg
ICBOb2RlLnZpc2l0KG5vZGUucmVzdWx0VHlwZUZvckdldCwgdGhpcyk7Ci0gICAgICAgIE5vZGUu
dmlzaXQobm9kZS5jYWxsRm9yQW5kLCB0aGlzKTsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnJl
c3VsdFR5cGVGb3JBbmQsIHRoaXMpOwotICAgICAgICBOb2RlLnZpc2l0KG5vZGUuY2FsbEZvclNl
dCwgdGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2RlKQotICAg
IHsKLSAgICAgICAgbm9kZS5zdHJ1Y3QudmlzaXQodGhpcyk7Ci0gICAgICAgIHRoaXMuX2hhbmRs
ZVByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRJ
bmRleEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUuYXJyYXkudmlzaXQodGhp
cyk7Ci0gICAgICAgIG5vZGUuaW5kZXgudmlzaXQodGhpcyk7Ci0gICAgICAgIHRoaXMuX2hhbmRs
ZVByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRN
YWtlUHRyRXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5sVmFsdWUudmlzaXQo
dGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TWFrZUFycmF5UmVmRXhwcmVzc2lvbihub2Rl
KQotICAgIHsKLSAgICAgICAgbm9kZS5sVmFsdWUudmlzaXQodGhpcyk7Ci0gICAgICAgIE5vZGUu
dmlzaXQobm9kZS5udW1FbGVtZW50cywgdGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29u
dmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmxW
YWx1ZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRWYXJpYWJsZVJlZihub2Rl
KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRJZlN0YXRlbWVudChub2RlKQotICAgIHsK
LSAgICAgICAgbm9kZS5jb25kaXRpb25hbC52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5ib2R5
LnZpc2l0KHRoaXMpOwotICAgICAgICBOb2RlLnZpc2l0KG5vZGUuZWxzZUJvZHksIHRoaXMpOwot
ICAgIH0KLSAgICAKLSAgICB2aXNpdFdoaWxlTG9vcChub2RlKQotICAgIHsKLSAgICAgICAgbm9k
ZS5jb25kaXRpb25hbC52aXNpdCh0aGlzKTsKLSAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMp
OwotICAgIH0KLSAgICAKLSAgICB2aXNpdERvV2hpbGVMb29wKG5vZGUpCi0gICAgewotICAgICAg
ICBub2RlLmJvZHkudmlzaXQodGhpcyk7Ci0gICAgICAgIG5vZGUuY29uZGl0aW9uYWwudmlzaXQo
dGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Rm9yTG9vcChub2RlKQotICAgIHsKLSAgICAg
ICAgTm9kZS52aXNpdChub2RlLmluaXRpYWxpemF0aW9uLCB0aGlzKTsKLSAgICAgICAgTm9kZS52
aXNpdChub2RlLmNvbmRpdGlvbiwgdGhpcyk7Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS5pbmNy
ZW1lbnQsIHRoaXMpOwotICAgICAgICBub2RlLmJvZHkudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0U3dpdGNoU3RhdGVtZW50KG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnZh
bHVlLnZpc2l0KHRoaXMpOwotICAgICAgICBmb3IgKGxldCBzd2l0Y2hDYXNlIG9mIG5vZGUuc3dp
dGNoQ2FzZXMpCi0gICAgICAgICAgICBzd2l0Y2hDYXNlLnZpc2l0KHRoaXMpOwotICAgIH0KLSAg
ICAKLSAgICB2aXNpdFN3aXRjaENhc2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIE5vZGUudmlzaXQo
bm9kZS52YWx1ZSwgdGhpcyk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICB9
Ci0KLSAgICB2aXNpdFJldHVybihub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2Rl
LnZhbHVlLCB0aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNpdENvbnRpbnVlKG5vZGUpCi0gICAgewot
ICAgIH0KLQotICAgIHZpc2l0QnJlYWsobm9kZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlzaXRU
cmFwU3RhdGVtZW50KG5vZGUpCi0gICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdEdlbmVyaWNM
aXRlcmFsKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAg
fQotICAgIAotICAgIHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCi0gICAgewotICAgICAg
ICBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7Ci0gICAgICAgIG5vZGUucHJlZmVycmVkVHlw
ZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXROdWxsTGl0ZXJhbChub2RlKQot
ICAgIHsKLSAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2
aXNpdEJvb2xMaXRlcmFsKG5vZGUpCi0gICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdE51bGxU
eXBlKG5vZGUpCi0gICAgewotICAgICAgICBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7Ci0g
ICAgfQotICAgIAotICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICB7Ci0gICAgICAg
IGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRMaXN0KQotICAgICAgICAgICAgTm9k
ZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXR1cm5U
eXBlLCB0aGlzKTsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwot
ICAgIH0KLSAgICAKLSAgICB2aXNpdExvZ2ljYWxOb3Qobm9kZSkKLSAgICB7Ci0gICAgICAgIG5v
ZGUub3BlcmFuZC52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRMb2dpY2FsRXhw
cmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS5sZWZ0LnZpc2l0KHRoaXMpOwotICAg
ICAgICBub2RlLnJpZ2h0LnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEZ1bmN0
aW9uTGlrZUJsb2NrKG5vZGUpCi0gICAgewotICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmV0dXJu
VHlwZSwgdGhpcyk7Ci0gICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRM
aXN0KQotICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0
IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCi0gICAgICAgICAgICBwYXJhbWV0ZXIudmlz
aXQodGhpcyk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKTsKLSAgICAgICAgTm9kZS52
aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdEFub255
bW91c1ZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICBOb2RlLnZpc2l0KG5vZGUudHlwZSwg
dGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0SWRlbnRpdHlFeHByZXNzaW9uKG5vZGUpCi0g
ICAgewotICAgICAgICBub2RlLnRhcmdldC52aXNpdCh0aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNp
dFZlY3RvclR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUuZWxlbWVudFR5cGUudmlzaXQo
dGhpcyk7Ci0gICAgICAgIG5vZGUubnVtRWxlbWVudHMudmlzaXQodGhpcyk7Ci0gICAgfQotCi0g
ICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLmVsZW1lbnRUeXBl
LnZpc2l0KHRoaXMpOwotICAgICAgICBub2RlLm51bVJvd3MudmlzaXQodGhpcyk7Ci0gICAgICAg
IG5vZGUubnVtQ29sdW1ucy52aXNpdCh0aGlzKTsKLSAgICB9Ci0KLSAgICB2aXNpdEZ1bmNOdW1U
aHJlYWRzQXR0cmlidXRlKG5vZGUpCi0gICAgewotICAgIH0KLQotICAgIHZpc2l0QnVpbHRJblNl
bWFudGljKG5vZGUpCi0gICAgewotICAgIH0KLQotICAgIHZpc2l0UmVzb3VyY2VTZW1hbnRpYyhu
b2RlKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXNpdFN0YWdlSW5PdXRTZW1hbnRpYyhub2RlKQot
ICAgIHsKLSAgICB9Ci0KLSAgICB2aXNpdFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYyhu
b2RlKQotICAgIHsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dMZXhpY2FsRXJyb3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9XTGV4aWNhbEVycm9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTg1ODkz
ZDI5Zi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV0xl
eGljYWxFcnJvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3Mg
V0xleGljYWxFcnJvciBleHRlbmRzIEVycm9yIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW5TdHJp
bmcsIG1lc3NhZ2UpCi0gICAgewotICAgICAgICBzdXBlcigiTGV4aWNhbCBlcnJvciBhdCAiICsg
b3JpZ2luU3RyaW5nICsgIjogIiArIG1lc3NhZ2UpOwotICAgICAgICB0aGlzLm9yaWdpblN0cmlu
ZyA9IG9yaWdpblN0cmluZzsKLSAgICAgICAgdGhpcy5zeW50YXhFcnJvck1lc3NhZ2UgPSBtZXNz
YWdlOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvV1N5bnRheEVycm9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1N5bnRh
eEVycm9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWI1NDY1ZmRiNy4uMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1N5bnRheEVycm9y
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBXU3ludGF4RXJy
b3IgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpblN0cmluZywgbWVzc2FnZSkKLSAgICB7Ci0gICAg
ICAgIHRoaXMucGF5bG9hZCA9ICJTeW50YXggZXJyb3IgYXQgIiArIG9yaWdpblN0cmluZyArICI6
ICIgKyBtZXNzYWdlOwotICAgICAgICB0aGlzLm9yaWdpblN0cmluZyA9IG9yaWdpblN0cmluZzsK
LSAgICAgICAgdGhpcy5zeW50YXhFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOwotICAgIH0KLQotICAg
IHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBheWxvYWQ7Ci0gICAgfQot
fQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XVHJhcEVycm9y
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1RyYXBFcnJvci5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJhYThkZWExOGIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dUcmFwRXJyb3IuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFdUcmFwRXJyb3IgZXh0ZW5kcyBFcnJvciB7Ci0g
ICAgY29uc3RydWN0b3Iob3JpZ2luU3RyaW5nLCBtZXNzYWdlKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoIlRyYXAgYXQgIiArIG9yaWdpblN0cmluZyArICI6ICIgKyBtZXNzYWdlKTsKLSAgICAgICAg
dGhpcy5vcmlnaW5TdHJpbmcgPSBvcmlnaW5TdHJpbmc7Ci0gICAgICAgIHRoaXMuc3ludGF4RXJy
b3JNZXNzYWdlID0gbWVzc2FnZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1dUeXBlRXJyb3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9XVHlwZUVycm9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzY2Q1
MDY2MjcyNy4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
V1R5cGVFcnJvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3Mg
V1R5cGVFcnJvciBleHRlbmRzIEVycm9yIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW5TdHJpbmcs
IG1lc3NhZ2UpCi0gICAgewotICAgICAgICBzdXBlcigiVHlwZSBlcnJvciBhdCAiICsgb3JpZ2lu
U3RyaW5nICsgIjogIiArIG1lc3NhZ2UpOwotICAgICAgICB0aGlzLm9yaWdpblN0cmluZyA9IG9y
aWdpblN0cmluZzsKLSAgICAgICAgdGhpcy50eXBlRXJyb3JNZXNzYWdlID0gbWVzc2FnZTsKLSAg
ICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1doaWxl
TG9vcC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1doaWxlTG9vcC5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGMxOWMzNGU1YTcuLjAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1doaWxlTG9vcC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgV2hpbGVMb29wIGV4dGVuZHMgTm9kZSB7Ci0g
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBjb25kaXRpb25hbCwgYm9keSkKLSAgICB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5f
Y29uZGl0aW9uYWwgPSBjb25kaXRpb25hbDsKLSAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7Ci0g
ICAgfQotCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdl
dCBjb25kaXRpb25hbCgpIHsgcmV0dXJuIHRoaXMuX2NvbmRpdGlvbmFsOyB9Ci0gICAgZ2V0IGJv
ZHkoKSB7IHJldHVybiB0aGlzLl9ib2R5OyB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAg
ICAgICByZXR1cm4gIndoaWxlICgiICsgdGhpcy5jb25kaXRpb25hbCArICIpICIgKyB0aGlzLmJv
ZHk7Ci0gICAgfQotfTsKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvV3JhcENoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hl
Y2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE0MjA5ZGE0MzIuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBXcmFwQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewotICAgIGNvbnN0cnVjdG9yKG5vZGUpCi0gICAgewotICAgICAgICBz
dXBlcigpOwotICAgICAgICB0aGlzLl9zdGFydE5vZGUgPSBub2RlOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCi0gICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdFR5
cGVSZWYobm9kZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIF9mb3VuZFVud3JhcHBlZChub2Rl
KQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gb3JpZ2luU3RyaW5nKG5vZGUpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGxldCBvcmlnaW4gPSBub2RlLm9yaWdpbjsKLSAgICAgICAgICAgIGlmICgh
b3JpZ2luKQotICAgICAgICAgICAgICAgIHJldHVybiAiPG51bGwgb3JpZ2luPiI7Ci0gICAgICAg
ICAgICByZXR1cm4gb3JpZ2luLm9yaWdpblN0cmluZzsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJGb3VuZCB1bndyYXBwZWQgIiArIG5vZGUuY29uc3RydWN0
b3IubmFtZSArICIgYXQgIiArIG9yaWdpblN0cmluZyhub2RlKSArICI6ICIgKyBub2RlICsgIlxu
V2hpbGUgdmlzaXRpbmcgIiArIHRoaXMuX3N0YXJ0Tm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBh
dCAiICsgb3JpZ2luU3RyaW5nKHRoaXMuX3N0YXJ0Tm9kZS5vcmlnaW4pICsgIjogIiArIHRoaXMu
X3N0YXJ0Tm9kZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQot
ICAgIHsKLSAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAot
ICAgIHZpc2l0VmFyaWFibGVEZWNsKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl9mb3VuZFVu
d3JhcHBlZChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCi0g
ICAgewotICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl9mb3VuZFVud3Jh
cHBlZChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gTk9URTogVGhpcyBuZWVkcyB0byBiZSBr
ZXB0IGluIHN5bmMgd2l0aCBBdXRvV3JhcHBlci4KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGQ4MzU4ZGZm
OS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXgu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iTm9kZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVmZXJlbmNlVHlwZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iVmFsdWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkV4
cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlJld3JpdGVyLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJWaXNpdG9yLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDcmVh
dGVMaXRlcmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJTZW1hbnRpYy5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSJBZGRyZXNzU3BhY2Uu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkFsbG9jYXRlQXRFbnRyeVBvaW50cy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iQW5vbnltb3VzVmFyaWFibGUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkFycmF5UmVmVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQXJyYXlU
eXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJBc3NpZ25tZW50LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJBdXRvV3JhcHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQmxv
Y2suanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJvb2xMaXRlcmFsLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJCcmVhay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRJblNl
bWFudGljLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluTWF0cml4R2V0dGVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluTWF0cml4U2V0dGVyLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJD
YWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iQ2hlY2suanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJDaGVja05hdGl2ZUZ1bmNTdGFnZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IkNoZWNrUmVjdXJzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDaGVja1JlY3Vyc2l2
ZVR5cGVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDaGVja1JldHVybnMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IkNoZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJDaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iQ2hlY2tXcmFwcGVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDaGVja2VyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29u
c3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iRG90RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRGVyZWZlcmVu
Y2VFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJFQXJyYXlSZWYuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkVCdWZmZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IkVCdWZmZXJCdWlsZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJFUHRyLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJFbnVtTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iRW51bU1lbWJlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRW51bVR5cGUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkV2YWx1YXRpb25Db21tb24uanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkV2YWx1YXRvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRXhwcmVzc2lv
bkZpbmRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJG
aW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVj
dE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IkZvbGRDb25zdGV4cHJzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJGb3JMb29wLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJGdW5jQXR0cmlidXRlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJG
dW5jRGVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jTnVtVGhyZWFkc0F0dHJpYnV0
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRnVuY1BhcmFtZXRlci5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iRnVuY3Rpb25MaWtlQmxvY2suanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IklkZW50aXR5
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSWZTdGF0ZW1lbnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkluZGV4RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Iklu
bGluZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW50TGl0
ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IkxheW91dEJ1ZmZlcnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IkxleGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJMZXhlclRva2VuLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJMaXRlcmFsVHlwZUNoZWNrZXIuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkxvZ2ljYWxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJM
b2dpY2FsTm90LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJMb29wQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ik1hdHJpeFR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1
bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3BlcmF0b3JB
bmRlckluZGV4ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQXJyYXlSZWZM
ZW5ndGguanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik9yaWdpbktpbmQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ik92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IlBhcnNlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcmVwYXJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm9ncmFt
V2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
UHRyVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVz
c2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IlJlc29sdmVOYW1lcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVz
b2x2ZU92ZXJsb2FkSW1wbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVzb2x2ZVByb3Bl
cnRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlJlc29sdmVUeXBlRGVmcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iUmVzb3VyY2VTZW1hbnRpYy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2Vy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlNwZWNp
YWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3Rh
Z2VJbk91dFNlbWFudGljLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJh
cnkuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iU3RydWN0VHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3dpdGNoQ2Fz
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3dpdGNoU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJTeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVGV4dHVyZU9w
ZXJhdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZU92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJVaW50TGl0ZXJh
bFR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlVuaWZpY2F0aW9uQ29udGV4dC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVW5yZWFjaGFibGVDb2RlQ2hlY2tlci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iVmFyaWFibGVEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVmVjdG9yVHlwZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVmlzaXRpbmdTZXQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IldMZXhpY2FsRXJyb3IuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IldTeW50YXhF
cnJvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iV1RyYXBFcnJvci5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iV1R5cGVFcnJvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iV2hp
bGVMb29wLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJXcmFwQ2hlY2tlci5qcyI+PC9zY3Jp
cHQ+Ci08c3R5bGU+Ci0jU2hhZGVyU291cmNlIHsKLSAgICBmb250LWZhbWlseTogbW9ub3NwYWNl
OwotICAgIHdpZHRoOiA3MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotfQotCi10ZCB7Ci0gICAg
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWxldCBkZWZh
dWx0U2hhZGVyU291cmNlID0gYHN0cnVjdCBWZXJ0ZXhJbnB1dCB7Ci0gICAgZmxvYXQyIHBvc2l0
aW9uOwotICAgIGZsb2F0MyBjb2xvcjsKLX0KLQotc3RydWN0IFZlcnRleE91dHB1dCB7Ci0gICAg
ZmxvYXQ0IHdzbF9Qb3NpdGlvbjsKLSAgICBmbG9hdDMgY29sb3I7Ci19Ci0KLXN0cnVjdCBGcmFn
bWVudE91dHB1dCB7Ci0gICAgZmxvYXQ0IHdzbF9Db2xvcjsKLX0KLQotdmVydGV4IFZlcnRleE91
dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQgdmVydGV4SW5wdXQpIHsKLSAgICBWZXJ0ZXhP
dXRwdXQgcmVzdWx0OwotICAgIHJlc3VsdC53c2xfUG9zaXRpb24gPSBmbG9hdDQodmVydGV4SW5w
dXQucG9zaXRpb24sIDAuLCAxLik7Ci0gICAgcmVzdWx0LmNvbG9yID0gdmVydGV4SW5wdXQuY29s
b3I7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnJhZ21lbnQgRnJhZ21lbnRPdXRwdXQgZnJh
Z21lbnRTaGFkZXIoVmVydGV4T3V0cHV0IHN0YWdlSW4pIHsKLSAgICBGcmFnbWVudE91dHB1dCBy
ZXN1bHQ7Ci0gICAgcmVzdWx0LndzbF9Db2xvciA9IGZsb2F0NChzdGFnZUluLmNvbG9yLCAxLik7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX1gOwotCi1sZXQgc2hhZGVyU291cmNlVGV4dGFyZWE7Ci1s
ZXQgY29tcGlsZUJ1dHRvbjsKLWxldCBsb2NhbFN0b3JhZ2U7Ci1sZXQgY29tcGlsZUxvZ0VsZW1l
bnQ7Ci1sZXQgdmVydGV4U2hhZGVyU2VsZWN0OwotbGV0IGZyYWdtZW50U2hhZGVyU2VsZWN0Owot
bGV0IGRhdGFUYWJsZTsKLWxldCByZXN1bHRUYWJsZTsKLQotbGV0IHByb2dyYW07Ci1sZXQgYXZh
aWxhYmxlVmVydGV4U2hhZGVyczsKLWxldCBhdmFpbGFibGVGcmFnbWVudFNoYWRlcnM7Ci1sZXQg
Y3VycmVudFZlcnRleFNoYWRlcjsKLWxldCBjdXJyZW50RnJhZ21lbnRTaGFkZXI7Ci1sZXQgYWxs
QXJndW1lbnRJbmZvczsKLWxldCBhcmd1bWVudEVQdHJzOwotbGV0IHN0YWdlSW5Bcmd1bWVudElu
ZGV4OwotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgewotICAg
IHNoYWRlclNvdXJjZVRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlNoYWRlclNv
dXJjZSIpOwotICAgIGNvbXBpbGVCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQ29t
cGlsZUJ1dHRvbiIpOwotICAgIGNvbXBpbGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBjb21waWxlUHJlc2VudFNoYWRlclNvdXJjZSk7Ci0gICAgY29tcGlsZUxvZ0VsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQ29tcGlsZUxvZyIpOwotICAgIHZlcnRleFNoYWRlclNl
bGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJWZXJ0ZXhTaGFkZXJTZWxlY3QiKTsKLSAg
ICBmcmFnbWVudFNoYWRlclNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGcmFnbWVu
dFNoYWRlclNlbGVjdCIpOwotICAgIHZlcnRleFNoYWRlclNlbGVjdC5hZGRFdmVudExpc3RlbmVy
KCJjaGFuZ2UiLCBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKTsKLSAgICBmcmFnbWVudFNoYWRlclNl
bGVjdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKTsK
LSAgICBkYXRhVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRGF0YVRhYmxlIik7Ci0g
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlJ1bkJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgcnVuU2hhZGVycyk7Ci0gICAgcmVzdWx0VGFibGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiUmVzdWx0VGFibGUiKTsKLSAgICBzaGFkZXJTb3VyY2VUZXh0YXJlYS5hZGRFdmVu
dExpc3RlbmVyKCJpbnB1dCIsIHNvdXJjZUNvZGVDaGFuZ2VkKTsKLQotICAgIGxldCBzaGFkZXJT
b3VyY2U7Ci0gICAgdHJ5IHsKLSAgICAgICAgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3Rv
cmFnZTsKLSAgICAgICAgc2hhZGVyU291cmNlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oIlNoYWRl
clNvdXJjZSIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICB9Ci0KLSAgICBpZiAoIXNoYWRlclNv
dXJjZSkKLSAgICAgICAgc2hhZGVyU291cmNlID0gZGVmYXVsdFNoYWRlclNvdXJjZTsKLSAgICBz
aGFkZXJTb3VyY2VUZXh0YXJlYS52YWx1ZSA9IHNoYWRlclNvdXJjZTsKLSAgICB3aW5kb3cuc2V0
VGltZW91dChjb21waWxlUHJlc2VudFNoYWRlclNvdXJjZSwgMCk7Ci19KTsKLQotZnVuY3Rpb24g
Y2xlYXJEYXRhVGFibGUoKQotewotICAgIHdoaWxlIChkYXRhVGFibGUubGFzdENoaWxkIGluc3Rh
bmNlb2YgSFRNTFRhYmxlUm93RWxlbWVudCkKLSAgICAgICAgZGF0YVRhYmxlLnJlbW92ZUNoaWxk
KGRhdGFUYWJsZS5sYXN0Q2hpbGQpOwotfQotCi1mdW5jdGlvbiBjbGVhclJlc3VsdFRhYmxlKCkK
LXsKLSAgICB3aGlsZSAocmVzdWx0VGFibGUubGFzdENoaWxkIGluc3RhbmNlb2YgSFRNTFRhYmxl
Um93RWxlbWVudCkKLSAgICAgICAgcmVzdWx0VGFibGUucmVtb3ZlQ2hpbGQocmVzdWx0VGFibGUu
bGFzdENoaWxkKTsKLX0KLQotZnVuY3Rpb24gY2xlYXJTaGFkZXJTZWxlY3QoKQotewotICAgIHdo
aWxlICh2ZXJ0ZXhTaGFkZXJTZWxlY3QuZmlyc3RDaGlsZCkKLSAgICAgICAgdmVydGV4U2hhZGVy
U2VsZWN0LnJlbW92ZUNoaWxkKHZlcnRleFNoYWRlclNlbGVjdC5maXJzdENoaWxkKTsKLSAgICB3
aGlsZSAoZnJhZ21lbnRTaGFkZXJTZWxlY3QuZmlyc3RDaGlsZCkKLSAgICAgICAgZnJhZ21lbnRT
aGFkZXJTZWxlY3QucmVtb3ZlQ2hpbGQoZnJhZ21lbnRTaGFkZXJTZWxlY3QuZmlyc3RDaGlsZCk7
Ci19Ci0KLWZ1bmN0aW9uIHNvdXJjZUNvZGVDaGFuZ2VkKCkgewotICAgIGNvbXBpbGVMb2dFbGVt
ZW50LnRleHRDb250ZW50ID0gIiI7Ci0gICAgY2xlYXJTaGFkZXJTZWxlY3QoKTsKLSAgICBjbGVh
ckRhdGFUYWJsZSgpOwotICAgIGNsZWFyUmVzdWx0VGFibGUoKTsKLX0KLQotZnVuY3Rpb24gcHJl
c2VudEVycm9yKG1lc3NhZ2UpIHsKLSAgICBjb21waWxlTG9nRWxlbWVudC50ZXh0Q29udGVudCA9
IG1lc3NhZ2U7Ci0gICAgY2xlYXJTaGFkZXJTZWxlY3QoKTsKLSAgICBjbGVhckRhdGFUYWJsZSgp
OwotICAgIGNsZWFyUmVzdWx0VGFibGUoKTsKLSAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7
Ci19Ci0KLWZ1bmN0aW9uIGNvbXBpbGVQcmVzZW50U2hhZGVyU291cmNlKCkgewotICAgIGNvbXBp
bGVMb2dFbGVtZW50LnRleHRDb250ZW50ID0gIkNvbXBpbGluZy4uLiI7Ci0gICAgY29tcGlsZUJ1
dHRvbi5kaXNhYmxlZCA9IHRydWU7Ci0gICAgd2luZG93LnNldFRpbWVvdXQoZG9Db21waWxlUHJl
c2VudFNoYWRlclNvdXJjZSwgMCk7Ci19Ci0KLWZ1bmN0aW9uIGRvQ29tcGlsZVByZXNlbnRTaGFk
ZXJTb3VyY2UoKSB7Ci0gICAgY29tcGlsZUJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlOwotICAgIGxl
dCBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwotICAgIGxldCByZXN1bHQ7Ci0gICAgdHJ5
IHsKLSAgICAgICAgcmVzdWx0ID0gcHJlcGFyZSgiL2ludGVybmFsL3Rlc3QiLCAwLCBzaGFkZXJT
b3VyY2VUZXh0YXJlYS52YWx1ZSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICByZXN1bHQg
PSBlOwotICAgIH0KLSAgICBsZXQgZW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7Ci0gICAgaWYg
KCEocmVzdWx0IGluc3RhbmNlb2YgUHJvZ3JhbSkpIHsKLSAgICAgICAgY29tcGlsZUxvZ0VsZW1l
bnQudGV4dENvbnRlbnQgPSByZXN1bHQudG9TdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0gZWxzZQotICAgICAgICBjb21waWxlTG9nRWxlbWVudC50ZXh0Q29udGVudCA9ICJDb21waWxl
IHN1Y2Nlc3NmdWwhIjsKLQotICAgIHRyeSB7Ci0gICAgICAgIHNoYWRlclNvdXJjZSA9IGxvY2Fs
U3RvcmFnZS5zZXRJdGVtKCJTaGFkZXJTb3VyY2UiLCBzaGFkZXJTb3VyY2VUZXh0YXJlYS52YWx1
ZSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgIH0KLQotICAgIHByb2dyYW0gPSByZXN1bHQ7Ci0g
ICAgYXZhaWxhYmxlVmVydGV4U2hhZGVycyA9IFtdOwotICAgIGF2YWlsYWJsZUZyYWdtZW50U2hh
ZGVycyA9IFtdOwotICAgIGZvciAobGV0IGZ1bmN0aW9uTmFtZXMgb2YgcHJvZ3JhbS5mdW5jdGlv
bnMudmFsdWVzKCkpIHsKLSAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jdGlvbk5hbWVzKSB7
Ci0gICAgICAgICAgICBpZiAoZnVuYy5zaGFkZXJUeXBlID09ICJ2ZXJ0ZXgiKQotICAgICAgICAg
ICAgICAgIGF2YWlsYWJsZVZlcnRleFNoYWRlcnMucHVzaChmdW5jKTsKLSAgICAgICAgICAgIGlm
IChmdW5jLnNoYWRlclR5cGUgPT0gImZyYWdtZW50IikKLSAgICAgICAgICAgICAgICBhdmFpbGFi
bGVGcmFnbWVudFNoYWRlcnMucHVzaChmdW5jKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBjbGVh
clNoYWRlclNlbGVjdCgpOwotICAgIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbih0ZXh0Q29udGVudCkg
ewotICAgICAgICBsZXQgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7
Ci0gICAgICAgIG9wdGlvbi50ZXh0Q29udGVudCA9IHRleHRDb250ZW50OwotICAgICAgICByZXR1
cm4gb3B0aW9uOwotICAgIH0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF2YWlsYWJsZVZlcnRl
eFNoYWRlcnMubGVuZ3RoOyArK2kpCi0gICAgICAgIHZlcnRleFNoYWRlclNlbGVjdC5hcHBlbmRD
aGlsZChjcmVhdGVPcHRpb24oYXZhaWxhYmxlVmVydGV4U2hhZGVyc1tpXS5uYW1lKSk7Ci0gICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBhdmFpbGFibGVGcmFnbWVudFNoYWRlcnMubGVuZ3RoOyArK2kp
Ci0gICAgICAgIGZyYWdtZW50U2hhZGVyU2VsZWN0LmFwcGVuZENoaWxkKGNyZWF0ZU9wdGlvbihh
dmFpbGFibGVGcmFnbWVudFNoYWRlcnNbaV0ubmFtZSkpOwotICAgIHNlbGVjdGVkU2hhZGVyc0No
YW5nZWQodHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVRhYmxlUm93KG5hbWUsIGVsZW1lbnRD
YWxsYmFjaykgewotICAgIGxldCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwot
ICAgIGxldCB2YXJpYWJsZUNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwotICAg
IGxldCB2YWx1ZUNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwotICAgIHZhcmlh
YmxlQ2VsbC50ZXh0Q29udGVudCA9IG5hbWU7Ci0gICAgdmFsdWVDZWxsLmFwcGVuZENoaWxkKGVs
ZW1lbnRDYWxsYmFjaygpKTsKLSAgICByb3cuYXBwZW5kQ2hpbGQodmFyaWFibGVDZWxsKTsKLSAg
ICByb3cuYXBwZW5kQ2hpbGQodmFsdWVDZWxsKTsKLSAgICByZXR1cm4gcm93OwotICAgIGRhdGFU
YWJsZS5hcHBlbmRDaGlsZChyb3cpOwotfQotCi1mdW5jdGlvbiBsaW5rRXJyb3IobWVzc2FnZSkg
ewotICAgIGNvbXBpbGVMb2dFbGVtZW50LnRleHRDb250ZW50ID0gbWVzc2FnZSArICIgRml4IHRo
aXMgYnkgc2VsZWN0aW5nIGEgZGlmZmVyZW50IHBhaXIgb2Ygc2hhZGVycyBiZWxvdy4iOwotICAg
IGNsZWFyRGF0YVRhYmxlKCk7Ci0gICAgY2xlYXJSZXN1bHRUYWJsZSgpOwotfQotCi1mdW5jdGlv
biBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZyb21Db21waWxhdGlvbiA9IGZhbHNlKSB7Ci0gICAg
aWYgKCFmcm9tQ29tcGlsYXRpb24pCi0gICAgICAgIGNvbXBpbGVMb2dFbGVtZW50LnRleHRDb250
ZW50ID0gIiI7Ci0gICAgY3VycmVudFZlcnRleFNoYWRlciA9IGF2YWlsYWJsZVZlcnRleFNoYWRl
cnNbdmVydGV4U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwotICAgIGN1cnJlbnRGcmFnbWVu
dFNoYWRlciA9IGF2YWlsYWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVudFNoYWRlclNlbGVjdC5z
ZWxlY3RlZEluZGV4XTsKLQotICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBjdXJyZW50VmVy
dGV4U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoY3VycmVudFZlcnRleFNoYWRlcikpOwotCi0gICAg
YWxsQXJndW1lbnRJbmZvcyA9IFtdOwotICAgIGFyZ3VtZW50RVB0cnMgPSBbXTsKLSAgICBmb3Ig
KGxldCBwYXJhbWV0ZXIgb2YgY3VycmVudFZlcnRleFNoYWRlci5wYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgIGxldCBlUHRyID0gbmV3IEVQdHIobmV3IEVCdWZmZXIocGFyYW1ldGVyLnR5cGUuc2l6ZSks
IDApOwotICAgICAgICBhcmd1bWVudEVQdHJzLnB1c2goe2VQdHI6IGVQdHIsIHNpemU6IHBhcmFt
ZXRlci50eXBlLnNpemV9KTsKLSAgICAgICAgbGV0IGdhdGhlcmVyID0gbmV3IEZsYXR0ZW5lZFN0
cnVjdE9mZnNldEdhdGhlcmVyKHBhcmFtZXRlci5uYW1lKTsKLSAgICAgICAgcGFyYW1ldGVyLnZp
c2l0KGdhdGhlcmVyKTsKLSAgICAgICAgZm9yIChsZXQgYXJndW1lbnRJbmZvIG9mIGdhdGhlcmVy
LnJlc3VsdCkgewotICAgICAgICAgICAgYXJndW1lbnRJbmZvLmVQdHIgPSBlUHRyOwotICAgICAg
ICAgICAgYWxsQXJndW1lbnRJbmZvcy5wdXNoKGFyZ3VtZW50SW5mbyk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgY2xlYXJEYXRhVGFibGUoKTsKLSAgICBjbGVhclJlc3VsdFRhYmxlKCk7Ci0gICAg
Zm9yIChsZXQgaW5mbyBvZiBhbGxBcmd1bWVudEluZm9zKSB7Ci0gICAgICAgIGRhdGFUYWJsZS5h
cHBlbmRDaGlsZChjcmVhdGVUYWJsZVJvdyhpbmZvLm5hbWUsIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAg
ICAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBjbGVhclJlc3VsdFRhYmxl
KTsKLSAgICAgICAgICAgICBpbnB1dC50eXBlID0gInRleHQiOwotICAgICAgICAgICAgIHJldHVy
biBpbnB1dDsKLSAgICAgICAgfSkpOwotICAgIH0KLQotICAgIGxldCBmb3VuZCA9IGZhbHNlOwot
ICAgIGxldCBpbmRleCA9IDA7Ci0gICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIGN1cnJlbnRGcmFn
bWVudFNoYWRlci5wYXJhbWV0ZXJzKSB7Ci0gICAgICAgIGlmIChwYXJhbWV0ZXIubmFtZSA9PSAi
c3RhZ2VJbiIpIHsKLSAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmICgh
cGFyYW1ldGVyLnR5cGUuZXF1YWxzKGN1cnJlbnRWZXJ0ZXhTaGFkZXIucmV0dXJuVHlwZSkpCi0g
ICAgICAgICAgICAgICAgbGlua0Vycm9yKCJWZXJ0ZXggc2hhZGVyJ3MgcmV0dXJuIHR5cGUgbmVl
ZHMgdG8gbWF0Y2ggdGhlIHN0YWdlSW4gcGFyYW1ldGVyIG9mIHRoZSBmcmFnbWVudCBzaGFkZXIh
Iik7Ci0gICAgICAgICAgICBzdGFnZUluQXJndW1lbnRJbmRleCA9IGluZGV4OwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgKytpbmRleDsKLSAgICB9Ci0gICAgaWYgKCFm
b3VuZCkKLSAgICAgICAgbGlua0Vycm9yKCJDb3VsZCBub3QgZmluZCB0aGUgc3RhZ2VJbiBhcmd1
bWVudCBpbiB0aGUgZnJhZ21lbnQgc2hhZGVyISIpOwotICAgIGlmIChjdXJyZW50RnJhZ21lbnRT
aGFkZXIucGFyYW1ldGVycy5sZW5ndGggPiAxKQotICAgICAgICBsaW5rRXJyb3IoIkZyYWdtZW50
IHNoYWRlcnMgY3VycmVudGx5IGRvbid0IGtub3cgaG93IHRvIGhhdmUgYW55IG90aGVyIGFyZ3Vt
ZW50cyBvdGhlciB0aGFuIHN0YWdlSW4uIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blNoYWRlcnMoKSB7
Ci0gICAgbGV0IGZ1bmMgPSBjdXJyZW50VmVydGV4U2hhZGVyOwotCi0gICAgbGV0IGluZGV4ID0g
MDsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFUYWJsZS5jaGlsZHJlbi5sZW5ndGg7ICsr
aSkgewotICAgICAgICBsZXQgY2hpbGRFbGVtZW50ID0gZGF0YVRhYmxlLmNoaWxkcmVuW2ldOwot
ICAgICAgICBpZiAoIShjaGlsZEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MVGFibGVSb3dFbGVtZW50
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBsZXQgdmFsdWUgPSBjaGlsZEVsZW1l
bnQuY2hpbGRyZW5bMV0uZmlyc3RDaGlsZC52YWx1ZTsKLSAgICAgICAgbGV0IGFyZ3VtZW50SW5m
byA9IGFsbEFyZ3VtZW50SW5mb3NbaW5kZXhdOwotICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50
SW5mby50eXBlOwotICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGFsbCB0aGUgb3Ro
ZXIgc2NhbGFyIHR5cGVzCi0gICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlICJm
bG9hdCI6Ci0gICAgICAgICAgICB2YWx1ZSA9IE1hdGguZnJvdW5kKHBhcnNlRmxvYXQodmFsdWUp
KTsKLSAgICAgICAgICAgIGFyZ3VtZW50SW5mby5lUHRyLnNldChhcmd1bWVudEluZm8ub2Zmc2V0
LCB2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiaW50IjoKLSAgICAg
ICAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUpIHwgMDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlICJ1aW50IjoKLSAgICAgICAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUp
ID4+PiAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICBwcmVzZW50RXJyb3IoIkkgZG9uJ3Qga25vdyBob3cgdG8gcGFyc2UgdmFsdWVzIG9mIHR5cGUg
IiArIHR5cGUpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc05hTih2YWx1ZSkpCi0gICAgICAg
ICAgICBwcmVzZW50RXJyb3IoIkNvdWxkIG5vdCBwYXJzZSBpbnB1dCBkYXRhICIgKyBpbmRleCk7
Ci0gICAgICAgIGFyZ3VtZW50SW5mby5lUHRyLnNldChhcmd1bWVudEluZm8ub2Zmc2V0LCB2YWx1
ZSk7Ci0gICAgICAgICsraW5kZXg7Ci0gICAgfQotCi0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBm
dW5jLnBhcmFtZXRlcnMubGVuZ3RoOyArK2kpCi0gICAgICAgIGZ1bmMucGFyYW1ldGVyc1tpXS5l
UHRyLmNvcHlGcm9tKGFyZ3VtZW50RVB0cnNbaV0uZVB0ciwgYXJndW1lbnRFUHRyc1tpXS5zaXpl
KTsKLSAgICBsZXQgcmVzdWx0ID0gbmV3IEV2YWx1YXRvcihwcm9ncmFtKS5ydW5GdW5jKGZ1bmMp
OwotCi0gICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGN1cnJlbnRGcmFnbWVudFNoYWRlciwg
bmV3IFZpc2l0aW5nU2V0KGN1cnJlbnRGcmFnbWVudFNoYWRlcikpOwotICAgIGZ1bmMgPSBjdXJy
ZW50RnJhZ21lbnRTaGFkZXI7Ci0KLSAgICBmdW5jLnBhcmFtZXRlcnNbc3RhZ2VJbkFyZ3VtZW50
SW5kZXhdLmVQdHIuY29weUZyb20ocmVzdWx0LCBmdW5jLnBhcmFtZXRlcnNbc3RhZ2VJbkFyZ3Vt
ZW50SW5kZXhdLnR5cGUuc2l6ZSk7Ci0KLSAgICByZXN1bHQgPSBuZXcgRXZhbHVhdG9yKHByb2dy
YW0pLnJ1bkZ1bmMoZnVuYyk7Ci0KLSAgICBjbGVhclJlc3VsdFRhYmxlKCk7Ci0gICAgbGV0IGdh
dGhlcmVyID0gbmV3IEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyKGZ1bmMucmV0dXJuVHlw
ZS50eXBlLm5hbWUpOwotICAgIGZ1bmMucmV0dXJuVHlwZS50eXBlLnZpc2l0KGdhdGhlcmVyKTsK
LSAgICBmb3IgKGxldCBpbmZvIG9mIGdhdGhlcmVyLnJlc3VsdCkgewotICAgICAgICByZXN1bHRU
YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVUYWJsZVJvdyhpbmZvLm5hbWUsIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJlc3VsdC5nZXQoaW5m
by5vZmZzZXQpKTsKLSAgICAgICAgfSkpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08aDE+V2ViR1BVIFNoYWRpbmcgTGFuZ3VhZ2U8L2gxPgotPG9sPgotPGxpPgotICAg
IFdyaXRlIGEgc2hhZGVyIQotICAgIDxkaXY+PHRleHRhcmVhIGlkPSJTaGFkZXJTb3VyY2UiPjwv
dGV4dGFyZWE+PC9kaXY+Ci0gICAgPGRpdiBpZD0iQ29tcGlsZUxvZyI+PC9kaXY+Ci0gICAgPGRp
dj48aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iQ29tcGlsZSIgaWQ9IkNvbXBpbGVCdXR0b24i
PjwvZGl2PgotPC9saT4KLTxsaT4KLSAgICBTZWxlY3QgeW91ciBzaGFkZXJzCi0gICAgPGRpdj48
bGFiZWw+VmVydGV4IFNoYWRlciA8c2VsZWN0IGlkPSJWZXJ0ZXhTaGFkZXJTZWxlY3QiPjwvc2Vs
ZWN0PjwvbGFiZWw+PC9kaXY+Ci0gICAgPGRpdj48bGFiZWw+RnJhZ21lbnQgU2hhZGVyIDxzZWxl
Y3QgaWQ9IkZyYWdtZW50U2hhZGVyU2VsZWN0Ij48L3NlbGVjdD48L2xhYmVsPjwvZGl2PgotPC9s
aT4KLTxsaT4KLSAgICBTcGVjaWZ5IGlucHV0IGRhdGEKLSAgICA8dGFibGUgaWQ9IkRhdGFUYWJs
ZSI+Ci0gICAgICAgIDx0aGVhZD4KLSAgICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgICA8
dGQ+VmFyaWFibGU8L3RkPgotICAgICAgICAgICAgICAgIDx0ZD5WYWx1ZTwvdGQ+Ci0gICAgICAg
ICAgICA8L3RyPgotICAgICAgICA8L3RoZWFkPgotICAgIDwvdGFibGU+Ci08L2xpPgotPGxpPgot
ICAgIDxkaXY+PGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlJ1biIgaWQ9IlJ1bkJ1dHRvbiI+
PC9kaXY+Ci0gICAgPHRhYmxlIGlkPSJSZXN1bHRUYWJsZSI+Ci0gICAgICAgIDx0aGVhZD4KLSAg
ICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgICA8dGQ+VmFyaWFibGU8L3RkPgotICAgICAg
ICAgICAgICAgIDx0ZD5WYWx1ZTwvdGQ+Ci0gICAgICAgICAgICA8L3RyPgotICAgICAgICA8L3Ro
ZWFkPgotICAgIDwvdGFibGU+Ci08L2xpPgotPC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL3NwaXJ2LmNvcmUuZ3JhbW1hci5q
c29uIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvc3BpcnYuY29yZS5ncmFtbWFyLmpz
b24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyYWJhNjY4N2ZkLi4wMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9zcGlydi5jb3JlLmdyYW1tYXIu
anNvbgorKysgL2Rldi9udWxsCkBAIC0xLDU4NTAgKzAsMCBAQAotewotICAiY29weXJpZ2h0IiA6
IFsKLSAgICAiQ29weXJpZ2h0IChjKSAyMDE0LTIwMTYgVGhlIEtocm9ub3MgR3JvdXAgSW5jLiIs
Ci0gICAgIiIsCi0gICAgIlBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkiLAotICAgICJvZiB0aGlzIHNvZnR3
YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIk1hdGVyaWFs
c1wiKSwiLAotICAgICJ0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiIsCi0gICAgInRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCIs
Ci0gICAgImFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8gcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUiLAotICAgICJNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IiwKLSAgICAiIiwKLSAg
ICAiVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQgaW4iLAotICAgICJhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuIiwKLSAgICAiIiwKLSAgICAiTU9ESUZJQ0FUSU9OUyBU
TyBUSElTIEZJTEUgTUFZIE1FQU4gSVQgTk8gTE9OR0VSIEFDQ1VSQVRFTFkgUkVGTEVDVFMgS0hS
T05PUyIsCi0gICAgIlNUQU5EQVJEUy4gVEhFIFVOTU9ESUZJRUQsIE5PUk1BVElWRSBWRVJTSU9O
UyBPRiBLSFJPTk9TIFNQRUNJRklDQVRJT05TIEFORCIsCi0gICAgIkhFQURFUiBJTkZPUk1BVElP
TiBBUkUgTE9DQVRFRCBBVCBodHRwczovL3d3dy5raHJvbm9zLm9yZy9yZWdpc3RyeS8gIiwKLSAg
ICAiIiwKLSAgICAiVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIiwKLSAgICAiT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks
IiwKLSAgICAiRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwiLAotICAgICJUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiIsCi0gICAg
IkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIiwKLSAgICAiRlJPTSxPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRSBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyIsCi0gICAgIklOIFRI
RSBNQVRFUklBTFMuIgotICBdLAotICAibWFnaWNfbnVtYmVyIiA6ICIweDA3MjMwMjAzIiwKLSAg
Im1ham9yX3ZlcnNpb24iIDogMSwKLSAgIm1pbm9yX3ZlcnNpb24iIDogMiwKLSAgInJldmlzaW9u
IiA6IDIsCi0gICJpbnN0cnVjdGlvbnMiIDogWwotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9w
Tm9wIiwKLSAgICAgICJvcGNvZGUiIDogMAotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIg
OiAiT3BVbmRlZiIsCi0gICAgICAib3Bjb2RlIiA6IDEsCi0gICAgICAib3BlcmFuZHMiIDogWwot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cFNvdXJjZUNvbnRpbnVlZCIsCi0gICAgICAib3Bjb2RlIiA6IDIsCi0gICAgICAib3BlcmFuZHMi
IDogWwotICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsU3RyaW5nIiwgIm5hbWUiIDogIidDb250
aW51ZWQgU291cmNlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIg
OiAiT3BTb3VyY2UiLAotICAgICAgIm9wY29kZSIgOiAzLAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiU291cmNlTGFuZ3VhZ2UiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIkxpdGVyYWxJbnRlZ2VyIiwgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ1ZlcnNp
b24nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICJxdWFudGlmaWVy
IiA6ICI/IiwgIm5hbWUiIDogIidGaWxlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJh
bFN0cmluZyIsICAicXVhbnRpZmllciIgOiAiPyIsICJuYW1lIiA6ICInU291cmNlJyIgfQotICAg
ICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BTb3VyY2VFeHRlbnNpb24i
LAotICAgICAgIm9wY29kZSIgOiA0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAi
a2luZCIgOiAiTGl0ZXJhbFN0cmluZyIsICJuYW1lIiA6ICInRXh0ZW5zaW9uJyIgfQotICAgICAg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BOYW1lIiwKLSAgICAgICJvcGNv
ZGUiIDogNSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICAibmFtZSIgOiAiJ1RhcmdldCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkxp
dGVyYWxTdHJpbmciLCAibmFtZSIgOiAiJ05hbWUnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAib3BuYW1lIiA6ICJPcE1lbWJlck5hbWUiLAotICAgICAgIm9wY29kZSIgOiA2LAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
ICAibmFtZSIgOiAiJ1R5cGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdl
ciIsICJuYW1lIiA6ICInTWVtYmVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbFN0
cmluZyIsICAibmFtZSIgOiAiJ05hbWUnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcFN0cmluZyIsCi0gICAgICAib3Bjb2RlIiA6IDcsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiTGl0ZXJhbFN0cmluZyIsICJuYW1lIiA6ICInU3RyaW5nJyIgfQotICAgICAgXQot
ICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BMaW5lIiwKLSAgICAgICJvcGNvZGUi
IDogOCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICAgIm5hbWUiIDogIidGaWxlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJh
bEludGVnZXIiLCAibmFtZSIgOiAiJ0xpbmUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJMaXRl
cmFsSW50ZWdlciIsICJuYW1lIiA6ICInQ29sdW1uJyIgfQotICAgICAgXQotICAgIH0sCi0gICAg
ewotICAgICAgIm9wbmFtZSIgOiAiT3BFeHRlbnNpb24iLAotICAgICAgIm9wY29kZSIgOiAxMCwK
LSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxTdHJpbmci
LCAibmFtZSIgOiAiJ05hbWUnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3Bu
YW1lIiA6ICJPcEV4dEluc3RJbXBvcnQiLAotICAgICAgIm9wY29kZSIgOiAxMSwKLSAgICAgICJv
cGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJMaXRlcmFsU3RyaW5nIiwgIm5hbWUiIDogIidOYW1lJyIgfQotICAgICAgXQot
ICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BFeHRJbnN0IiwKLSAgICAgICJvcGNv
ZGUiIDogMTIsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJu
YW1lIiA6ICInU2V0JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEV4dEluc3RJbnRl
Z2VyIiwgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0luc3RydWN0aW9uJyIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgInF1YW50aWZpZXIiIDog
IioiLCAibmFtZSIgOiAiJ09wZXJhbmQgMScsICtcbidPcGVyYW5kIDInLCArXG4uLi4iIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wTWVtb3J5TW9kZWwiLAot
ICAgICAgIm9wY29kZSIgOiAxNCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIkFkZHJlc3NpbmdNb2RlbCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTWVtb3J5TW9k
ZWwiIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRW50cnlQ
b2ludCIsCi0gICAgICAib3Bjb2RlIiA6IDE1LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAg
ICAgeyAia2luZCIgOiAiRXhlY3V0aW9uTW9kZWwiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0VudHJ5IFBvaW50
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbFN0cmluZyIsICAgICAgICAgICAgICAg
ICAgICAgICJuYW1lIiA6ICInTmFtZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICAgInF1YW50aWZpZXIiIDogIioiLCAibmFtZSIgOiAiJ0ludGVyZmFjZSciIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRXhlY3V0aW9uTW9kZSIs
Ci0gICAgICAib3Bjb2RlIiA6IDE2LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgICJuYW1lIiA6ICInRW50cnkgUG9pbnQnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJFeGVjdXRpb25Nb2RlIiwgIm5hbWUiIDogIidNb2RlJyIgfQotICAg
ICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDYXBhYmlsaXR5IiwKLSAg
ICAgICJvcGNvZGUiIDogMTcsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5k
IiA6ICJDYXBhYmlsaXR5IiwgIm5hbWUiIDogIidDYXBhYmlsaXR5JyIgfQotICAgICAgXQotICAg
IH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BUeXBlVm9pZCIsCi0gICAgICAib3Bjb2Rl
IiA6IDE5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZUJv
b2wiLAotICAgICAgIm9wY29kZSIgOiAyMCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcFR5cGVJbnQiLAotICAgICAgIm9wY29kZSIgOiAyMSwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInV2lkdGgnIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInU2lnbmVkbmVzcyciIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZUZsb2F0IiwKLSAg
ICAgICJvcGNvZGUiIDogMjIsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAi
bmFtZSIgOiAiJ1dpZHRoJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BUeXBlVmVjdG9yIiwKLSAgICAgICJvcGNvZGUiIDogMjMsCi0gICAgICAib3BlcmFu
ZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ0NvbXBvbmVudCBUeXBlJyIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ0NvbXBvbmVudCBD
b3VudCciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlw
ZU1hdHJpeCIsCi0gICAgICAib3Bjb2RlIiA6IDI0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICAgIm5hbWUiIDogIidDb2x1bW4gVHlwZSciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIkxpdGVyYWxJbnRlZ2VyIiwgIm5hbWUiIDogIidDb2x1bW4gQ291bnQnIiB9Ci0gICAgICBd
LAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJNYXRyaXgiIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wVHlwZUltYWdlIiwKLSAgICAgICJvcGNvZGUiIDogMjUsCi0gICAg
ICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFt
ZSIgOiAiJ1NhbXBsZWQgVHlwZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkRpbSIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAgICAgICAgICAgICAgICAgICAgICAi
bmFtZSIgOiAiJ0RlcHRoJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIi
LCAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0FycmF5ZWQnIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6
ICInTVMnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICAgICAgICAg
ICAgICAgICAgICAgICJuYW1lIiA6ICInU2FtcGxlZCciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IkltYWdlRm9ybWF0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJBY2Nlc3NRdWFsaWZpZXIiLCAi
cXVhbnRpZmllciIgOiAiPyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BUeXBlU2FtcGxlciIsCi0gICAgICAib3Bjb2RlIiA6IDI2LAotICAgICAgIm9wZXJh
bmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0KLSAgICAgIF0KLSAgICB9
LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZVNhbXBsZWRJbWFnZSIsCi0gICAgICAi
b3Bjb2RlIiA6IDI3LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgIm5hbWUiIDogIidJ
bWFnZSBUeXBlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BUeXBlQXJyYXkiLAotICAgICAgIm9wY29kZSIgOiAyOCwKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICJuYW1lIiA6ICInRWxlbWVudCBUeXBlJyIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZWYiLCAgICAibmFtZSIgOiAiJ0xlbmd0aCciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZVJ1bnRpbWVBcnJheSIsCi0gICAgICAib3Bjb2Rl
IiA6IDI5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgIm5hbWUiIDogIidFbGVtZW50
IFR5cGUnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0K
LSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZVN0cnVjdCIsCi0gICAgICAi
b3Bjb2RlIiA6IDMwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgInF1YW50aWZpZXIi
IDogIioiLCAibmFtZSIgOiAiJ01lbWJlciAwIHR5cGUnLCArXG4nbWVtYmVyIDEgdHlwZScsICtc
bi4uLiIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BUeXBl
T3BhcXVlIiwKLSAgICAgICJvcGNvZGUiIDogMzEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJh
bFN0cmluZyIsICJuYW1lIiA6ICJUaGUgbmFtZSBvZiB0aGUgb3BhcXVlIHR5cGUuIiB9Ci0gICAg
ICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wVHlwZVBvaW50ZXIiLAotICAgICAgIm9wY29kZSIgOiAzMiwK
LSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJTdG9yYWdlQ2xhc3MiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInVHlwZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZUZ1bmN0aW9uIiwKLSAgICAgICJvcGNvZGUiIDog
MzMsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICJu
YW1lIiA6ICInUmV0dXJuIFR5cGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICJxdWFudGlmaWVyIiA6ICIqIiwgIm5hbWUiIDogIidQYXJhbWV0ZXIgMCBUeXBlJywgK1xuJ1Bh
cmFtZXRlciAxIFR5cGUnLCArXG4uLi4iIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICJvcG5hbWUiIDogIk9wVHlwZUV2ZW50IiwKLSAgICAgICJvcGNvZGUiIDogMzQsCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfQotICAgICAgXSwK
LSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcFR5cGVEZXZpY2VFdmVudCIsCi0gICAgICAib3Bjb2RlIiA6IDM1LAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0KLSAg
ICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkRldmljZUVucXVldWUiIF0KLSAgICB9
LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZVJlc2VydmVJZCIsCi0gICAgICAib3Bj
b2RlIiA6IDM2LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHQiIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFR5cGVRdWV1ZSIsCi0gICAgICAib3Bj
b2RlIiA6IDM3LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHQiIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkRldmljZUVucXVl
dWUiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHlwZVBpcGUiLAotICAg
ICAgIm9wY29kZSIgOiAzOCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJBY2Nlc3NRdWFsaWZpZXIiLCAi
bmFtZSIgOiAiJ1F1YWxpZmllciciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIlBpcGVzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFR5cGVGb3J3
YXJkUG9pbnRlciIsCi0gICAgICAib3Bjb2RlIiA6IDM5LAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQb2ludGVyIFR5
cGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJTdG9yYWdlQ2xhc3MiIH0KLSAgICAgIF0sCi0g
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkFkZHJlc3NlcyIgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BDb25zdGFudFRydWUiLAotICAgICAgIm9wY29kZSIgOiA0MSwKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wQ29uc3RhbnRGYWxzZSIsCi0gICAgICAib3Bjb2RlIiA6IDQy
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBl
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfQotICAgICAgXQotICAgIH0sCi0g
ICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb25zdGFudCIsCi0gICAgICAib3Bjb2RlIiA6IDQz
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBl
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiTGl0ZXJhbENvbnRleHREZXBlbmRlbnROdW1iZXIiLCAibmFtZSIgOiAiJ1ZhbHVlJyIgfQot
ICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb25zdGFudENvbXBv
c2l0ZSIsCi0gICAgICAib3Bjb2RlIiA6IDQ0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgInF1YW50aWZpZXIi
IDogIioiLCAibmFtZSIgOiAiJ0NvbnN0aXR1ZW50cyciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wQ29uc3RhbnRTYW1wbGVyIiwKLSAgICAgICJvcGNvZGUi
IDogNDUsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3Vs
dFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJTYW1wbGVyQWRkcmVzc2luZ01vZGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkxp
dGVyYWxJbnRlZ2VyIiwgICAgICAgICJuYW1lIiA6ICInUGFyYW0nIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJTYW1wbGVyRmlsdGVyTW9kZSIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiTGl0ZXJhbFNhbXBsZXIiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUi
IDogIk9wQ29uc3RhbnROdWxsIiwKLSAgICAgICJvcGNvZGUiIDogNDYsCi0gICAgICAib3BlcmFu
ZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVzdWx0IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3Bu
YW1lIiA6ICJPcFNwZWNDb25zdGFudFRydWUiLAotICAgICAgIm9wY29kZSIgOiA0OCwKLSAgICAg
ICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wU3BlY0NvbnN0YW50RmFsc2UiLAotICAgICAgIm9wY29kZSIgOiA0
OSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0KLSAgICAgIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU3BlY0NvbnN0YW50IiwKLSAgICAgICJvcGNvZGUi
IDogNTAsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3Vs
dFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJMaXRlcmFsQ29udGV4dERlcGVuZGVudE51bWJlciIsICJuYW1lIiA6ICInVmFsdWUn
IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNwZWNDb25z
dGFudENvbXBvc2l0ZSIsCi0gICAgICAib3Bjb2RlIiA6IDUxLAotICAgICAgIm9wZXJhbmRzIiA6
IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgInF1
YW50aWZpZXIiIDogIioiLCAibmFtZSIgOiAiJ0NvbnN0aXR1ZW50cyciIH0KLSAgICAgIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU3BlY0NvbnN0YW50T3AiLAotICAgICAg
Im9wY29kZSIgOiA1MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIkxpdGVyYWxTcGVjQ29uc3RhbnRPcEludGVnZXIiLCAibmFtZSIgOiAi
J09wY29kZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9w
RnVuY3Rpb24iLAotICAgICAgIm9wY29kZSIgOiA1NCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkZ1bmN0aW9uQ29udHJvbCIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgIm5hbWUiIDogIidGdW5jdGlvbiBU
eXBlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BGdW5j
dGlvblBhcmFtZXRlciIsCi0gICAgICAib3Bjb2RlIiA6IDU1LAotICAgICAgIm9wZXJhbmRzIiA6
IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdCIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIg
OiAiT3BGdW5jdGlvbkVuZCIsCi0gICAgICAib3Bjb2RlIiA6IDU2Ci0gICAgfSwKLSAgICB7Ci0g
ICAgICAib3BuYW1lIiA6ICJPcEZ1bmN0aW9uQ2FsbCIsCi0gICAgICAib3Bjb2RlIiA6IDU3LAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0Z1bmN0aW9uJyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgInF1YW50aWZpZXIiIDogIioi
LCAibmFtZSIgOiAiJ0FyZ3VtZW50IDAnLCArXG4nQXJndW1lbnQgMScsICtcbi4uLiIgfQotICAg
ICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BWYXJpYWJsZSIsCi0gICAg
ICAib3Bjb2RlIiA6IDU5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiU3RvcmFnZUNsYXNzIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAicXVhbnRpZmllciIgOiAiPyIsICJuYW1lIiA6ICInSW5pdGlhbGl6ZXIn
IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdlVGV4
ZWxQb2ludGVyIiwKLSAgICAgICJvcGNvZGUiIDogNjAsCi0gICAgICAib3BlcmFuZHMiIDogWwot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIg
OiAiJ0ltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidDb29yZGluYXRlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidTYW1wbGUnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3Bu
YW1lIiA6ICJPcExvYWQiLAotICAgICAgIm9wY29kZSIgOiA2MSwKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiTWVtb3J5QWNjZXNzIiwgInF1YW50aWZpZXIiIDogIj8iIH0KLSAgICAgIF0KLSAgICB9
LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU3RvcmUiLAotICAgICAgIm9wY29kZSIgOiA2
MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAi
J09iamVjdCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIk1lbW9yeUFjY2VzcyIsICJxdWFudGlm
aWVyIiA6ICI/IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cENvcHlNZW1vcnkiLAotICAgICAgIm9wY29kZSIgOiA2MywKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5hbWUiIDogIidUYXJnZXQnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInU291cmNlJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiTWVtb3J5QWNjZXNzIiwgInF1YW50aWZpZXIiIDogIj8iIH0KLSAgICAgIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQ29weU1lbW9yeVNpemVkIiwKLSAgICAg
ICJvcGNvZGUiIDogNjQsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInVGFyZ2V0JyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibmFtZSIgOiAiJ1NvdXJjZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidTaXplJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiTWVtb3J5QWNjZXNzIiwgInF1YW50aWZpZXIiIDogIj8iIH0KLSAgICAgIF0sCi0g
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkFkZHJlc3NlcyIgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BBY2Nlc3NDaGFpbiIsCi0gICAgICAib3Bjb2RlIiA6IDY1LAotICAg
ICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0Jhc2UnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAicXVhbnRpZmllciIgOiAiKiIsICJuYW1l
IiA6ICInSW5kZXhlcyciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUi
IDogIk9wSW5Cb3VuZHNBY2Nlc3NDaGFpbiIsCi0gICAgICAib3Bjb2RlIiA6IDY2LAotICAgICAg
Im9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0Jhc2UnIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAicXVhbnRpZmllciIgOiAiKiIsICJuYW1lIiA6
ICInSW5kZXhlcyciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDog
Ik9wUHRyQWNjZXNzQ2hhaW4iLAotICAgICAgIm9wY29kZSIgOiA2NywKLSAgICAgICJvcGVyYW5k
cyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidCYXNlJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0VsZW1l
bnQnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAicXVhbnRpZmllciIg
OiAiKiIsICJuYW1lIiA6ICInSW5kZXhlcyciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsKLSAgICAgICAgIkFkZHJlc3NlcyIsCi0gICAgICAgICJWYXJpYWJsZVBvaW50ZXJz
IiwKLSAgICAgICAgIlZhcmlhYmxlUG9pbnRlcnNTdG9yYWdlQnVmZmVyIgotICAgICAgXQotICAg
IH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BBcnJheUxlbmd0aCIsCi0gICAgICAib3Bj
b2RlIiA6IDY4LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ1N0cnVjdHVyZSciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwgIm5hbWUiIDogIidBcnJheSBtZW1i
ZXInIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wR2VuZXJpY1B0ck1lbVNlbWFudGljcyIs
Ci0gICAgICAib3Bjb2RlIiA6IDY5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQb2ludGVy
JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEluQm91bmRzUHRyQWNjZXNzQ2hhaW4iLAot
ICAgICAgIm9wY29kZSIgOiA3MCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5hbWUiIDogIidCYXNlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0VsZW1lbnQnIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlZiIsICAgICAgICAicXVhbnRpZmllciIgOiAiKiIsICJuYW1lIiA6ICInSW5k
ZXhlcyciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkFkZHJlc3NlcyIg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BEZWNvcmF0ZSIsCi0gICAgICAi
b3Bjb2RlIiA6IDcxLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICJuYW1lIiA6ICInVGFyZ2V0JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
RGVjb3JhdGlvbiIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BNZW1iZXJEZWNvcmF0ZSIsCi0gICAgICAib3Bjb2RlIiA6IDcyLAotICAgICAgIm9wZXJhbmRz
IiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ1N0
cnVjdHVyZSBUeXBlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAi
bmFtZSIgOiAiJ01lbWJlciciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkRlY29yYXRpb24iIH0K
LSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRGVjb3JhdGlvbkdy
b3VwIiwKLSAgICAgICJvcGNvZGUiIDogNzMsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAg
Im9wbmFtZSIgOiAiT3BHcm91cERlY29yYXRlIiwKLSAgICAgICJvcGNvZGUiIDogNzQsCi0gICAg
ICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAg
ICAgICAgICAgIm5hbWUiIDogIidEZWNvcmF0aW9uIEdyb3VwJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAicXVhbnRpZmllciIgOiAiKiIsICJuYW1lIiA6ICInVGFyZ2V0cyciIH0K
LSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wR3JvdXBNZW1iZXJE
ZWNvcmF0ZSIsCi0gICAgICAib3Bjb2RlIiA6IDc1LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJuYW1lIiA6ICInRGVjb3JhdGlvbiBHcm91cCciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIlBhaXJJZFJlZkxpdGVyYWxJbnRlZ2VyIiwgInF1YW50aWZpZXIiIDogIioiLCAibmFtZSIg
OiAiJ1RhcmdldHMnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6
ICJPcFZlY3RvckV4dHJhY3REeW5hbWljIiwKLSAgICAgICJvcGNvZGUiIDogNzcsCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ1ZlY3RvciciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInSW5kZXgnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAib3BuYW1lIiA6ICJPcFZlY3Rvckluc2VydER5bmFtaWMiLAotICAgICAgIm9wY29kZSIg
OiA3OCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInVmVjdG9yJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidDb21wb25lbnQnIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0luZGV4JyIgfQotICAgICAg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BWZWN0b3JTaHVmZmxlIiwKLSAg
ICAgICJvcGNvZGUiIDogNzksCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5hbWUiIDogIidWZWN0b3IgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ1ZlY3RvciAyJyIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAicXVhbnRpZmllciIgOiAiKiIsICJuYW1l
IiA6ICInQ29tcG9uZW50cyciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wQ29tcG9zaXRlQ29uc3RydWN0IiwKLSAgICAgICJvcGNvZGUiIDogODAsCi0gICAg
ICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
ZiIsICAgICAgICAicXVhbnRpZmllciIgOiAiKiIsICJuYW1lIiA6ICInQ29uc3RpdHVlbnRzJyIg
fQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb21wb3NpdGVF
eHRyYWN0IiwKLSAgICAgICJvcGNvZGUiIDogODEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm5hbWUiIDogIidDb21wb3NpdGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJMaXRlcmFsSW50ZWdlciIsICJxdWFudGlmaWVyIiA6ICIqIiwgIm5hbWUiIDogIidJbmRleGVz
JyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb21wb3Np
dGVJbnNlcnQiLAotICAgICAgIm9wY29kZSIgOiA4MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibmFtZSIgOiAiJ09iamVjdCciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0NvbXBvc2l0
ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwgInF1YW50aWZpZXIi
IDogIioiLCAibmFtZSIgOiAiJ0luZGV4ZXMnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAib3BuYW1lIiA6ICJPcENvcHlPYmplY3QiLAotICAgICAgIm9wY29kZSIgOiA4MywKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wVHJhbnNwb3NlIiwKLSAgICAgICJvcGNvZGUiIDogODQs
Ci0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUi
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ01hdHJpeCciIH0KLSAgICAgIF0sCi0gICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIk1hdHJpeCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BTYW1wbGVkSW1hZ2UiLAotICAgICAgIm9wY29kZSIgOiA4NiwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICJuYW1lIiA6ICInSW1hZ2UnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAibmFtZSIgOiAiJ1NhbXBsZXInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcEltYWdlU2FtcGxlSW1wbGljaXRMb2QiLAotICAgICAgIm9wY29kZSIg
OiA4NywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInU2Ft
cGxlZCBJbWFnZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIkltYWdlT3BlcmFuZHMiLCAicXVhbnRpZmllciIgOiAiPyIgfQotICAgICAgXSwKLSAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEltYWdlU2FtcGxlRXhwbGljaXRMb2QiLAotICAgICAgIm9wY29kZSIgOiA4
OCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICAibmFtZSIgOiAiJ1NhbXBsZWQgSW1hZ2UnIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSW1hZ2VPcGVyYW5kcyIgfQotICAgICAgXQotICAgIH0sCi0g
ICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNhbXBsZURyZWZJbXBsaWNpdExvZCIsCi0g
ICAgICAib3Bjb2RlIiA6IDg5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5hbWUiIDogIidTYW1wbGVkIEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5hbWUiIDogIidEfnJlZn4nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRz
IiwgInF1YW50aWZpZXIiIDogIj8iIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIlNoYWRlciIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNh
bXBsZURyZWZFeHBsaWNpdExvZCIsCi0gICAgICAib3Bjb2RlIiA6IDkwLAotICAgICAgIm9wZXJh
bmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgICJuYW1lIiA6ICInU2FtcGxlZCBJbWFnZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICAibmFtZSIgOiAiJ0Nvb3JkaW5hdGUnIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAgIm5hbWUiIDogIidEfnJlZn4nIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJbWFnZU9wZXJhbmRzIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIg
OiBbICJTaGFkZXIiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wSW1hZ2VT
YW1wbGVQcm9qSW1wbGljaXRMb2QiLAotICAgICAgIm9wY29kZSIgOiA5MSwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInU2FtcGxlZCBJbWFnZSciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJu
YW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFu
ZHMiLCAicXVhbnRpZmllciIgOiAiPyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiU2hhZGVyIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdl
U2FtcGxlUHJvakV4cGxpY2l0TG9kIiwKLSAgICAgICJvcGNvZGUiIDogOTIsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAgIm5hbWUiIDogIidTYW1wbGVkIEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIkltYWdlT3BlcmFuZHMiIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIlNoYWRlciIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNh
bXBsZVByb2pEcmVmSW1wbGljaXRMb2QiLAotICAgICAgIm9wY29kZSIgOiA5MywKLSAgICAgICJv
cGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInU2FtcGxlZCBJbWFnZSciIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInRH5yZWZ+JyIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSW1hZ2VPcGVyYW5kcyIsICJxdWFudGlmaWVyIiA6ICI/IiB9Ci0gICAg
ICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wSW1hZ2VTYW1wbGVQcm9qRHJlZkV4cGxpY2l0TG9kIiwKLSAg
ICAgICJvcGNvZGUiIDogOTQsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgIm5hbWUiIDogIidTYW1wbGVkIElt
YWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICJuYW1lIiA6ICIn
Q29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAibmFt
ZSIgOiAiJ0R+cmVmficiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMiIH0K
LSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgIH0sCi0g
ICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZUZldGNoIiwKLSAgICAgICJvcGNvZGUiIDog
OTUsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5
cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0ltYWdl
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSW1h
Z2VPcGVyYW5kcyIsICJxdWFudGlmaWVyIiA6ICI/IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdlR2F0aGVyIiwKLSAgICAgICJvcGNvZGUiIDogOTYs
Ci0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUi
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ1NhbXBsZWQg
SW1hZ2UnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibmFtZSIgOiAiJ0Nvb3JkaW5hdGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0NvbXBvbmVu
dCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMiLCAicXVhbnRpZmllciIg
OiAiPyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdlRHJlZkdhdGhlciIsCi0gICAg
ICAib3Bjb2RlIiA6IDk3LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h
bWUiIDogIidTYW1wbGVkIEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h
bWUiIDogIidEfnJlZn4nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRzIiwg
InF1YW50aWZpZXIiIDogIj8iIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlNoYWRlciIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVJlYWQi
LAotICAgICAgIm9wY29kZSIgOiA5OCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQi
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJuYW1lIiA6ICInSW1hZ2UnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0Nvb3JkaW5hdGUnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRzIiwgInF1YW50aWZpZXIiIDogIj8iIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wSW1hZ2VXcml0ZSIsCi0g
ICAgICAib3Bjb2RlIiA6IDk5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidJbWFn
ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInVGV4ZWwnIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRzIiwgInF1YW50aWZpZXIiIDogIj8iIH0K
LSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wSW1hZ2UiLAotICAg
ICAgIm9wY29kZSIgOiAxMDAsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1NhbXBsZWQgSW1h
Z2UnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdl
UXVlcnlGb3JtYXQiLAotICAgICAgIm9wY29kZSIgOiAxMDEsCi0gICAgICAib3BlcmFuZHMiIDog
WwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFt
ZSIgOiAiJ0ltYWdlJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2Vy
bmVsIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdlUXVlcnlPcmRl
ciIsCi0gICAgICAib3Bjb2RlIiA6IDEwMiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInSW1h
Z2UnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wSW1hZ2VRdWVyeVNpemVMb2QiLAotICAg
ICAgIm9wY29kZSIgOiAxMDMsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0ltYWdlJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidMZXZlbCBvZiBE
ZXRhaWwnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiLCAi
SW1hZ2VRdWVyeSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVF1
ZXJ5U2l6ZSIsCi0gICAgICAib3Bjb2RlIiA6IDEwNCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6
ICInSW1hZ2UnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwi
LCAiSW1hZ2VRdWVyeSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFn
ZVF1ZXJ5TG9kIiwKLSAgICAgICJvcGNvZGUiIDogMTA1LAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidTYW1wbGVkIEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiSW1hZ2VRdWVyeSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BJbWFnZVF1ZXJ5TGV2ZWxzIiwKLSAgICAgICJvcGNvZGUiIDogMTA2LAotICAgICAgIm9wZXJh
bmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIidJbWFnZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIktlcm5lbCIsICJJbWFnZVF1ZXJ5IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1l
IiA6ICJPcEltYWdlUXVlcnlTYW1wbGVzIiwKLSAgICAgICJvcGNvZGUiIDogMTA3LAotICAgICAg
Im9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgIm5hbWUiIDogIidJbWFnZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIktlcm5lbCIsICJJbWFnZVF1ZXJ5IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcENvbnZlcnRGVG9VIiwKLSAgICAgICJvcGNvZGUiIDogMTA5LAotICAgICAg
Im9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgIm5hbWUiIDogIidGbG9hdCBWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wQ29udmVydEZUb1MiLAotICAgICAgIm9wY29kZSIgOiAx
MTAsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5
cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0Zsb2F0IFZhbHVlJyIgfQotICAgICAgXQot
ICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb252ZXJ0U1RvRiIsCi0gICAgICAi
b3Bjb2RlIiA6IDExMSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInU2lnbmVkIFZhbHVlJyIg
fQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb252ZXJ0VVRv
RiIsCi0gICAgICAib3Bjb2RlIiA6IDExMiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInVW5z
aWduZWQgVmFsdWUnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6
ICJPcFVDb252ZXJ0IiwKLSAgICAgICJvcGNvZGUiIDogMTEzLAotICAgICAgIm9wZXJhbmRzIiA6
IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5h
bWUiIDogIidVbnNpZ25lZCBWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICJvcG5hbWUiIDogIk9wU0NvbnZlcnQiLAotICAgICAgIm9wY29kZSIgOiAxMTQsCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ1NpZ25lZCBWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wRkNvbnZlcnQiLAotICAgICAgIm9wY29kZSIgOiAxMTUs
Ci0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUi
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0Zsb2F0IFZhbHVlJyIgfQotICAgICAgXQotICAg
IH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BRdWFudGl6ZVRvRjE2IiwKLSAgICAgICJv
cGNvZGUiIDogMTE2LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAg
IF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQ29udmVydFB0clRvVSIsCi0g
ICAgICAib3Bjb2RlIiA6IDExNywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUG9pbnRlcici
IH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkFkZHJlc3NlcyIgXQotICAg
IH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BTYXRDb252ZXJ0U1RvVSIsCi0gICAgICAi
b3Bjb2RlIiA6IDExOCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInU2lnbmVkIFZhbHVlJyIg
fQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgfSwK
LSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNhdENvbnZlcnRVVG9TIiwKLSAgICAgICJvcGNv
ZGUiIDogMTE5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidVbnNpZ25lZCBWYWx1ZSciIH0K
LSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgIH0sCi0g
ICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb252ZXJ0VVRvUHRyIiwKLSAgICAgICJvcGNvZGUi
IDogMTIwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidJbnRlZ2VyIFZhbHVlJyIgfQotICAg
ICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiQWRkcmVzc2VzIiBdCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFB0ckNhc3RUb0dlbmVyaWMiLAotICAgICAgIm9wY29k
ZSIgOiAxMjEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9Ci0gICAgICBd
LAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wR2VuZXJpY0Nhc3RUb1B0ciIsCi0gICAgICAib3Bjb2RlIiA6IDEy
MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUG9pbnRlciciIH0KLSAgICAgIF0sCi0gICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9w
bmFtZSIgOiAiT3BHZW5lcmljQ2FzdFRvUHRyRXhwbGljaXQiLAotICAgICAgIm9wY29kZSIgOiAx
MjMsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5
cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJTdG9yYWdlQ2xhc3MiLCAibmFtZSIgOiAiJ1N0b3JhZ2UnIiB9Ci0gICAgICBdLAot
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICJvcG5hbWUiIDogIk9wQml0Y2FzdCIsCi0gICAgICAib3Bjb2RlIiA6IDEyNCwKLSAgICAgICJv
cGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wU05lZ2F0ZSIsCi0gICAgICAib3Bjb2RlIiA6IDEyNiwKLSAgICAg
ICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wRk5lZ2F0ZSIsCi0gICAgICAib3Bjb2RlIiA6IDEyNywKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wSUFkZCIsCi0gICAgICAib3Bjb2RlIiA6IDEyOCwKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEZBZGQiLAotICAgICAgIm9wY29kZSIgOiAx
MjksCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5
cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJU3ViIiwKLSAgICAgICJvcGNv
ZGUiIDogMTMwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0K
LSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRlN1YiIsCi0gICAg
ICAib3Bjb2RlIiA6IDEzMSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5k
IDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcElNdWwi
LAotICAgICAgIm9wY29kZSIgOiAxMzIsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJh
bmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIn
T3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BGTXVsIiwKLSAgICAgICJvcGNvZGUiIDogMTMzLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDog
IidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFt
ZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wVURpdiIsCi0gICAgICAib3Bjb2RlIiA6IDEzNCwKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJu
YW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcFNEaXYiLAotICAgICAgIm9wY29kZSIgOiAxMzUsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAg
ewotICAgICAgIm9wbmFtZSIgOiAiT3BGRGl2IiwKLSAgICAgICJvcGNvZGUiIDogMTM2LAotICAg
ICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9
LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wVU1vZCIsCi0gICAgICAib3Bjb2RlIiA6IDEz
NywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBd
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNSZW0iLAotICAgICAgIm9wY29k
ZSIgOiAxMzgsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQot
ICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BTTW9kIiwKLSAgICAg
ICJvcGNvZGUiIDogMTM5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQg
MiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRlJlbSIs
Ci0gICAgICAib3Bjb2RlIiA6IDE0MCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQi
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFu
ZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidP
cGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cEZNb2QiLAotICAgICAgIm9wY29kZSIgOiAxNDEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAi
J09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1l
IiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BWZWN0b3JUaW1lc1NjYWxhciIsCi0gICAgICAib3Bjb2RlIiA6IDE0MiwKLSAgICAg
ICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInVmVjdG9yJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZWYiLCAgICAgICAgIm5hbWUiIDogIidTY2FsYXInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAib3BuYW1lIiA6ICJPcE1hdHJpeFRpbWVzU2NhbGFyIiwKLSAgICAgICJvcGNvZGUi
IDogMTQzLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidNYXRyaXgnIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1NjYWxhciciIH0KLSAgICAgIF0s
Ci0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIk1hdHJpeCIgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BWZWN0b3JUaW1lc01hdHJpeCIsCi0gICAgICAib3Bjb2RlIiA6IDE0
NCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInVmVjdG9yJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidNYXRyaXgnIiB9Ci0gICAgICBdLAotICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJNYXRyaXgiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJv
cG5hbWUiIDogIk9wTWF0cml4VGltZXNWZWN0b3IiLAotICAgICAgIm9wY29kZSIgOiAxNDUsCi0g
ICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ01hdHJpeCciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInVmVjdG9yJyIgfQotICAgICAgXSwKLSAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiTWF0cml4IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1l
IiA6ICJPcE1hdHJpeFRpbWVzTWF0cml4IiwKLSAgICAgICJvcGNvZGUiIDogMTQ2LAotICAgICAg
Im9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgIm5hbWUiIDogIidMZWZ0TWF0cml4JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidSaWdodE1hdHJpeCciIH0KLSAgICAgIF0sCi0gICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIk1hdHJpeCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9w
bmFtZSIgOiAiT3BPdXRlclByb2R1Y3QiLAotICAgICAgIm9wY29kZSIgOiAxNDcsCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ1ZlY3RvciAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZWYiLCAgICAgICAgIm5hbWUiIDogIidWZWN0b3IgMiciIH0KLSAgICAgIF0sCi0gICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIk1hdHJpeCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIg
OiAiT3BEb3QiLAotICAgICAgIm9wY29kZSIgOiAxNDgsCi0gICAgICAib3BlcmFuZHMiIDogWwot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIg
OiAiJ1ZlY3RvciAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5h
bWUiIDogIidWZWN0b3IgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wSUFkZENhcnJ5IiwKLSAgICAgICJvcGNvZGUiIDogMTQ5LAotICAgICAgIm9wZXJh
bmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wSVN1YkJvcnJvdyIsCi0gICAgICAib3Bjb2RlIiA6IDE1MCwK
LSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFVNdWxFeHRlbmRlZCIsCi0gICAgICAi
b3Bjb2RlIiA6IDE1MSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDIn
IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNNdWxFeHRl
bmRlZCIsCi0gICAgICAib3Bjb2RlIiA6IDE1MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIn
T3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1l
IiA6ICJPcEFueSIsCi0gICAgICAib3Bjb2RlIiA6IDE1NCwKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1l
IiA6ICInVmVjdG9yJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIg
OiAiT3BBbGwiLAotICAgICAgIm9wY29kZSIgOiAxNTUsCi0gICAgICAib3BlcmFuZHMiIDogWwot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIg
OiAiJ1ZlY3RvciciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDog
Ik9wSXNOYW4iLAotICAgICAgIm9wY29kZSIgOiAxNTYsCi0gICAgICAib3BlcmFuZHMiIDogWwot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIg
OiAiJ3gnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcElz
SW5mIiwKLSAgICAgICJvcGNvZGUiIDogMTU3LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIid4
JyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJc0Zpbml0
ZSIsCi0gICAgICAib3Bjb2RlIiA6IDE1OCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIneCci
IH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgIH0s
Ci0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJc05vcm1hbCIsCi0gICAgICAib3Bjb2RlIiA6
IDE1OSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIneCciIH0KLSAgICAgIF0sCi0gICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BTaWduQml0U2V0IiwKLSAgICAgICJvcGNvZGUiIDogMTYwLAotICAgICAgIm9wZXJh
bmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIid4JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
S2VybmVsIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcExlc3NPckdyZWF0
ZXIiLAotICAgICAgIm9wY29kZSIgOiAxNjEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVz
dWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ3gn
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ3knIiB9
Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wT3JkZXJlZCIsCi0gICAgICAib3Bjb2RlIiA6IDE2
MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIneCciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIneSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BVbm9yZGVyZWQiLAotICAgICAgIm9wY29kZSIgOiAxNjMsCi0gICAgICAib3BlcmFuZHMiIDog
WwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFt
ZSIgOiAiJ3gnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIg
OiAiJ3knIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0K
LSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wTG9naWNhbEVxdWFsIiwKLSAgICAg
ICJvcGNvZGUiIDogMTY0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQg
MiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wTG9naWNh
bE5vdEVxdWFsIiwKLSAgICAgICJvcGNvZGUiIDogMTY1LAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAi
bmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJv
cG5hbWUiIDogIk9wTG9naWNhbE9yIiwKLSAgICAgICJvcGNvZGUiIDogMTY2LAotICAgICAgIm9w
ZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAg
ICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
ZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wTG9naWNhbEFuZCIsCi0gICAgICAib3Bjb2RlIiA6IDE2
NywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBd
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcExvZ2ljYWxOb3QiLAotICAgICAg
Im9wY29kZSIgOiAxNjgsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQnIiB9Ci0g
ICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNlbGVjdCIsCi0gICAg
ICAib3Bjb2RlIiA6IDE2OSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInQ29uZGl0aW9uJyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPYmplY3Qg
MSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT2Jq
ZWN0IDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcElF
cXVhbCIsCi0gICAgICAib3Bjb2RlIiA6IDE3MCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIn
T3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1l
IiA6ICJPcElOb3RFcXVhbCIsCi0gICAgICAib3Bjb2RlIiA6IDE3MSwKLSAgICAgICJvcGVyYW5k
cyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAg
ICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAg
ICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAib3BuYW1lIiA6ICJPcFVHcmVhdGVyVGhhbiIsCi0gICAgICAib3Bjb2RlIiA6IDE3MiwK
LSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNHcmVhdGVyVGhhbiIsCi0gICAgICAi
b3Bjb2RlIiA6IDE3MywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDIn
IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFVHcmVhdGVy
VGhhbkVxdWFsIiwKLSAgICAgICJvcGNvZGUiIDogMTc0LAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAi
bmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJv
cG5hbWUiIDogIk9wU0dyZWF0ZXJUaGFuRXF1YWwiLAotICAgICAgIm9wY29kZSIgOiAxNzUsCi0g
ICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAg
IH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BVTGVzc1RoYW4iLAotICAgICAgIm9wY29k
ZSIgOiAxNzYsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQot
ICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BTTGVzc1RoYW4iLAot
ICAgICAgIm9wY29kZSIgOiAxNzcsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQg
MSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3Bl
cmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BV
TGVzc1RoYW5FcXVhbCIsCi0gICAgICAib3Bjb2RlIiA6IDE3OCwKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJu
YW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcFNMZXNzVGhhbkVxdWFsIiwKLSAgICAgICJvcGNvZGUiIDogMTc5LAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRk9yZEVxdWFsIiwKLSAgICAgICJvcGNv
ZGUiIDogMTgwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0K
LSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRlVub3JkRXF1YWwi
LAotICAgICAgIm9wY29kZSIgOiAxODEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJh
bmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIn
T3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BGT3JkTm90RXF1YWwiLAotICAgICAgIm9wY29kZSIgOiAxODIsCi0gICAgICAib3BlcmFuZHMi
IDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAi
bmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BGVW5vcmROb3RFcXVhbCIsCi0gICAgICAib3Bjb2RlIiA6IDE4MywK
LSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEZPcmRMZXNzVGhhbiIsCi0gICAgICAi
b3Bjb2RlIiA6IDE4NCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAxJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDIn
IiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEZVbm9yZExl
c3NUaGFuIiwKLSAgICAgICJvcGNvZGUiIDogMTg1LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDog
IidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFt
ZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wRk9yZEdyZWF0ZXJUaGFuIiwKLSAgICAgICJvcGNvZGUiIDogMTg2LAotICAgICAg
Im9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAgIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRlVub3JkR3JlYXRlclRoYW4iLAotICAgICAgIm9w
Y29kZSIgOiAxODcsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIg
fQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BGT3JkTGVzc1Ro
YW5FcXVhbCIsCi0gICAgICAib3Bjb2RlIiA6IDE4OCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6
ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5h
bWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3Bu
YW1lIiA6ICJPcEZVbm9yZExlc3NUaGFuRXF1YWwiLAotICAgICAgIm9wY29kZSIgOiAxODksCi0g
ICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAg
IH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BGT3JkR3JlYXRlclRoYW5FcXVhbCIsCi0g
ICAgICAib3Bjb2RlIiA6IDE5MCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAx
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVy
YW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEZV
bm9yZEdyZWF0ZXJUaGFuRXF1YWwiLAotICAgICAgIm9wY29kZSIgOiAxOTEsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0gICAg
ewotICAgICAgIm9wbmFtZSIgOiAiT3BTaGlmdFJpZ2h0TG9naWNhbCIsCi0gICAgICAib3Bjb2Rl
IiA6IDE5NCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVz
dWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInQmFzZSciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInU2hpZnQnIiB9Ci0gICAgICBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNoaWZ0UmlnaHRBcml0aG1ldGljIiwK
LSAgICAgICJvcGNvZGUiIDogMTk1LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidCYXNlJyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidTaGlmdCci
IH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU2hpZnRMZWZ0
TG9naWNhbCIsCi0gICAgICAib3Bjb2RlIiA6IDE5NiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6
ICInQmFzZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6
ICInU2hpZnQnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cEJpdHdpc2VPciIsCi0gICAgICAib3Bjb2RlIiA6IDE5NywKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1l
IiA6ICInT3BlcmFuZCAxJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidPcGVyYW5kIDInIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEJpdHdpc2VYb3IiLAotICAgICAgIm9wY29kZSIgOiAxOTgsCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICJuYW1lIiA6ICInT3BlcmFuZCAyJyIgfQotICAgICAgXQotICAgIH0sCi0g
ICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BCaXR3aXNlQW5kIiwKLSAgICAgICJvcGNvZGUiIDog
MTk5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRU
eXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kIDEnIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09wZXJhbmQgMiciIH0KLSAgICAg
IF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wTm90IiwKLSAgICAgICJvcGNv
ZGUiIDogMjAwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPcGVyYW5kJyIgfQotICAgICAg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BCaXRGaWVsZEluc2VydCIsCi0g
ICAgICAib3Bjb2RlIiA6IDIwMSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInQmFzZSciIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInSW5zZXJ0JyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidPZmZzZXQn
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0NvdW50
JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEJpdEZpZWxkU0V4dHJhY3QiLAotICAgICAg
Im9wY29kZSIgOiAyMDIsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0Jhc2UnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ09mZnNldCciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInQ291bnQnIiB9Ci0g
ICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wQml0RmllbGRVRXh0cmFjdCIsCi0gICAgICAib3Bjb2Rl
IiA6IDIwMywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVz
dWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInQmFzZSciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInT2Zmc2V0JyIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidDb3VudCciIH0KLSAgICAgIF0s
Ci0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BCaXRSZXZlcnNlIiwKLSAgICAgICJvcGNvZGUiIDogMjA0LAotICAg
ICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZWYiLCAgICAgICAgIm5hbWUiIDogIidCYXNlJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cEJpdENvdW50IiwKLSAgICAgICJvcGNvZGUiIDogMjA1LAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUi
IDogIidCYXNlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BEUGR4IiwKLSAgICAgICJvcGNvZGUiIDogMjA3LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDog
IidQJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcERQZHkiLAotICAgICAgIm9wY29kZSIg
OiAyMDgsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3Vs
dFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1AnIiB9Ci0gICAgICBdLAotICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wRndpZHRoIiwKLSAgICAgICJvcGNvZGUiIDogMjA5LAotICAgICAgIm9wZXJhbmRz
IiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidQJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hh
ZGVyIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcERQZHhGaW5lIiwKLSAg
ICAgICJvcGNvZGUiIDogMjEwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQJyIgfQotICAg
ICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRGVyaXZhdGl2ZUNvbnRyb2wiIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRFBkeUZpbmUiLAotICAgICAgIm9wY29k
ZSIgOiAyMTEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1AnIiB9Ci0gICAgICBdLAotICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJEZXJpdmF0aXZlQ29udHJvbCIgXQotICAgIH0sCi0gICAg
ewotICAgICAgIm9wbmFtZSIgOiAiT3BGd2lkdGhGaW5lIiwKLSAgICAgICJvcGNvZGUiIDogMjEy
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBl
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiRGVyaXZhdGl2ZUNvbnRyb2wiIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICJvcG5hbWUiIDogIk9wRFBkeENvYXJzZSIsCi0gICAgICAib3Bjb2RlIiA6IDIxMywKLSAgICAg
ICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInUCciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIkRlcml2YXRpdmVDb250cm9sIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1l
IiA6ICJPcERQZHlDb2Fyc2UiLAotICAgICAgIm9wY29kZSIgOiAyMTQsCi0gICAgICAib3BlcmFu
ZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAg
ICAibmFtZSIgOiAiJ1AnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJE
ZXJpdmF0aXZlQ29udHJvbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BG
d2lkdGhDb2Fyc2UiLAotICAgICAgIm9wY29kZSIgOiAyMTUsCi0gICAgICAib3BlcmFuZHMiIDog
WwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFt
ZSIgOiAiJ1AnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJEZXJpdmF0
aXZlQ29udHJvbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BFbWl0VmVy
dGV4IiwKLSAgICAgICJvcGNvZGUiIDogMjE4LAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJH
ZW9tZXRyeSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BFbmRQcmltaXRp
dmUiLAotICAgICAgIm9wY29kZSIgOiAyMTksCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkdl
b21ldHJ5IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEVtaXRTdHJlYW1W
ZXJ0ZXgiLAotICAgICAgIm9wY29kZSIgOiAyMjAsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJuYW1lIiA6ICInU3RyZWFtJyIgfQotICAgICAgXSwK
LSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR2VvbWV0cnlTdHJlYW1zIiBdCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEVuZFN0cmVhbVByaW1pdGl2ZSIsCi0gICAgICAib3Bj
b2RlIiA6IDIyMSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgIm5hbWUiIDogIidTdHJlYW0nIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGll
cyIgOiBbICJHZW9tZXRyeVN0cmVhbXMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUi
IDogIk9wQ29udHJvbEJhcnJpZXIiLAotICAgICAgIm9wY29kZSIgOiAyMjQsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICAgICJuYW1l
IiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAg
ICAgICAibmFtZSIgOiAiJ01lbW9yeSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkTWVtb3J5
U2VtYW50aWNzIiwgIm5hbWUiIDogIidTZW1hbnRpY3MnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcE1lbW9yeUJhcnJpZXIiLAotICAgICAgIm9wY29kZSIg
OiAyMjUsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3Bl
IiwgICAgICAgICAgICJuYW1lIiA6ICInTWVtb3J5JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRNZW1vcnlTZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0KLSAgICAgIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljTG9hZCIsCi0gICAgICAib3Bj
b2RlIiA6IDIyNywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAgICAibmFtZSIgOiAiJ1Njb3Bl
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlTZW1hbnRpY3MiLCAibmFtZSIgOiAi
J1NlbWFudGljcyciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDog
Ik9wQXRvbWljU3RvcmUiLAotICAgICAgIm9wY29kZSIgOiAyMjgsCi0gICAgICAib3BlcmFuZHMi
IDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICJuYW1lIiA6ICIn
UG9pbnRlciciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAgICAgICAgIm5h
bWUiIDogIidTY29wZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkTWVtb3J5U2VtYW50aWNz
IiwgIm5hbWUiIDogIidTZW1hbnRpY3MnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAgICAgICJuYW1lIiA6ICInVmFsdWUnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAib3BuYW1lIiA6ICJPcEF0b21pY0V4Y2hhbmdlIiwKLSAgICAgICJvcGNvZGUiIDog
MjI5LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRU
eXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICAgICJuYW1lIiA6ICInU2NvcGUnIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZE1lbW9yeVNlbWFudGljcyIsICJuYW1lIiA6ICInU2VtYW50
aWNzJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIg
OiAiJ1ZhbHVlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BBdG9taWNDb21wYXJlRXhjaGFuZ2UiLAotICAgICAgIm9wY29kZSIgOiAyMzAsCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAgICAgICJuYW1lIiA6ICInUG9pbnRlciciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkU2NvcGUiLCAgICAgICAgICAgIm5hbWUiIDogIidTY29wZSciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkTWVtb3J5U2VtYW50aWNzIiwgIm5hbWUiIDogIidFcXVhbCciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkTWVtb3J5U2VtYW50aWNzIiwgIm5hbWUiIDogIidVbmVxdWFsJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIgOiAiJ1ZhbHVl
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIgOiAi
J0NvbXBhcmF0b3InIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6
ICJPcEF0b21pY0NvbXBhcmVFeGNoYW5nZVdlYWsiLAotICAgICAgIm9wY29kZSIgOiAyMzEsCi0g
ICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAgICAgICJuYW1lIiA6ICInUG9pbnRlciciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkU2NvcGUiLCAgICAgICAgICAgIm5hbWUiIDogIidTY29wZSciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkTWVtb3J5U2VtYW50aWNzIiwgIm5hbWUiIDogIidFcXVhbCciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkTWVtb3J5U2VtYW50aWNzIiwgIm5hbWUiIDogIidVbmVxdWFs
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIgOiAi
J1ZhbHVlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFt
ZSIgOiAiJ0NvbXBhcmF0b3InIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBb
ICJLZXJuZWwiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljSUlu
Y3JlbWVudCIsCi0gICAgICAib3Bjb2RlIiA6IDIzMiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5h
bWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAg
ICAgICAibmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlT
ZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljSURlY3JlbWVudCIsCi0gICAgICAib3Bjb2Rl
IiA6IDIzMywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVz
dWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAgICAibmFtZSIgOiAiJ1Njb3BlJyIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlTZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1Nl
bWFudGljcyciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9w
QXRvbWljSUFkZCIsCi0gICAgICAib3Bjb2RlIiA6IDIzNCwKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAg
Im5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAg
ICAgICAgICAibmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1v
cnlTZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljSVN1YiIsCi0gICAgICAib3Bj
b2RlIiA6IDIzNSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAgICAibmFtZSIgOiAiJ1Njb3Bl
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlTZW1hbnRpY3MiLCAibmFtZSIgOiAi
J1NlbWFudGljcyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAg
Im5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wQXRvbWljU01pbiIsCi0gICAgICAib3Bjb2RlIiA6IDIzNiwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRT
Y29wZSIsICAgICAgICAgICAibmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRNZW1vcnlTZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljVU1pbiIsCi0g
ICAgICAib3Bjb2RlIiA6IDIzNywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidQb2lu
dGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAgICAibmFtZSIg
OiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlTZW1hbnRpY3MiLCAi
bmFtZSIgOiAiJ1NlbWFudGljcyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgICAgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wQXRvbWljU01heCIsCi0gICAgICAib3Bjb2RlIiA6IDIzOCwKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRTY29wZSIsICAgICAgICAgICAibmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRNZW1vcnlTZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidWYWx1
ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWlj
VU1heCIsCi0gICAgICAib3Bjb2RlIiA6IDIzOSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUi
IDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAg
ICAibmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlTZW1h
bnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljQW5kIiwKLSAgICAgICJvcGNvZGUiIDog
MjQwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRU
eXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICAgICJuYW1lIiA6ICInU2NvcGUnIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZE1lbW9yeVNlbWFudGljcyIsICJuYW1lIiA6ICInU2VtYW50
aWNzJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIg
OiAiJ1ZhbHVlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BBdG9taWNPciIsCi0gICAgICAib3Bjb2RlIiA6IDI0MSwKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAg
Im5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAg
ICAgICAgICAibmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1v
cnlTZW1hbnRpY3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQXRvbWljWG9yIiwKLSAgICAgICJvcGNv
ZGUiIDogMjQyLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICAgICJuYW1lIiA6ICInU2NvcGUn
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZE1lbW9yeVNlbWFudGljcyIsICJuYW1lIiA6ICIn
U2VtYW50aWNzJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAi
bmFtZSIgOiAiJ1ZhbHVlJyIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BQaGkiLAotICAgICAgIm9wY29kZSIgOiAyNDUsCi0gICAgICAib3BlcmFuZHMiIDog
WwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJQYWlySWRSZWZJZFJlZiIsICJx
dWFudGlmaWVyIiA6ICIqIiwgIm5hbWUiIDogIidWYXJpYWJsZSwgUGFyZW50LCAuLi4nIiB9Ci0g
ICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcExvb3BNZXJnZSIsCi0g
ICAgICAib3Bjb2RlIiA6IDI0NiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgIm5hbWUiIDogIidNZXJnZSBCbG9jayciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgIm5hbWUiIDogIidDb250aW51ZSBUYXJnZXQnIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJMb29wQ29udHJvbCIgfQotICAgICAgXQotICAgIH0sCi0g
ICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BTZWxlY3Rpb25NZXJnZSIsCi0gICAgICAib3Bjb2Rl
IiA6IDI0NywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICAgICAibmFtZSIgOiAiJ01lcmdlIEJsb2NrJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiU2VsZWN0aW9uQ29udHJvbCIgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAg
Im9wbmFtZSIgOiAiT3BMYWJlbCIsCi0gICAgICAib3Bjb2RlIiA6IDI0OCwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9Ci0gICAgICBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEJyYW5jaCIsCi0gICAgICAib3Bjb2RlIiA6
IDI0OSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
Im5hbWUiIDogIidUYXJnZXQgTGFiZWwnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcEJyYW5jaENvbmRpdGlvbmFsIiwKLSAgICAgICJvcGNvZGUiIDogMjUw
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInQ29uZGl0aW9uJyIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1l
IiA6ICInVHJ1ZSBMYWJlbCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0ZhbHNlIExhYmVsJyIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAicXVhbnRpZmllciIgOiAiKiIsICJuYW1l
IiA6ICInQnJhbmNoIHdlaWdodHMnIiB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcFN3aXRjaCIsCi0gICAgICAib3Bjb2RlIiA6IDI1MSwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ1NlbGVjdG9yJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJu
YW1lIiA6ICInRGVmYXVsdCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIlBhaXJMaXRlcmFsSW50
ZWdlcklkUmVmIiwgInF1YW50aWZpZXIiIDogIioiLCAibmFtZSIgOiAiJ1RhcmdldCciIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wS2lsbCIsCi0gICAgICAi
b3Bjb2RlIiA6IDI1MiwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFJldHVybiIsCi0gICAgICAib3Bjb2RlIiA6
IDI1MwotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BSZXR1cm5WYWx1ZSIsCi0g
ICAgICAib3Bjb2RlIiA6IDI1NCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wVW5yZWFjaGFibGUiLAotICAgICAgIm9wY29kZSIgOiAy
NTUKLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wTGlmZXRpbWVTdGFydCIsCi0g
ICAgICAib3Bjb2RlIiA6IDI1NiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICAgIm5hbWUiIDogIidQb2ludGVyJyIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ1NpemUnIiB9Ci0gICAgICBd
LAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wTGlmZXRpbWVTdG9wIiwKLSAgICAgICJvcGNvZGUiIDogMjU3LAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
ICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50
ZWdlciIsICJuYW1lIiA6ICInU2l6ZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIktlcm5lbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHcm91
cEFzeW5jQ29weSIsCi0gICAgICAib3Bjb2RlIiA6IDI1OSwKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAgICJuYW1l
IiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidEZXN0aW5hdGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICJuYW1lIiA6ICInU291cmNlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICAgICAgIm5hbWUiIDogIidOdW0gRWxlbWVudHMnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1N0cmlkZSciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInRXZlbnQnIiB9Ci0gICAgICBdLAotICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5h
bWUiIDogIk9wR3JvdXBXYWl0RXZlbnRzIiwKLSAgICAgICJvcGNvZGUiIDogMjYwLAotICAgICAg
Im9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICJuYW1lIiA6ICIn
RXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICJuYW1lIiA6ICIn
TnVtIEV2ZW50cyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAibmFtZSIgOiAi
J0V2ZW50cyBMaXN0JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2Vy
bmVsIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEdyb3VwQWxsIiwKLSAg
ICAgICJvcGNvZGUiIDogMjYxLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgIm5hbWUiIDogIidFeGVjdXRpb24n
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1ByZWRp
Y2F0ZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkdyb3VwcyIgXQot
ICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHcm91cEFueSIsCi0gICAgICAib3Bj
b2RlIiA6IDI2MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAgICJuYW1lIiA6ICInRXhlY3V0aW9uJyIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQcmVkaWNhdGUnIiB9
Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHcm91cHMiIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wR3JvdXBCcm9hZGNhc3QiLAotICAgICAgIm9wY29k
ZSIgOiAyNjMsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAibmFtZSIgOiAiJ0V4ZWN1dGlvbiciIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInVmFsdWUnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0xvY2FsSWQnIiB9Ci0g
ICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHcm91cHMiIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wR3JvdXBJQWRkIiwKLSAgICAgICJvcGNvZGUiIDogMjY0
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBl
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRTY29wZSIsICAgICAgICAibmFtZSIgOiAiJ0V4ZWN1dGlvbiciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIkdyb3VwT3BlcmF0aW9uIiwgIm5hbWUiIDogIidPcGVyYXRpb24nIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICJuYW1lIiA6ICInWCciIH0KLSAgICAg
IF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkdyb3VwcyIgXQotICAgIH0sCi0gICAgewot
ICAgICAgIm9wbmFtZSIgOiAiT3BHcm91cEZBZGQiLAotICAgICAgIm9wY29kZSIgOiAyNjUsCi0g
ICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFNjb3BlIiwgICAgICAgICJuYW1lIiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiR3JvdXBPcGVyYXRpb24iLCAibmFtZSIgOiAiJ09wZXJhdGlvbiciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgIm5hbWUiIDogIidYJyIgfQotICAgICAgXSwK
LSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR3JvdXBzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcEdyb3VwRk1pbiIsCi0gICAgICAib3Bjb2RlIiA6IDI2NiwKLSAgICAg
ICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2Nv
cGUiLCAgICAgICAgIm5hbWUiIDogIidFeGVjdXRpb24nIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJHcm91cE9wZXJhdGlvbiIsICJuYW1lIiA6ICInT3BlcmF0aW9uJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ1gnIiB9Ci0gICAgICBdLAotICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJHcm91cHMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJv
cG5hbWUiIDogIk9wR3JvdXBVTWluIiwKLSAgICAgICJvcGNvZGUiIDogMjY3LAotICAgICAgIm9w
ZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIs
ICAgICAgICAibmFtZSIgOiAiJ0V4ZWN1dGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkdy
b3VwT3BlcmF0aW9uIiwgIm5hbWUiIDogIidPcGVyYXRpb24nIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAgICJuYW1lIiA6ICInWCciIH0KLSAgICAgIF0sCi0gICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIkdyb3VwcyIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFt
ZSIgOiAiT3BHcm91cFNNaW4iLAotICAgICAgIm9wY29kZSIgOiAyNjgsCi0gICAgICAib3BlcmFu
ZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAg
ICAgICJuYW1lIiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiR3JvdXBP
cGVyYXRpb24iLCAibmFtZSIgOiAiJ09wZXJhdGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgICAgICAgICAgIm5hbWUiIDogIidYJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiR3JvdXBzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6
ICJPcEdyb3VwRk1heCIsCi0gICAgICAib3Bjb2RlIiA6IDI2OSwKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAgICAg
Im5hbWUiIDogIidFeGVjdXRpb24nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJHcm91cE9wZXJh
dGlvbiIsICJuYW1lIiA6ICInT3BlcmF0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ1gnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJHcm91cHMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9w
R3JvdXBVTWF4IiwKLSAgICAgICJvcGNvZGUiIDogMjcwLAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAibmFt
ZSIgOiAiJ0V4ZWN1dGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkdyb3VwT3BlcmF0aW9u
IiwgIm5hbWUiIDogIidPcGVyYXRpb24nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAgICJuYW1lIiA6ICInWCciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIkdyb3VwcyIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHcm91
cFNNYXgiLAotICAgICAgIm9wY29kZSIgOiAyNzEsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICJuYW1lIiA6
ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiR3JvdXBPcGVyYXRpb24iLCAi
bmFtZSIgOiAiJ09wZXJhdGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICAgIm5hbWUiIDogIidYJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiR3JvdXBzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFJlYWRQaXBl
IiwKLSAgICAgICJvcGNvZGUiIDogMjc0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3Vs
dCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQaXBl
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQb2lu
dGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQ
YWNrZXQgU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1l
IiA6ICInUGFja2V0IEFsaWdubWVudCciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIlBpcGVzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFdyaXRl
UGlwZSIsCi0gICAgICAib3Bjb2RlIiA6IDI3NSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIn
UGlwZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICIn
UG9pbnRlciciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6
ICInUGFja2V0IFNpemUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAi
bmFtZSIgOiAiJ1BhY2tldCBBbGlnbm1lbnQnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJQaXBlcyIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BS
ZXNlcnZlZFJlYWRQaXBlIiwKLSAgICAgICJvcGNvZGUiIDogMjc2LAotICAgICAgIm9wZXJhbmRz
IiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidQaXBlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidSZXNlcnZlIElkJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAg
ICAgICAgIm5hbWUiIDogIidJbmRleCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICJuYW1lIiA6ICInUG9pbnRlciciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInUGFja2V0IFNpemUnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BhY2tldCBBbGlnbm1lbnQnIiB9Ci0gICAgICBd
LAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJQaXBlcyIgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BSZXNlcnZlZFdyaXRlUGlwZSIsCi0gICAgICAib3Bjb2RlIiA6IDI3
NywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGlwZSciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUmVzZXJ2ZSBJZCciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInSW5kZXgnIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BvaW50ZXInIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BhY2tldCBTaXplJyIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYWNrZXQgQWxp
Z25tZW50JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiUGlwZXMiIF0K
LSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wUmVzZXJ2ZVJlYWRQaXBlUGFja2V0
cyIsCi0gICAgICAib3Bjb2RlIiA6IDI3OCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGlw
ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInTnVt
IFBhY2tldHMnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIg
OiAiJ1BhY2tldCBTaXplJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidQYWNrZXQgQWxpZ25tZW50JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiUGlwZXMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9w
UmVzZXJ2ZVdyaXRlUGlwZVBhY2tldHMiLAotICAgICAgIm9wY29kZSIgOiAyNzksCi0gICAgICAi
b3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ1BpcGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ051bSBQYWNrZXRzJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYWNrZXQgU2l6ZSciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFja2V0IEFsaWdubWVudCciIH0KLSAg
ICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAib3BuYW1lIiA6ICJPcENvbW1pdFJlYWRQaXBlIiwKLSAgICAgICJvcGNvZGUiIDog
MjgwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAi
bmFtZSIgOiAiJ1BpcGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJuYW1lIiA6
ICInUmVzZXJ2ZSBJZCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDog
IidQYWNrZXQgU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDog
IidQYWNrZXQgQWxpZ25tZW50JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiUGlwZXMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQ29tbWl0V3Jp
dGVQaXBlIiwKLSAgICAgICJvcGNvZGUiIDogMjgxLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAibmFtZSIgOiAiJ1BpcGUnIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICJuYW1lIiA6ICInUmVzZXJ2ZSBJZCciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidQYWNrZXQgU2l6ZSciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidQYWNrZXQgQWxpZ25tZW50JyIgfQotICAgICAg
XSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiUGlwZXMiIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICJvcG5hbWUiIDogIk9wSXNWYWxpZFJlc2VydmVJZCIsCi0gICAgICAib3Bjb2RlIiA6IDI4
MiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlw
ZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUmVzZXJ2ZSBJZCciIH0KLSAgICAgIF0sCi0g
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEdldE51bVBpcGVQYWNrZXRzIiwKLSAgICAgICJvcGNvZGUiIDogMjgzLAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQaXBlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYWNrZXQgU2l6ZSciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFja2V0IEFsaWdubWVudCciIH0KLSAg
ICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAib3BuYW1lIiA6ICJPcEdldE1heFBpcGVQYWNrZXRzIiwKLSAgICAgICJvcGNvZGUi
IDogMjg0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQaXBlJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYWNrZXQgU2l6ZSciIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFja2V0IEFsaWdubWVu
dCciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEdyb3VwUmVzZXJ2ZVJlYWRQaXBlUGFja2V0
cyIsCi0gICAgICAib3Bjb2RlIiA6IDI4NSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAgICJuYW1lIiA6ICInRXhl
Y3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDog
IidQaXBlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDog
IidOdW0gUGFja2V0cyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJu
YW1lIiA6ICInUGFja2V0IFNpemUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAibmFtZSIgOiAiJ1BhY2tldCBBbGlnbm1lbnQnIiB9Ci0gICAgICBdLAotICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJQaXBlcyIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIg
OiAiT3BHcm91cFJlc2VydmVXcml0ZVBpcGVQYWNrZXRzIiwKLSAgICAgICJvcGNvZGUiIDogMjg2
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBl
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRTY29wZSIsICAgICAgIm5hbWUiIDogIidFeGVjdXRpb24nIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BpcGUnIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ051bSBQYWNrZXRzJyIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYWNrZXQgU2l6ZSciIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFja2V0IEFs
aWdubWVudCciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBd
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEdyb3VwQ29tbWl0UmVhZFBpcGUi
LAotICAgICAgIm9wY29kZSIgOiAyODcsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7
ICJraW5kIiA6ICJJZFNjb3BlIiwgIm5hbWUiIDogIidFeGVjdXRpb24nIiB9LAotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlZiIsICAgIm5hbWUiIDogIidQaXBlJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICJuYW1lIiA6ICInUmVzZXJ2ZSBJZCciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAibmFtZSIgOiAiJ1BhY2tldCBTaXplJyIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZWYiLCAgICJuYW1lIiA6ICInUGFja2V0IEFsaWdubWVudCciIH0KLSAgICAg
IF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlBpcGVzIiBdCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAib3BuYW1lIiA6ICJPcEdyb3VwQ29tbWl0V3JpdGVQaXBlIiwKLSAgICAgICJvcGNvZGUi
IDogMjg4LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29w
ZSIsICJuYW1lIiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAgICJuYW1lIiA6ICInUGlwZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAi
bmFtZSIgOiAiJ1Jlc2VydmUgSWQnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
Im5hbWUiIDogIidQYWNrZXQgU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAibmFtZSIgOiAiJ1BhY2tldCBBbGlnbm1lbnQnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJQaXBlcyIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAi
T3BFbnF1ZXVlTWFya2VyIiwKLSAgICAgICJvcGNvZGUiIDogMjkxLAotICAgICAgIm9wZXJhbmRz
IiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAg
Im5hbWUiIDogIidRdWV1ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAg
ICJuYW1lIiA6ICInTnVtIEV2ZW50cyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICJuYW1lIiA6ICInV2FpdCBFdmVudHMnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1JldCBFdmVudCciIH0KLSAgICAgIF0sCi0gICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIkRldmljZUVucXVldWUiIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICJvcG5hbWUiIDogIk9wRW5xdWV1ZUtlcm5lbCIsCi0gICAgICAib3Bjb2RlIiA6IDI5MiwKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidRdWV1ZSciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h
bWUiIDogIidGbGFncyciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidORCBSYW5nZSciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidOdW0g
RXZlbnRzJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibmFtZSIgOiAiJ1dhaXQgRXZlbnRzJyIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ1JldCBFdmVu
dCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5hbWUiIDogIidJbnZva2UnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInUGFyYW0nIiB9LAotICAgICAg
ICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6
ICInUGFyYW0gU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidQYXJhbSBBbGlnbiciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJxdWFudGlmaWVyIiA6ICIqIiwgIm5hbWUiIDogIidM
b2NhbCBTaXplJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRGV2aWNl
RW5xdWV1ZSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHZXRLZXJuZWxO
RHJhbmdlU3ViR3JvdXBDb3VudCIsCi0gICAgICAib3Bjb2RlIiA6IDI5MywKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICJuYW1lIiA6ICInTkQgUmFuZ2UnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAibmFtZSIgOiAiJ0ludm9rZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInUGFyYW0nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
ZiIsICAgICAgICAibmFtZSIgOiAiJ1BhcmFtIFNpemUnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BhcmFtIEFsaWduJyIgfQotICAgICAgXSwKLSAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRGV2aWNlRW5xdWV1ZSIgXQotICAgIH0sCi0gICAgewot
ICAgICAgIm9wbmFtZSIgOiAiT3BHZXRLZXJuZWxORHJhbmdlTWF4U3ViR3JvdXBTaXplIiwKLSAg
ICAgICJvcGNvZGUiIDogMjk0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidORCBSYW5nZSci
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInSW52b2tl
JyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYXJh
bSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFy
YW0gU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6
ICInUGFyYW0gQWxpZ24nIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJE
ZXZpY2VFbnF1ZXVlIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEdldEtl
cm5lbFdvcmtHcm91cFNpemUiLAotICAgICAgIm9wY29kZSIgOiAyOTUsCi0gICAgICAib3BlcmFu
ZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAg
ICAibmFtZSIgOiAiJ0ludm9rZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICJuYW1lIiA6ICInUGFyYW0nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAibmFtZSIgOiAiJ1BhcmFtIFNpemUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
ZiIsICAgICAgICAibmFtZSIgOiAiJ1BhcmFtIEFsaWduJyIgfQotICAgICAgXSwKLSAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiRGV2aWNlRW5xdWV1ZSIgXQotICAgIH0sCi0gICAgewotICAgICAg
Im9wbmFtZSIgOiAiT3BHZXRLZXJuZWxQcmVmZXJyZWRXb3JrR3JvdXBTaXplTXVsdGlwbGUiLAot
ICAgICAgIm9wY29kZSIgOiAyOTYsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ0ludm9rZSci
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFyYW0n
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1BhcmFt
IFNpemUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAi
J1BhcmFtIEFsaWduJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRGV2
aWNlRW5xdWV1ZSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BSZXRhaW5F
dmVudCIsCi0gICAgICAib3Bjb2RlIiA6IDI5NywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAg
ICAgIHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidFdmVudCciIH0KLSAgICAgIF0sCi0g
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkRldmljZUVucXVldWUiIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wUmVsZWFzZUV2ZW50IiwKLSAgICAgICJvcGNvZGUiIDogMjk4
LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAibmFt
ZSIgOiAiJ0V2ZW50JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRGV2
aWNlRW5xdWV1ZSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDcmVhdGVV
c2VyRXZlbnQiLAotICAgICAgIm9wY29kZSIgOiAyOTksCi0gICAgICAib3BlcmFuZHMiIDogWwot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0IiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJEZXZpY2VF
bnF1ZXVlIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcElzVmFsaWRFdmVu
dCIsCi0gICAgICAib3Bjb2RlIiA6IDMwMCwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1
bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInRXZl
bnQnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJEZXZpY2VFbnF1ZXVl
IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFNldFVzZXJFdmVudFN0YXR1
cyIsCi0gICAgICAib3Bjb2RlIiA6IDMwMSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidFdmVudCciIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidTdGF0dXMnIiB9Ci0gICAgICBdLAotICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJEZXZpY2VFbnF1ZXVlIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcENhcHR1cmVFdmVudFByb2ZpbGluZ0luZm8iLAotICAgICAgIm9wY29kZSIg
OiAzMDIsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICJuYW1lIiA6ICInRXZlbnQnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJuYW1l
IiA6ICInUHJvZmlsaW5nIEluZm8nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJu
YW1lIiA6ICInVmFsdWUnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJE
ZXZpY2VFbnF1ZXVlIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEdldERl
ZmF1bHRRdWV1ZSIsCi0gICAgICAib3Bjb2RlIiA6IDMwMywKLSAgICAgICJvcGVyYW5kcyIgOiBb
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHQiIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkRldmlj
ZUVucXVldWUiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wQnVpbGRORFJh
bmdlIiwKLSAgICAgICJvcGNvZGUiIDogMzA0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidH
bG9iYWxXb3JrU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJu
YW1lIiA6ICInTG9jYWxXb3JrU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAgICJuYW1lIiA6ICInR2xvYmFsV29ya09mZnNldCciIH0KLSAgICAgIF0sCi0gICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIkRldmljZUVucXVldWUiIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICJvcG5hbWUiIDogIk9wSW1hZ2VTcGFyc2VTYW1wbGVJbXBsaWNpdExvZCIsCi0gICAgICAib3Bj
b2RlIiA6IDMwNSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6
ICInU2FtcGxlZCBJbWFnZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMiLCAicXVhbnRpZmllciIgOiAiPyIgfQotICAgICAg
XSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3BhcnNlUmVzaWRlbmN5IiBdCi0gICAgfSwK
LSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEltYWdlU3BhcnNlU2FtcGxlRXhwbGljaXRMb2Qi
LAotICAgICAgIm9wY29kZSIgOiAzMDYsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgIm5hbWUiIDogIidTYW1w
bGVkIEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICJuYW1l
IiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMi
IH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNwYXJzZVJlc2lkZW5jeSIg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNwYXJzZVNhbXBsZURy
ZWZJbXBsaWNpdExvZCIsCi0gICAgICAib3Bjb2RlIiA6IDMwNywKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInU2FtcGxlZCBJbWFnZSciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6
ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInRH5yZWZ+JyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSW1hZ2VPcGVyYW5kcyIsICJxdWFudGlmaWVyIiA6ICI/IiB9Ci0gICAgICBdLAotICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJTcGFyc2VSZXNpZGVuY3kiIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wSW1hZ2VTcGFyc2VTYW1wbGVEcmVmRXhwbGljaXRMb2QiLAot
ICAgICAgIm9wY29kZSIgOiAzMDgsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgIm5hbWUiIDogIidTYW1wbGVk
IEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICJuYW1lIiA6
ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAi
bmFtZSIgOiAiJ0R+cmVmficiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMi
IH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNwYXJzZVJlc2lkZW5jeSIg
XQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNwYXJzZVNhbXBsZVBy
b2pJbXBsaWNpdExvZCIsCi0gICAgICAib3Bjb2RlIiA6IDMwOSwKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICInU2FtcGxlZCBJbWFnZSciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6
ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMiLCAi
cXVhbnRpZmllciIgOiAiPyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
U3BhcnNlUmVzaWRlbmN5IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcElt
YWdlU3BhcnNlU2FtcGxlUHJvakV4cGxpY2l0TG9kIiwKLSAgICAgICJvcGNvZGUiIDogMzEwLAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgICJuYW1lIiA6ICInU2FtcGxlZCBJbWFnZSciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICAibmFtZSIgOiAiJ0Nvb3JkaW5hdGUnIiB9LAotICAg
ICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRzIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJTcGFyc2VSZXNpZGVuY3kiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJv
cG5hbWUiIDogIk9wSW1hZ2VTcGFyc2VTYW1wbGVQcm9qRHJlZkltcGxpY2l0TG9kIiwKLSAgICAg
ICJvcGNvZGUiIDogMzExLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h
bWUiIDogIidTYW1wbGVkIEltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfSwKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h
bWUiIDogIidEfnJlZn4nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRzIiwg
InF1YW50aWZpZXIiIDogIj8iIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlNwYXJzZVJlc2lkZW5jeSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJ
bWFnZVNwYXJzZVNhbXBsZVByb2pEcmVmRXhwbGljaXRMb2QiLAotICAgICAgIm9wY29kZSIgOiAz
MTIsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5
cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAgIm5hbWUiIDogIidTYW1wbGVkIEltYWdlJyIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAibmFtZSIgOiAiJ0R+cmVmfici
IH0sCi0gICAgICAgIHsgImtpbmQiIDogIkltYWdlT3BlcmFuZHMiIH0KLSAgICAgIF0sCi0gICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNwYXJzZVJlc2lkZW5jeSIgXQotICAgIH0sCi0gICAgewot
ICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNwYXJzZUZldGNoIiwKLSAgICAgICJvcGNvZGUiIDog
MzEzLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRU
eXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidJbWFn
ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJuYW1lIiA6ICInQ29vcmRpbmF0ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklt
YWdlT3BlcmFuZHMiLCAicXVhbnRpZmllciIgOiAiPyIgfQotICAgICAgXSwKLSAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU3BhcnNlUmVzaWRlbmN5IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEltYWdlU3BhcnNlR2F0aGVyIiwKLSAgICAgICJvcGNvZGUiIDogMzE0LAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidTYW1wbGVkIElt
YWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidDb21wb25lbnQn
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJbWFnZU9wZXJhbmRzIiwgInF1YW50aWZpZXIiIDog
Ij8iIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNwYXJzZVJlc2lkZW5j
eSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJbWFnZVNwYXJzZURyZWZH
YXRoZXIiLAotICAgICAgIm9wY29kZSIgOiAzMTUsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAg
ICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklk
UmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibmFtZSIgOiAiJ1NhbXBsZWQgSW1hZ2UnIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0Nvb3Jk
aW5hdGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibmFtZSIgOiAiJ0R+cmVmficiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklt
YWdlT3BlcmFuZHMiLCAicXVhbnRpZmllciIgOiAiPyIgfQotICAgICAgXSwKLSAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU3BhcnNlUmVzaWRlbmN5IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEltYWdlU3BhcnNlVGV4ZWxzUmVzaWRlbnQiLAotICAgICAgIm9wY29kZSIg
OiAzMTYsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3Vs
dFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlZiIsICAgICAgICAibmFtZSIgOiAiJ1Jlc2lkZW50IENvZGUnIiB9Ci0gICAg
ICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTcGFyc2VSZXNpZGVuY3kiIF0KLSAgICB9
LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wTm9MaW5lIiwKLSAgICAgICJvcGNvZGUiIDog
MzE3Ci0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEF0b21pY0ZsYWdUZXN0QW5k
U2V0IiwKLSAgICAgICJvcGNvZGUiIDogMzE4LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJl
c3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAibmFtZSIg
OiAiJ1BvaW50ZXInIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICAg
ICJuYW1lIiA6ICInU2NvcGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZE1lbW9yeVNlbWFu
dGljcyIsICJuYW1lIiA6ICInU2VtYW50aWNzJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cEF0b21pY0ZsYWdDbGVhciIsCi0gICAgICAib3Bjb2RlIiA6IDMxOSwKLSAgICAgICJvcGVyYW5k
cyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgICAgIm5hbWUiIDog
IidQb2ludGVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAgICAi
bmFtZSIgOiAiJ1Njb3BlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRNZW1vcnlTZW1hbnRp
Y3MiLCAibmFtZSIgOiAiJ1NlbWFudGljcyciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIktlcm5lbCIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BJ
bWFnZVNwYXJzZVJlYWQiLAotICAgICAgIm9wY29kZSIgOiAzMjAsCi0gICAgICAib3BlcmFuZHMi
IDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiJ0ltYWdlJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZWYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIidDb29y
ZGluYXRlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSW1hZ2VPcGVyYW5kcyIsICJxdWFudGlm
aWVyIiA6ICI/IiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTcGFyc2VS
ZXNpZGVuY3kiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU2l6ZU9mIiwK
LSAgICAgICJvcGNvZGUiIDogMzIxLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIg
fSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQb2ludGVy
JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiQWRkcmVzc2VzIiBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFR5cGVQaXBlU3RvcmFnZSIsCi0gICAg
ICAib3Bjb2RlIiA6IDMyMiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQi
IDogIklkUmVzdWx0IiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJQaXBl
U3RvcmFnZSIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BDb25zdGFudFBp
cGVTdG9yYWdlIiwKLSAgICAgICJvcGNvZGUiIDogMzIzLAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFt
ZSIgOiAiJ1BhY2tldCBTaXplJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVn
ZXIiLCAibmFtZSIgOiAiJ1BhY2tldCBBbGlnbm1lbnQnIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInQ2FwYWNpdHknIiB9Ci0gICAgICBdLAotICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJQaXBlU3RvcmFnZSIgXQotICAgIH0sCi0gICAgewotICAg
ICAgIm9wbmFtZSIgOiAiT3BDcmVhdGVQaXBlRnJvbVBpcGVTdG9yYWdlIiwKLSAgICAgICJvcGNv
ZGUiIDogMzI0LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRS
ZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQaXBlIFN0b3JhZ2UnIiB9Ci0g
ICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJQaXBlU3RvcmFnZSIgXQotICAgIH0s
Ci0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHZXRLZXJuZWxMb2NhbFNpemVGb3JTdWJncm91
cENvdW50IiwKLSAgICAgICJvcGNvZGUiIDogMzI1LAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAg
ICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDog
IidTdWJncm91cCBDb3VudCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAg
ICJuYW1lIiA6ICInSW52b2tlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAg
ICAgIm5hbWUiIDogIidQYXJhbSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAg
ICAgICJuYW1lIiA6ICInUGFyYW0gU2l6ZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVm
IiwgICAgICAgICJuYW1lIiA6ICInUGFyYW0gQWxpZ24nIiB9Ci0gICAgICBdLAotICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJTdWJncm91cERpc3BhdGNoIiBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcEdldEtlcm5lbE1heE51bVN1Ymdyb3VwcyIsCi0gICAgICAib3Bjb2Rl
IiA6IDMyNiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVz
dWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInSW52b2tlJyIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgIm5hbWUiIDogIidQYXJhbSciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFyYW0gU2l6ZSciIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICJuYW1lIiA6ICInUGFyYW0gQWxpZ24n
IiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdWJncm91cERpc3BhdGNo
IiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFR5cGVOYW1lZEJhcnJpZXIi
LAotICAgICAgIm9wY29kZSIgOiAzMjcsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdCIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiTmFtZWRCYXJyaWVyIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcE5h
bWVkQmFycmllckluaXRpYWxpemUiLAotICAgICAgIm9wY29kZSIgOiAzMjgsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAg
ICAgICAibmFtZSIgOiAiJ1N1Ymdyb3VwIENvdW50JyIgfQotICAgICAgXSwKLSAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiTmFtZWRCYXJyaWVyIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3Bu
YW1lIiA6ICJPcE1lbW9yeU5hbWVkQmFycmllciIsCi0gICAgICAib3Bjb2RlIiA6IDMyOSwKLSAg
ICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
ICAgIm5hbWUiIDogIidOYW1lZCBCYXJyaWVyJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRT
Y29wZSIsICAgICAgICAgICAibmFtZSIgOiAiJ01lbW9yeSciIH0sCi0gICAgICAgIHsgImtpbmQi
IDogIklkTWVtb3J5U2VtYW50aWNzIiwgIm5hbWUiIDogIidTZW1hbnRpY3MnIiB9Ci0gICAgICBd
LAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJOYW1lZEJhcnJpZXIiIF0KLSAgICB9LAotICAg
IHsKLSAgICAgICJvcG5hbWUiIDogIk9wTW9kdWxlUHJvY2Vzc2VkIiwKLSAgICAgICJvcGNvZGUi
IDogMzMwLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJh
bFN0cmluZyIsICJuYW1lIiA6ICInUHJvY2VzcyciIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsK
LSAgICAgICJvcG5hbWUiIDogIk9wRXhlY3V0aW9uTW9kZUlkIiwKLSAgICAgICJvcGNvZGUiIDog
MzMxLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAg
ICAgICAgICAgIm5hbWUiIDogIidFbnRyeSBQb2ludCciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IkV4ZWN1dGlvbk1vZGUiLCAgICJuYW1lIiA6ICInTW9kZSciIH0KLSAgICAgIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wRGVjb3JhdGVJZCIsCi0gICAgICAib3Bjb2RlIiA6
IDMzMiwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
ICAgICAibmFtZSIgOiAiJ1RhcmdldCciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkRlY29yYXRp
b24iIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU3ViZ3Jv
dXBCYWxsb3RLSFIiLAotICAgICAgIm9wY29kZSIgOiA0NDIxLAotICAgICAgIm9wZXJhbmRzIiA6
IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAibmFtZSIgOiAi
J1ByZWRpY2F0ZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN1Ymdy
b3VwQmFsbG90S0hSIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcFN1Ymdy
b3VwRmlyc3RJbnZvY2F0aW9uS0hSIiwKLSAgICAgICJvcGNvZGUiIDogNDQyMiwKLSAgICAgICJv
cGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAg
ICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwg
Im5hbWUiIDogIidWYWx1ZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlN1Ymdyb3VwQmFsbG90S0hSIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJP
cFN1Ymdyb3VwQWxsS0hSIiwKLSAgICAgICJvcGNvZGUiIDogNDQyOCwKLSAgICAgICJvcGVyYW5k
cyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUi
IDogIidQcmVkaWNhdGUnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJT
dWJncm91cFZvdGVLSFIiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU3Vi
Z3JvdXBBbnlLSFIiLAotICAgICAgIm9wY29kZSIgOiA0NDI5LAotICAgICAgIm9wZXJhbmRzIiA6
IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5k
IiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAibmFtZSIgOiAi
J1ByZWRpY2F0ZSciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN1Ymdy
b3VwVm90ZUtIUiIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BTdWJncm91
cEFsbEVxdWFsS0hSIiwKLSAgICAgICJvcGNvZGUiIDogNDQzMCwKLSAgICAgICJvcGVyYW5kcyIg
OiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDog
IidQcmVkaWNhdGUnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdWJn
cm91cFZvdGVLSFIiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wU3ViZ3Jv
dXBSZWFkSW52b2NhdGlvbktIUiIsCi0gICAgICAib3Bjb2RlIiA6IDQ0MzIsCi0gICAgICAib3Bl
cmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJu
YW1lIiA6ICInVmFsdWUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJuYW1lIiA6
ICInSW5kZXgnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdWJncm91
cEJhbGxvdEtIUiIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHcm91cElB
ZGROb25Vbmlmb3JtQU1EIiwKLSAgICAgICJvcGNvZGUiIDogNTAwMCwKLSAgICAgICJvcGVyYW5k
cyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAi
a2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAg
ICAgIm5hbWUiIDogIidFeGVjdXRpb24nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJHcm91cE9w
ZXJhdGlvbiIsICJuYW1lIiA6ICInT3BlcmF0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ1gnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJHcm91cHMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDog
Ik9wR3JvdXBGQWRkTm9uVW5pZm9ybUFNRCIsCi0gICAgICAib3Bjb2RlIiA6IDUwMDEsCi0gICAg
ICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0g
ICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFNj
b3BlIiwgICAgICAgICJuYW1lIiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiR3JvdXBPcGVyYXRpb24iLCAibmFtZSIgOiAiJ09wZXJhdGlvbiciIH0sCi0gICAgICAgIHsg
ImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgIm5hbWUiIDogIidYJyIgfQotICAgICAgXSwKLSAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR3JvdXBzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEdyb3VwRk1pbk5vblVuaWZvcm1BTUQiLAotICAgICAgIm9wY29kZSIgOiA1
MDAyLAotICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRU
eXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiSWRTY29wZSIsICAgICAgICAibmFtZSIgOiAiJ0V4ZWN1dGlvbiciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIkdyb3VwT3BlcmF0aW9uIiwgIm5hbWUiIDogIidPcGVyYXRpb24nIiB9LAot
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICAgICAgICAgICJuYW1lIiA6ICInWCciIH0KLSAg
ICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkdyb3VwcyIgXQotICAgIH0sCi0gICAg
ewotICAgICAgIm9wbmFtZSIgOiAiT3BHcm91cFVNaW5Ob25Vbmlmb3JtQU1EIiwKLSAgICAgICJv
cGNvZGUiIDogNTAwMywKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAg
ICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAgICAgICAgIm5hbWUiIDogIidFeGVjdXRpb24nIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJHcm91cE9wZXJhdGlvbiIsICJuYW1lIiA6ICInT3BlcmF0
aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAi
J1gnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHcm91cHMiIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUiIDogIk9wR3JvdXBTTWluTm9uVW5pZm9ybUFNRCIs
Ci0gICAgICAib3Bjb2RlIiA6IDUwMDQsCi0gICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7
ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFNjb3BlIiwgICAgICAgICJuYW1lIiA6ICInRXhl
Y3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiR3JvdXBPcGVyYXRpb24iLCAibmFtZSIg
OiAiJ09wZXJhdGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAg
Im5hbWUiIDogIidYJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR3Jv
dXBzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAib3BuYW1lIiA6ICJPcEdyb3VwRk1heE5vblVu
aWZvcm1BTUQiLAotICAgICAgIm9wY29kZSIgOiA1MDA1LAotICAgICAgIm9wZXJhbmRzIiA6IFsK
LSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9LAotICAgICAgICB7ICJraW5kIiA6
ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRTY29wZSIsICAgICAgICAibmFt
ZSIgOiAiJ0V4ZWN1dGlvbiciIH0sCi0gICAgICAgIHsgImtpbmQiIDogIkdyb3VwT3BlcmF0aW9u
IiwgIm5hbWUiIDogIidPcGVyYXRpb24nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICAgICAgICAgICJuYW1lIiA6ICInWCciIH0KLSAgICAgIF0sCi0gICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIkdyb3VwcyIgXQotICAgIH0sCi0gICAgewotICAgICAgIm9wbmFtZSIgOiAiT3BHcm91
cFVNYXhOb25Vbmlmb3JtQU1EIiwKLSAgICAgICJvcGNvZGUiIDogNTAwNiwKLSAgICAgICJvcGVy
YW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0VHlwZSIgfSwKLSAgICAgICAg
eyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtpbmQiIDogIklkU2NvcGUiLCAg
ICAgICAgIm5hbWUiIDogIidFeGVjdXRpb24nIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJHcm91
cE9wZXJhdGlvbiIsICJuYW1lIiA6ICInT3BlcmF0aW9uJyIgfSwKLSAgICAgICAgeyAia2luZCIg
OiAiSWRSZWYiLCAgICAgICAgICAibmFtZSIgOiAiJ1gnIiB9Ci0gICAgICBdLAotICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJHcm91cHMiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJvcG5hbWUi
IDogIk9wR3JvdXBTTWF4Tm9uVW5pZm9ybUFNRCIsCi0gICAgICAib3Bjb2RlIiA6IDUwMDcsCi0g
ICAgICAib3BlcmFuZHMiIDogWwotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdFR5cGUiIH0s
Ci0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0IiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJ
ZFNjb3BlIiwgICAgICAgICJuYW1lIiA6ICInRXhlY3V0aW9uJyIgfSwKLSAgICAgICAgeyAia2lu
ZCIgOiAiR3JvdXBPcGVyYXRpb24iLCAibmFtZSIgOiAiJ09wZXJhdGlvbiciIH0sCi0gICAgICAg
IHsgImtpbmQiIDogIklkUmVmIiwgICAgICAgICAgIm5hbWUiIDogIidYJyIgfQotICAgICAgXSwK
LSAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR3JvdXBzIiBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAib3BuYW1lIiA6ICJPcEZyYWdtZW50TWFza0ZldGNoQU1EIiwKLSAgICAgICJvcGNvZGUiIDog
NTAxMSwKLSAgICAgICJvcGVyYW5kcyIgOiBbCi0gICAgICAgIHsgImtpbmQiIDogIklkUmVzdWx0
VHlwZSIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHQiIH0sCi0gICAgICAgIHsgImtp
bmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidJbWFnZSciIH0sCi0gICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgIm5hbWUiIDogIidDb29yZGluYXRlJyIgfQotICAgICAgXSwKLSAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiRnJhZ21lbnRNYXNrQU1EIiBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
b3BuYW1lIiA6ICJPcEZyYWdtZW50RmV0Y2hBTUQiLAotICAgICAgIm9wY29kZSIgOiA1MDEyLAot
ICAgICAgIm9wZXJhbmRzIiA6IFsKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZXN1bHRUeXBlIiB9
LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlc3VsdCIgfSwKLSAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAibmFtZSIgOiAiJ0ltYWdlJyIgfSwKLSAgICAgICAgeyAia2luZCIgOiAiSWRSZWYi
LCAibmFtZSIgOiAiJ0Nvb3JkaW5hdGUnIiB9LAotICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIs
ICJuYW1lIiA6ICInRnJhZ21lbnQgSW5kZXgnIiB9Ci0gICAgICBdLAotICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJGcmFnbWVudE1hc2tBTUQiIF0KLSAgICB9Ci0gIF0sCi0gICJvcGVyYW5kX2tp
bmRzIiA6IFsKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIkJpdEVudW0iLAotICAgICAgImtp
bmQiIDogIkltYWdlT3BlcmFuZHMiLAotICAgICAgImVudW1lcmFudHMiIDogWwotICAgICAgICB7
Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiTm9uZSIsCi0gICAgICAgICAgInZhbHVlIiA6ICIw
eDAwMDAiCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJC
aWFzIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMSIsCi0gICAgICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJTaGFkZXIiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAg
ICAgICAgeyAia2luZCIgOiAiSWRSZWYiIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJMb2QiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAiMHgwMDAyIiwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJr
aW5kIiA6ICJJZFJlZiIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICJlbnVtZXJhbnQiIDogIkdyYWQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDA0
IiwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIgfSwKLSAgICAgICAgICAgIHsgImtpbmQiIDogIklkUmVmIiB9Ci0gICAgICAgICAgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ29uc3RPZmZz
ZXQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDA4IiwKLSAgICAgICAgICAicGFyYW1ldGVy
cyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIgfQotICAgICAgICAgIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk9mZnNldCIsCi0g
ICAgICAgICAgInZhbHVlIiA6ICIweDAwMTAiLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiSW1hZ2VHYXRoZXJFeHRlbmRlZCIgXSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0g
ICAgICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkNvbnN0T2Zmc2V0cyIsCi0gICAg
ICAgICAgInZhbHVlIiA6ICIweDAwMjAiLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6IFsKLSAg
ICAgICAgICAgIHsgImtpbmQiIDogIklkUmVmIiB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU2FtcGxlIiwKLSAgICAgICAgICAi
dmFsdWUiIDogIjB4MDA0MCIsCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAg
ICAgeyAia2luZCIgOiAiSWRSZWYiIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJNaW5Mb2QiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAiMHgwMDgwIiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIk1pbkxvZCIgXSwKLSAg
ICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIg
fQotICAgICAgICAgIF0KLSAgICAgICAgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAg
ImNhdGVnb3J5IiA6ICJCaXRFbnVtIiwKLSAgICAgICJraW5kIiA6ICJGUEZhc3RNYXRoTW9kZSIs
Ci0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJOb25lIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMCIKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk5vdE5hTiIsCi0gICAgICAgICAgInZh
bHVlIiA6ICIweDAwMDEiLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJOb3RJbmYi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDAyIiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiTlNaIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwNCIsCi0gICAgICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICJlbnVtZXJhbnQiIDogIkFsbG93UmVjaXAiLAotICAgICAgICAgICJ2YWx1ZSIgOiAi
MHgwMDA4IiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRmFzdCIsCi0gICAgICAg
ICAgInZhbHVlIiA6ICIweDAwMTAiLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2Vy
bmVsIiBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29y
eSIgOiAiQml0RW51bSIsCi0gICAgICAia2luZCIgOiAiU2VsZWN0aW9uQ29udHJvbCIsCi0gICAg
ICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJO
b25lIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMCIKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkZsYXR0ZW4iLAotICAgICAgICAgICJ2YWx1ZSIg
OiAiMHgwMDAxIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiRG9udEZsYXR0ZW4iLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDAyIgotICAgICAgICB9
Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIkJpdEVudW0iLAot
ICAgICAgImtpbmQiIDogIkxvb3BDb250cm9sIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk5vbmUiLAotICAgICAgICAgICJ2YWx1
ZSIgOiAiMHgwMDAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFu
dCIgOiAiVW5yb2xsIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMSIKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkRvbnRVbnJvbGwiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiAiMHgwMDAyIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiRGVwZW5kZW5jeUluZmluaXRlIiwKLSAgICAgICAgICAidmFsdWUiIDog
IjB4MDAwNCIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDog
IkRlcGVuZGVuY3lMZW5ndGgiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDA4IiwKLSAgICAg
ICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50
ZWdlciIgfQotICAgICAgICAgIF0KLQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAiY2F0ZWdvcnkiIDogIkJpdEVudW0iLAotICAgICAgImtpbmQiIDogIkZ1bmN0aW9u
Q29udHJvbCIsCi0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJOb25lIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMCIKLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIklubGluZSIsCi0gICAg
ICAgICAgInZhbHVlIiA6ICIweDAwMDEiCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJEb250SW5saW5lIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAw
MiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlB1cmUi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDA0IgotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiQ29uc3QiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgw
MDA4IgotICAgICAgICB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnki
IDogIkJpdEVudW0iLAotICAgICAgImtpbmQiIDogIk1lbW9yeVNlbWFudGljcyIsCi0gICAgICAi
ZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSZWxh
eGVkIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMCIKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk5vbmUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAi
MHgwMDAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAi
QWNxdWlyZSIsCi0gICAgICAgICAgInZhbHVlIiA6ICIweDAwMDIiCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSZWxlYXNlIiwKLSAgICAgICAgICAidmFs
dWUiIDogIjB4MDAwNCIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJh
bnQiIDogIkFjcXVpcmVSZWxlYXNlIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwOCIKLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNlcXVlbnRpYWxs
eUNvbnNpc3RlbnQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDEwIgotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVW5pZm9ybU1lbW9yeSIsCi0gICAg
ICAgICAgInZhbHVlIiA6ICIweDAwNDAiLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
U2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6
ICJTdWJncm91cE1lbW9yeSIsCi0gICAgICAgICAgInZhbHVlIiA6ICIweDAwODAiCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJXb3JrZ3JvdXBNZW1vcnki
LAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMTAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiQ3Jvc3NXb3JrZ3JvdXBNZW1vcnkiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAiMHgwMjAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiQXRvbWljQ291bnRlck1lbW9yeSIsCi0gICAgICAgICAgInZhbHVlIiA6ICIw
eDA0MDAiLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiQXRvbWljU3RvcmFnZSIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW1hZ2VNZW1v
cnkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwODAwIgotICAgICAgICB9Ci0gICAgICBdCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIkJpdEVudW0iLAotICAgICAgImtpbmQi
IDogIk1lbW9yeUFjY2VzcyIsCi0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAg
ICAgICAgICAiZW51bWVyYW50IiA6ICJOb25lIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAw
MCIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlZvbGF0
aWxlIiwKLSAgICAgICAgICAidmFsdWUiIDogIjB4MDAwMSIKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkFsaWduZWQiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAiMHgwMDAyIiwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJr
aW5kIiA6ICJMaXRlcmFsSW50ZWdlciIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk5vbnRlbXBvcmFsIiwKLSAgICAgICAgICAi
dmFsdWUiIDogIjB4MDAwNCIKLSAgICAgICAgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAg
ICAgImNhdGVnb3J5IiA6ICJCaXRFbnVtIiwKLSAgICAgICJraW5kIiA6ICJLZXJuZWxQcm9maWxp
bmdJbmZvIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIk5vbmUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDAwIgotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ21kRXhlY1RpbWUiLAot
ICAgICAgICAgICJ2YWx1ZSIgOiAiMHgwMDAxIiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIktlcm5lbCIgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
Y2F0ZWdvcnkiIDogIlZhbHVlRW51bSIsCi0gICAgICAia2luZCIgOiAiU291cmNlTGFuZ3VhZ2Ui
LAotICAgICAgImVudW1lcmFudHMiIDogWwotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFu
dCIgOiAiVW5rbm93biIsCi0gICAgICAgICAgInZhbHVlIiA6IDAKLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkVTU0wiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAxCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJHTFNM
IiwKLSAgICAgICAgICAidmFsdWUiIDogMgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgImVudW1lcmFudCIgOiAiT3BlbkNMX0MiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJPcGVuQ0xfQ1BQIiwK
LSAgICAgICAgICAidmFsdWUiIDogNAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiSExTTCIsCi0gICAgICAgICAgInZhbHVlIiA6IDUKLSAgICAgICAgfQot
ICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0iLAot
ICAgICAgImtpbmQiIDogIkV4ZWN1dGlvbk1vZGVsIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlZlcnRleCIsCi0gICAgICAgICAg
InZhbHVlIiA6IDAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlRlc3NlbGxhdGlv
bkNvbnRyb2wiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxLAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiVGVzc2VsbGF0aW9uIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJUZXNzZWxsYXRpb25FdmFsdWF0aW9uIiwKLSAgICAgICAgICAidmFs
dWUiIDogMiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlRlc3NlbGxhdGlvbiIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiR2VvbWV0cnki
LAotICAgICAgICAgICJ2YWx1ZSIgOiAzLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
R2VvbWV0cnkiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkZyYWdtZW50IiwKLSAgICAgICAgICAidmFsdWUiIDogNCwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiR0xDb21wdXRlIiwKLSAgICAgICAgICAidmFsdWUiIDogNSwKLSAgICAg
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiS2VybmVsIiwKLSAgICAgICAgICAidmFsdWUiIDog
NiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9Ci0g
ICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIlZhbHVlRW51bSIsCi0g
ICAgICAia2luZCIgOiAiQWRkcmVzc2luZ01vZGVsIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkxvZ2ljYWwiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAwCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJQaHlzaWNhbDMyIiwKLSAgICAgICAgICAidmFsdWUiIDogMSwKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIkFkZHJlc3NlcyIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiUGh5c2ljYWw2NCIsCi0gICAgICAgICAgInZhbHVlIiA6IDIs
Ci0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJBZGRyZXNzZXMiIF0KLSAgICAgICAgfQot
ICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0iLAot
ICAgICAgImtpbmQiIDogIk1lbW9yeU1vZGVsIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNpbXBsZSIsCi0gICAgICAgICAgInZh
bHVlIiA6IDAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkdMU0w0NTAiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiAxLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVy
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJPcGVu
Q0wiLAotICAgICAgICAgICJ2YWx1ZSIgOiAyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiS2VybmVsIiBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJj
YXRlZ29yeSIgOiAiVmFsdWVFbnVtIiwKLSAgICAgICJraW5kIiA6ICJFeGVjdXRpb25Nb2RlIiwK
LSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkludm9jYXRpb25zIiwKLSAgICAgICAgICAidmFsdWUiIDogMCwKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIkdlb21ldHJ5IiBdLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6IFsK
LSAgICAgICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwgIm5hbWUiIDogIidOdW1i
ZXIgb2YgPDxJbnZvY2F0aW9uLGludm9jYXRpb25zPj4nIiB9Ci0gICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3BhY2luZ0VxdWFsIiwK
LSAgICAgICAgICAidmFsdWUiIDogMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlRl
c3NlbGxhdGlvbiIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFu
dCIgOiAiU3BhY2luZ0ZyYWN0aW9uYWxFdmVuIiwKLSAgICAgICAgICAidmFsdWUiIDogMiwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlRlc3NlbGxhdGlvbiIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3BhY2luZ0ZyYWN0aW9uYWxPZGQi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAzLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
VGVzc2VsbGF0aW9uIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJWZXJ0ZXhPcmRlckN3IiwKLSAgICAgICAgICAidmFsdWUiIDogNCwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlRlc3NlbGxhdGlvbiIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVmVydGV4T3JkZXJDY3ciLAotICAgICAgICAg
ICJ2YWx1ZSIgOiA1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiVGVzc2VsbGF0aW9u
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJQaXhl
bENlbnRlckludGVnZXIiLAotICAgICAgICAgICJ2YWx1ZSIgOiA2LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJPcmlnaW5VcHBlckxlZnQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA3
LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJPcmlnaW5Mb3dlckxlZnQiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVy
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJFYXJs
eUZyYWdtZW50VGVzdHMiLAotICAgICAgICAgICJ2YWx1ZSIgOiA5LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJQb2ludE1vZGUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMCwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlRlc3NlbGxhdGlvbiIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiWGZiIiwKLSAgICAgICAgICAidmFs
dWUiIDogMTEsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJUcmFuc2Zvcm1GZWVkYmFj
ayIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRGVw
dGhSZXBsYWNpbmciLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMiwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiRGVwdGhHcmVhdGVyIiwKLSAgICAgICAgICAidmFsdWUiIDogMTQsCi0g
ICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkRlcHRoTGVzcyIsCi0gICAgICAgICAgInZh
bHVlIiA6IDE1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJEZXB0aFVuY2hhbmdl
ZCIsCi0gICAgICAgICAgInZhbHVlIiA6IDE2LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJMb2NhbFNpemUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxNywKLSAgICAgICAgICAicGFy
YW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJu
YW1lIiA6ICIneCBzaXplJyIgfSwKLSAgICAgICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRl
Z2VyIiwgIm5hbWUiIDogIid5IHNpemUnIiB9LAotICAgICAgICAgICAgeyAia2luZCIgOiAiTGl0
ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ3ogc2l6ZSciIH0KLSAgICAgICAgICBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJMb2NhbFNpemVIaW50IiwK
LSAgICAgICAgICAidmFsdWUiIDogMTgsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJL
ZXJuZWwiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2lu
ZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ3ggc2l6ZSciIH0sCi0gICAgICAgICAg
ICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICIneSBzaXplJyIgfSwKLSAg
ICAgICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwgIm5hbWUiIDogIid6IHNpemUn
IiB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiSW5wdXRQb2ludHMiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxOSwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIkdlb21ldHJ5IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbnB1dExpbmVzIiwKLSAgICAgICAgICAidmFsdWUi
IDogMjAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHZW9tZXRyeSIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW5wdXRMaW5lc0FkamFj
ZW5jeSIsCi0gICAgICAgICAgInZhbHVlIiA6IDIxLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiR2VvbWV0cnkiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVt
ZXJhbnQiIDogIlRyaWFuZ2xlcyIsCi0gICAgICAgICAgInZhbHVlIiA6IDIyLAotICAgICAgICAg
ICJjYXBhYmlsaXRpZXMiIDogWyAiR2VvbWV0cnkiLCAiVGVzc2VsbGF0aW9uIiBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbnB1dFRyaWFuZ2xlc0Fk
amFjZW5jeSIsCi0gICAgICAgICAgInZhbHVlIiA6IDIzLAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiR2VvbWV0cnkiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIlF1YWRzIiwKLSAgICAgICAgICAidmFsdWUiIDogMjQsCi0gICAgICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJUZXNzZWxsYXRpb24iIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIklzb2xpbmVzIiwKLSAgICAgICAgICAidmFsdWUi
IDogMjUsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJUZXNzZWxsYXRpb24iIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk91dHB1dFZlcnRp
Y2VzIiwKLSAgICAgICAgICAidmFsdWUiIDogMjYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIg
OiBbICJHZW9tZXRyeSIsICJUZXNzZWxsYXRpb24iIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMi
IDogWwotICAgICAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAi
J1ZlcnRleCBjb3VudCciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAg
ICAgICAgICAiZW51bWVyYW50IiA6ICJPdXRwdXRQb2ludHMiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAyNywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkdlb21ldHJ5IiBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJPdXRwdXRMaW5lU3RyaXAi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAyOCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
Ikdlb21ldHJ5IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJPdXRwdXRUcmlhbmdsZVN0cmlwIiwKLSAgICAgICAgICAidmFsdWUiIDogMjksCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHZW9tZXRyeSIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVmVjVHlwZUhpbnQiLAotICAgICAgICAgICJ2
YWx1ZSIgOiAzMCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXSwKLSAg
ICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFs
SW50ZWdlciIsICJuYW1lIiA6ICInVmVjdG9yIHR5cGUnIiB9Ci0gICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ29udHJhY3Rpb25PZmYi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAzMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
Iktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiSW5pdGlhbGl6ZXIiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzMywKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgImVudW1lcmFudCIgOiAiRmluYWxpemVyIiwKLSAgICAgICAgICAidmFsdWUiIDogMzQsCi0g
ICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN1Ymdyb3VwU2l6ZSIsCi0gICAgICAgICAg
InZhbHVlIiA6IDM1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3ViZ3JvdXBEaXNw
YXRjaCIgXSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5k
IiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInU3ViZ3JvdXAgU2l6ZSciIH0KLSAgICAg
ICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJT
dWJncm91cHNQZXJXb3JrZ3JvdXAiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzNiwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN1Ymdyb3VwRGlzcGF0Y2giIF0sCi0gICAgICAgICAgInBh
cmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAi
bmFtZSIgOiAiJ1N1Ymdyb3VwcyBQZXIgV29ya2dyb3VwJyIgfQotICAgICAgICAgIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN1Ymdyb3Vwc1Blcldv
cmtncm91cElkIiwKLSAgICAgICAgICAidmFsdWUiIDogMzcsCi0gICAgICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJTdWJncm91cERpc3BhdGNoIiBdLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6
IFsKLSAgICAgICAgICAgIHsgImtpbmQiIDogIklkUmVmIiwgIm5hbWUiIDogIidTdWJncm91cHMg
UGVyIFdvcmtncm91cCciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAg
ICAgICAgICAiZW51bWVyYW50IiA6ICJMb2NhbFNpemVJZCIsCi0gICAgICAgICAgInZhbHVlIiA6
IDM4LAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6IFsKLSAgICAgICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgIm5hbWUiIDogIid4IHNpemUnIiB9LAotICAgICAgICAgICAgeyAia2luZCIgOiAi
SWRSZWYiLCAibmFtZSIgOiAiJ3kgc2l6ZSciIH0sCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJJ
ZFJlZiIsICJuYW1lIiA6ICIneiBzaXplJyIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkxvY2FsU2l6ZUhpbnRJZCIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDM5LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVs
IiBdLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6IFsKLSAgICAgICAgICAgIHsgImtpbmQiIDog
IklkUmVmIiwgIm5hbWUiIDogIidMb2NhbCBTaXplIEhpbnQnIiB9Ci0gICAgICAgICAgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUG9zdERlcHRoQ292
ZXJhZ2UiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDQ2LAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiU2FtcGxlTWFza1Bvc3REZXB0aENvdmVyYWdlIiBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTdGVuY2lsUmVmUmVwbGFjaW5nRVhUIiwK
LSAgICAgICAgICAidmFsdWUiIDogNTAyNywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlN0ZW5jaWxFeHBvcnRFWFQiIF0KLSAgICAgICAgfQotICAgICAgXQotICAgIH0sCi0gICAgewot
ICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0iLAotICAgICAgImtpbmQiIDogIlN0b3JhZ2VD
bGFzcyIsCi0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJVbmlmb3JtQ29uc3RhbnQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAwCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbnB1dCIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDEKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVt
ZXJhbnQiIDogIlVuaWZvcm0iLAotICAgICAgICAgICJ2YWx1ZSIgOiAyLAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJPdXRwdXQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzLAotICAg
ICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJXb3JrZ3JvdXAiLAotICAgICAgICAgICJ2YWx1
ZSIgOiA0Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJD
cm9zc1dvcmtncm91cCIsCi0gICAgICAgICAgInZhbHVlIiA6IDUKLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlByaXZhdGUiLAotICAgICAgICAgICJ2YWx1
ZSIgOiA2LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJGdW5jdGlvbiIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDcKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVt
ZXJhbnQiIDogIkdlbmVyaWMiLAotICAgICAgICAgICJ2YWx1ZSIgOiA4LAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiR2VuZXJpY1BvaW50ZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlB1c2hDb25zdGFudCIsCi0gICAgICAgICAgInZh
bHVlIiA6IDksCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkF0b21pY0NvdW50ZXIi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAxMCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IkF0b21pY1N0b3JhZ2UiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVt
ZXJhbnQiIDogIkltYWdlIiwKLSAgICAgICAgICAidmFsdWUiIDogMTEKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN0b3JhZ2VCdWZmZXIiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiAxMiwKLSAgICAgICAgICAiZXh0ZW5zaW9ucyIgOiBbCi0gICAgICAgICAg
ICAiU1BWX0tIUl9zdG9yYWdlX2J1ZmZlcl9zdG9yYWdlX2NsYXNzIiwKLSAgICAgICAgICAgICJT
UFZfS0hSX3ZhcmlhYmxlX3BvaW50ZXJzIgotICAgICAgICAgIF0sCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfQotICAgICAgXQotICAgIH0sCi0gICAg
ewotICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0iLAotICAgICAgImtpbmQiIDogIkRpbSIs
Ci0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICIxRCIsCi0gICAgICAgICAgInZhbHVlIiA6IDAsCi0gICAgICAgICAgImNhcGFiaWxpdGll
cyIgOiBbICJTYW1wbGVkMUQiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIjJEIiwKLSAgICAgICAgICAidmFsdWUiIDogMQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiM0QiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAyCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJDdWJl
IiwKLSAgICAgICAgICAidmFsdWUiIDogMywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiUmVjdCIsCi0gICAgICAgICAgInZhbHVlIiA6IDQsCi0gICAgICAgICAgImNhcGFiaWxpdGll
cyIgOiBbICJTYW1wbGVkUmVjdCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiQnVmZmVyIiwKLSAgICAgICAgICAidmFsdWUiIDogNSwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNhbXBsZWRCdWZmZXIiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN1YnBhc3NEYXRhIiwKLSAgICAgICAgICAi
dmFsdWUiIDogNiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIklucHV0QXR0YWNobWVu
dCIgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnki
IDogIlZhbHVlRW51bSIsCi0gICAgICAia2luZCIgOiAiU2FtcGxlckFkZHJlc3NpbmdNb2RlIiwK
LSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIk5vbmUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAwLAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJDbGFtcFRvRWRnZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDEsCi0gICAgICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICJlbnVtZXJhbnQiIDogIkNsYW1wIiwKLSAgICAgICAgICAidmFsdWUiIDogMiwK
LSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmVwZWF0IiwKLSAgICAgICAgICAidmFs
dWUiIDogMywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmVwZWF0TWlycm9yZWQi
LAotICAgICAgICAgICJ2YWx1ZSIgOiA0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
S2VybmVsIiBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRl
Z29yeSIgOiAiVmFsdWVFbnVtIiwKLSAgICAgICJraW5kIiA6ICJTYW1wbGVyRmlsdGVyTW9kZSIs
Ci0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJOZWFyZXN0IiwKLSAgICAgICAgICAidmFsdWUiIDogMCwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiTGluZWFyIiwKLSAgICAgICAgICAidmFsdWUiIDogMSwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIlZhbHVlRW51bSIsCi0gICAgICAia2luZCIg
OiAiSW1hZ2VGb3JtYXQiLAotICAgICAgImVudW1lcmFudHMiIDogWwotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiVW5rbm93biIsCi0gICAgICAgICAgInZhbHVlIiA6IDAKLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnYmEzMmYiLAot
ICAgICAgICAgICJ2YWx1ZSIgOiAxLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hh
ZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJS
Z2JhMTZmIiwKLSAgICAgICAgICAidmFsdWUiIDogMiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiUjMyZiIsCi0gICAgICAgICAgInZhbHVlIiA6IDMsCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICJlbnVtZXJhbnQiIDogIlJnYmE4IiwKLSAgICAgICAgICAidmFsdWUiIDogNCwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiUmdiYThTbm9ybSIsCi0gICAgICAgICAgInZhbHVlIiA6
IDUsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnMzJmIiwKLSAgICAgICAgICAi
dmFsdWUiIDogNiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4
dGVuZGVkRm9ybWF0cyIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiUmcxNmYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA3LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5kZWRGb3JtYXRzIiBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSMTFmRzExZkIxMGYiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3RvcmFn
ZUltYWdlRXh0ZW5kZWRGb3JtYXRzIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJSMTZmIiwKLSAgICAgICAgICAidmFsdWUiIDogOSwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVkRm9ybWF0cyIgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmdiYTE2IiwKLSAg
ICAgICAgICAidmFsdWUiIDogMTAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdG9y
YWdlSW1hZ2VFeHRlbmRlZEZvcm1hdHMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICJlbnVtZXJhbnQiIDogIlJnYjEwQTIiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMSwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVkRm9ybWF0cyIg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmcxNiIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDEyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
U3RvcmFnZUltYWdlRXh0ZW5kZWRGb3JtYXRzIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAg
ICAgICAgICAiZW51bWVyYW50IiA6ICJSZzgiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMywKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVkRm9ybWF0cyIg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUjE2IiwK
LSAgICAgICAgICAidmFsdWUiIDogMTQsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJT
dG9yYWdlSW1hZ2VFeHRlbmRlZEZvcm1hdHMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICJlbnVtZXJhbnQiIDogIlI4IiwKLSAgICAgICAgICAidmFsdWUiIDogMTUsCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdG9yYWdlSW1hZ2VFeHRlbmRlZEZvcm1hdHMiIF0K
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnYmExNlNu
b3JtIiwKLSAgICAgICAgICAidmFsdWUiIDogMTYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIg
OiBbICJTdG9yYWdlSW1hZ2VFeHRlbmRlZEZvcm1hdHMiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnMTZTbm9ybSIsCi0gICAgICAgICAgInZhbHVl
IiA6IDE3LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5k
ZWRGb3JtYXRzIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJSZzhTbm9ybSIsCi0gICAgICAgICAgInZhbHVlIiA6IDE4LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5kZWRGb3JtYXRzIiBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSMTZTbm9ybSIsCi0gICAgICAg
ICAgInZhbHVlIiA6IDE5LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3RvcmFnZUlt
YWdlRXh0ZW5kZWRGb3JtYXRzIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJSOFNub3JtIiwKLSAgICAgICAgICAidmFsdWUiIDogMjAsCi0gICAgICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJTdG9yYWdlSW1hZ2VFeHRlbmRlZEZvcm1hdHMiIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnYmEzMmkiLAot
ICAgICAgICAgICJ2YWx1ZSIgOiAyMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNo
YWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAi
UmdiYTE2aSIsCi0gICAgICAgICAgInZhbHVlIiA6IDIyLAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJSZ2JhOGkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAyMywKLSAgICAgICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiUjMyaSIsCi0gICAgICAgICAgInZhbHVlIiA6IDI0LAotICAg
ICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSZzMyaSIsCi0gICAgICAgICAgInZhbHVlIiA6
IDI1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5kZWRG
b3JtYXRzIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6
ICJSZzE2aSIsCi0gICAgICAgICAgInZhbHVlIiA6IDI2LAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5kZWRGb3JtYXRzIiBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSZzhpIiwKLSAgICAgICAgICAidmFsdWUi
IDogMjcsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdG9yYWdlSW1hZ2VFeHRlbmRl
ZEZvcm1hdHMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIlIxNmkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAyOCwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVkRm9ybWF0cyIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUjhpIiwKLSAgICAgICAgICAidmFsdWUi
IDogMjksCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdG9yYWdlSW1hZ2VFeHRlbmRl
ZEZvcm1hdHMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIlJnYmEzMnVpIiwKLSAgICAgICAgICAidmFsdWUiIDogMzAsCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICJlbnVtZXJhbnQiIDogIlJnYmExNnVpIiwKLSAgICAgICAgICAidmFsdWUiIDogMzEsCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnYmE4dWkiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAzMiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUjMydWkiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAzMywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmdiMTBhMnVp
IiwKLSAgICAgICAgICAidmFsdWUiIDogMzQsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBb
ICJTdG9yYWdlSW1hZ2VFeHRlbmRlZEZvcm1hdHMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJnMzJ1aSIsCi0gICAgICAgICAgInZhbHVlIiA6IDM1
LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5kZWRGb3Jt
YXRzIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJS
ZzE2dWkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzNiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVkRm9ybWF0cyIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmc4dWkiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAzNywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVk
Rm9ybWF0cyIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiUjE2dWkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzOCwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIlN0b3JhZ2VJbWFnZUV4dGVuZGVkRm9ybWF0cyIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUjh1aSIsCi0gICAgICAgICAgInZhbHVl
IiA6IDM5LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3RvcmFnZUltYWdlRXh0ZW5k
ZWRGb3JtYXRzIiBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJj
YXRlZ29yeSIgOiAiVmFsdWVFbnVtIiwKLSAgICAgICJraW5kIiA6ICJJbWFnZUNoYW5uZWxPcmRl
ciIsCi0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJSIiwKLSAgICAgICAgICAidmFsdWUiIDogMCwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiQSIsCi0gICAgICAgICAgInZhbHVlIiA6IDEsCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICJlbnVtZXJhbnQiIDogIlJHIiwKLSAgICAgICAgICAidmFsdWUiIDogMiwKLSAgICAgICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiUkEiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzLAotICAgICAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSR0IiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0LAot
ICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSR0JBIiwKLSAgICAgICAgICAidmFsdWUi
IDogNSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQkdSQSIsCi0gICAgICAgICAg
InZhbHVlIiA6IDYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkFSR0IiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA3LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVs
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbnRl
bnNpdHkiLAotICAgICAgICAgICJ2YWx1ZSIgOiA4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJMdW1pbmFuY2UiLAotICAgICAgICAgICJ2YWx1ZSIgOiA5LAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJSeCIsCi0gICAgICAgICAgInZhbHVlIiA6IDEwLAotICAgICAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSR3giLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMSwK
LSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUkdCeCIsCi0gICAgICAgICAgInZhbHVl
IiA6IDEyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJEZXB0aCIsCi0gICAgICAg
ICAgInZhbHVlIiA6IDEzLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJEZXB0aFN0
ZW5jaWwiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxNCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAic1JHQiIsCi0gICAgICAgICAgInZhbHVlIiA6IDE1LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJzUkdCeCIsCi0gICAgICAgICAgInZhbHVlIiA6IDE2LAotICAgICAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJzUkdCQSIsCi0gICAgICAgICAgInZhbHVlIiA6IDE3
LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJzQkdSQSIsCi0gICAgICAgICAgInZh
bHVlIiA6IDE4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJBQkdSIiwKLSAgICAg
ICAgICAidmFsdWUiIDogMTksCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwi
IF0KLSAgICAgICAgfQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgImNhdGVnb3J5IiA6
ICJWYWx1ZUVudW0iLAotICAgICAgImtpbmQiIDogIkltYWdlQ2hhbm5lbERhdGFUeXBlIiwKLSAg
ICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDog
IlNub3JtSW50OCIsCi0gICAgICAgICAgInZhbHVlIiA6IDAsCi0gICAgICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIlNub3JtSW50MTYiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxLAotICAgICAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJVbm9ybUludDgiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJVbm9ybUludDE2IiwKLSAgICAg
ICAgICAidmFsdWUiIDogMywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVW5vcm1T
aG9ydDU2NSIsCi0gICAgICAgICAgInZhbHVlIiA6IDQsCi0gICAgICAgICAgImNhcGFiaWxpdGll
cyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVt
ZXJhbnQiIDogIlVub3JtU2hvcnQ1NTUiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1LAotICAgICAg
ICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJVbm9ybUludDEwMTAxMCIsCi0gICAgICAgICAgInZh
bHVlIiA6IDYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNpZ25lZEludDgiLAot
ICAgICAgICAgICJ2YWx1ZSIgOiA3LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2Vy
bmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJT
aWduZWRJbnQxNiIsCi0gICAgICAgICAgInZhbHVlIiA6IDgsCi0gICAgICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIlNpZ25lZEludDMyIiwKLSAgICAgICAgICAidmFsdWUiIDogOSwKLSAgICAg
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVW5zaWduZWRJbnQ4IiwKLSAgICAgICAgICAidmFs
dWUiIDogMTAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlVuc2lnbmVkSW50MTYi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAxMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
Iktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiVW5zaWduZWRJbnQzMiIsCi0gICAgICAgICAgInZhbHVlIiA6IDEyLAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJIYWxmRmxvYXQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMywK
LSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRmxvYXQiLAotICAgICAgICAgICJ2YWx1
ZSIgOiAxNCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVW5vcm1JbnQyNCIsCi0g
ICAgICAgICAgInZhbHVlIiA6IDE1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2Vy
bmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJV
bm9ybUludDEwMTAxMF8yIiwKLSAgICAgICAgICAidmFsdWUiIDogMTYsCi0gICAgICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfQotICAgICAgXQotICAgIH0sCi0g
ICAgewotICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0iLAotICAgICAgImtpbmQiIDogIkZQ
Um91bmRpbmdNb2RlIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAgewotICAgICAg
ICAgICJlbnVtZXJhbnQiIDogIlJURSIsCi0gICAgICAgICAgInZhbHVlIiA6IDAsCi0gICAgICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbCi0gICAgICAgICAgICAiS2VybmVsIiwKLSAgICAgICAgICAg
ICJTdG9yYWdlVW5pZm9ybUJ1ZmZlckJsb2NrMTYiLAotICAgICAgICAgICAgIlN0b3JhZ2VVbmlm
b3JtMTYiLAotICAgICAgICAgICAgIlN0b3JhZ2VQdXNoQ29uc3RhbnQxNiIsCi0gICAgICAgICAg
ICAiU3RvcmFnZUlucHV0T3V0cHV0MTYiCi0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUlRaIiwKLSAgICAgICAgICAidmFsdWUiIDog
MSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsKLSAgICAgICAgICAgICJLZXJuZWwiLAot
ICAgICAgICAgICAgIlN0b3JhZ2VVbmlmb3JtQnVmZmVyQmxvY2sxNiIsCi0gICAgICAgICAgICAi
U3RvcmFnZVVuaWZvcm0xNiIsCi0gICAgICAgICAgICAiU3RvcmFnZVB1c2hDb25zdGFudDE2IiwK
LSAgICAgICAgICAgICJTdG9yYWdlSW5wdXRPdXRwdXQxNiIKLSAgICAgICAgICBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSVFAiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWwotICAgICAgICAgICAg
Iktlcm5lbCIsCi0gICAgICAgICAgICAiU3RvcmFnZVVuaWZvcm1CdWZmZXJCbG9jazE2IiwKLSAg
ICAgICAgICAgICJTdG9yYWdlVW5pZm9ybTE2IiwKLSAgICAgICAgICAgICJTdG9yYWdlUHVzaENv
bnN0YW50MTYiLAotICAgICAgICAgICAgIlN0b3JhZ2VJbnB1dE91dHB1dDE2IgotICAgICAgICAg
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJUTiIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbCi0g
ICAgICAgICAgICAiS2VybmVsIiwKLSAgICAgICAgICAgICJTdG9yYWdlVW5pZm9ybUJ1ZmZlckJs
b2NrMTYiLAotICAgICAgICAgICAgIlN0b3JhZ2VVbmlmb3JtMTYiLAotICAgICAgICAgICAgIlN0
b3JhZ2VQdXNoQ29uc3RhbnQxNiIsCi0gICAgICAgICAgICAiU3RvcmFnZUlucHV0T3V0cHV0MTYi
Ci0gICAgICAgICAgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAi
Y2F0ZWdvcnkiIDogIlZhbHVlRW51bSIsCi0gICAgICAia2luZCIgOiAiTGlua2FnZVR5cGUiLAot
ICAgICAgImVudW1lcmFudHMiIDogWwotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiRXhwb3J0IiwKLSAgICAgICAgICAidmFsdWUiIDogMCwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIkxpbmthZ2UiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIkltcG9ydCIsCi0gICAgICAgICAgInZhbHVlIiA6IDEsCi0gICAgICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJMaW5rYWdlIiBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9
LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAiVmFsdWVFbnVtIiwKLSAgICAgICJraW5kIiA6
ICJBY2Nlc3NRdWFsaWZpZXIiLAotICAgICAgImVudW1lcmFudHMiIDogWwotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiUmVhZE9ubHkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAw
LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJXcml0ZU9ubHkiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAxLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJSZWFkV3JpdGUi
LAotICAgICAgICAgICJ2YWx1ZSIgOiAyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
S2VybmVsIiBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRl
Z29yeSIgOiAiVmFsdWVFbnVtIiwKLSAgICAgICJraW5kIiA6ICJGdW5jdGlvblBhcmFtZXRlckF0
dHJpYnV0ZSIsCi0gICAgICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJaZXh0IiwKLSAgICAgICAgICAidmFsdWUiIDogMCwKLSAgICAgICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiU2V4dCIsCi0gICAgICAgICAgInZhbHVlIiA6IDEsCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkJ5VmFsIiwKLSAgICAgICAgICAidmFsdWUiIDog
MiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3JldCIsCi0gICAgICAgICAgInZh
bHVlIiA6IDMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk5vQWxpYXMiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVs
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJOb0Nh
cHR1cmUiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJOb1dyaXRlIiwKLSAgICAgICAgICAidmFsdWUiIDogNiwKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgImVudW1lcmFudCIgOiAiTm9SZWFkV3JpdGUiLAotICAgICAgICAgICJ2YWx1ZSIgOiA3LAot
ICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0KLSAgICAg
IF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAiVmFsdWVFbnVtIiwKLSAgICAg
ICJraW5kIiA6ICJEZWNvcmF0aW9uIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJlbGF4ZWRQcmVjaXNpb24iLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAwLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTcGVjSWQiLAot
ICAgICAgICAgICJ2YWx1ZSIgOiAxLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hh
ZGVyIiwgIktlcm5lbCIgXSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAg
ICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInU3BlY2lhbGl6YXRpb24g
Q29uc3RhbnQgSUQnIiB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiQmxvY2siLAotICAgICAgICAgICJ2YWx1ZSIgOiAyLAotICAg
ICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJCdWZmZXJCbG9jayIsCi0gICAgICAgICAgInZh
bHVlIiA6IDMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlJvd01ham9yIiwKLSAg
ICAgICAgICAidmFsdWUiIDogNCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIk1hdHJp
eCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ29s
TWFqb3IiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiTWF0cml4IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJBcnJheVN0cmlkZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDYsCi0gICAgICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDog
WwotICAgICAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ0Fy
cmF5IFN0cmlkZSciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJNYXRyaXhTdHJpZGUiLAotICAgICAgICAgICJ2YWx1ZSIgOiA3
LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiTWF0cml4IiBdLAotICAgICAgICAgICJw
YXJhbWV0ZXJzIiA6IFsKLSAgICAgICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwg
Im5hbWUiIDogIidNYXRyaXggU3RyaWRlJyIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkdMU0xTaGFyZWQiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiA4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJHTFNMUGFja2Vk
IiwKLSAgICAgICAgICAidmFsdWUiIDogOSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiQ1BhY2tlZCIsCi0gICAgICAgICAgInZhbHVlIiA6IDEwLAotICAgICAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJCdWlsdEluIiwKLSAgICAgICAgICAidmFsdWUiIDogMTEsCi0gICAgICAg
ICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2luZCIgOiAiQnVpbHRJbiIgfQot
ICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIk5vUGVyc3BlY3RpdmUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMywKLSAgICAgICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiRmxhdCIsCi0gICAgICAgICAgInZhbHVlIiA6IDE0LAotICAg
ICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJQYXRjaCIsCi0gICAgICAgICAgInZhbHVlIiA6
IDE1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiVGVzc2VsbGF0aW9uIiBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJDZW50cm9pZCIsCi0g
ICAgICAgICAgInZhbHVlIiA6IDE2LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hh
ZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJT
YW1wbGUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxNywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIlNhbXBsZVJhdGVTaGFkaW5nIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJJbnZhcmlhbnQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxOCwK
LSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUmVzdHJpY3QiLAotICAgICAgICAgICJ2
YWx1ZSIgOiAxOQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiQWxpYXNlZCIsCi0gICAgICAgICAgInZhbHVlIiA6IDIwCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJWb2xhdGlsZSIsCi0gICAgICAgICAgInZhbHVl
IiA6IDIxCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJD
b25zdGFudCIsCi0gICAgICAgICAgInZhbHVlIiA6IDIyLAotICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJDb2hlcmVudCIsCi0gICAgICAgICAgInZhbHVlIiA6IDIzCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJOb25Xcml0YWJsZSIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDI0Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJOb25SZWFkYWJsZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDI1Ci0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJVbmlmb3JtIiwKLSAgICAg
ICAgICAidmFsdWUiIDogMjYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIi
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNhdHVy
YXRlZENvbnZlcnNpb24iLAotICAgICAgICAgICJ2YWx1ZSIgOiAyOCwKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgImVudW1lcmFudCIgOiAiU3RyZWFtIiwKLSAgICAgICAgICAidmFsdWUiIDogMjksCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHZW9tZXRyeVN0cmVhbXMiIF0sCi0gICAgICAgICAg
InBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbEludGVnZXIi
LCAibmFtZSIgOiAiJ1N0cmVhbSBOdW1iZXInIiB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiTG9jYXRpb24iLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAzMCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXSwK
LSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRl
cmFsSW50ZWdlciIsICJuYW1lIiA6ICInTG9jYXRpb24nIiB9Ci0gICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ29tcG9uZW50IiwKLSAg
ICAgICAgICAidmFsdWUiIDogMzEsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFk
ZXIiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2luZCIg
OiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ0NvbXBvbmVudCciIH0KLSAgICAgICAgICBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbmRleCIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDMyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
U2hhZGVyIiBdLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6IFsKLSAgICAgICAgICAgIHsgImtp
bmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwgIm5hbWUiIDogIidJbmRleCciIH0KLSAgICAgICAgICBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJCaW5kaW5n
IiwKLSAgICAgICAgICAidmFsdWUiIDogMzMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBb
ICJTaGFkZXIiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAi
a2luZCIgOiAiTGl0ZXJhbEludGVnZXIiLCAibmFtZSIgOiAiJ0JpbmRpbmcgUG9pbnQnIiB9Ci0g
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiRGVzY3JpcHRvclNldCIsCi0gICAgICAgICAgInZhbHVlIiA6IDM0LAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6IFsK
LSAgICAgICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxJbnRlZ2VyIiwgIm5hbWUiIDogIidEZXNj
cmlwdG9yIFNldCciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJPZmZzZXQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzNSwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXSwKLSAgICAgICAgICAicGFyYW1l
dGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1l
IiA6ICInQnl0ZSBPZmZzZXQnIiB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiWGZiQnVmZmVyIiwKLSAgICAgICAgICAidmFsdWUi
IDogMzYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJUcmFuc2Zvcm1GZWVkYmFjayIg
XSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJM
aXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInWEZCIEJ1ZmZlciBOdW1iZXInIiB9Ci0gICAgICAg
ICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiWGZi
U3RyaWRlIiwKLSAgICAgICAgICAidmFsdWUiIDogMzcsCi0gICAgICAgICAgImNhcGFiaWxpdGll
cyIgOiBbICJUcmFuc2Zvcm1GZWVkYmFjayIgXSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBb
Ci0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInWEZC
IFN0cmlkZSciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJGdW5jUGFyYW1BdHRyIiwKLSAgICAgICAgICAidmFsdWUiIDogMzgs
Ci0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0sCi0gICAgICAgICAgInBh
cmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2luZCIgOiAiRnVuY3Rpb25QYXJhbWV0ZXJB
dHRyaWJ1dGUiLCAibmFtZSIgOiAiJ0Z1bmN0aW9uIFBhcmFtZXRlciBBdHRyaWJ1dGUnIiB9Ci0g
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiRlBSb3VuZGluZ01vZGUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzOSwKLSAgICAgICAgICAi
Y2FwYWJpbGl0aWVzIiA6IFsKLSAgICAgICAgICAgICJLZXJuZWwiLAotICAgICAgICAgICAgIlN0
b3JhZ2VVbmlmb3JtQnVmZmVyQmxvY2sxNiIsCi0gICAgICAgICAgICAiU3RvcmFnZVVuaWZvcm0x
NiIsCi0gICAgICAgICAgICAiU3RvcmFnZVB1c2hDb25zdGFudDE2IiwKLSAgICAgICAgICAgICJT
dG9yYWdlSW5wdXRPdXRwdXQxNiIKLSAgICAgICAgICBdLAotICAgICAgICAgICJwYXJhbWV0ZXJz
IiA6IFsKLSAgICAgICAgICAgIHsgImtpbmQiIDogIkZQUm91bmRpbmdNb2RlIiwgIm5hbWUiIDog
IidGbG9hdGluZy1Qb2ludCBSb3VuZGluZyBNb2RlJyIgfQotICAgICAgICAgIF0KLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkZQRmFzdE1hdGhNb2RlIiwK
LSAgICAgICAgICAidmFsdWUiIDogNDAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJL
ZXJuZWwiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2lu
ZCIgOiAiRlBGYXN0TWF0aE1vZGUiLCAibmFtZSIgOiAiJ0Zhc3QtTWF0aCBNb2RlJyIgfQotICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDog
IkxpbmthZ2VBdHRyaWJ1dGVzIiwKLSAgICAgICAgICAidmFsdWUiIDogNDEsCi0gICAgICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJMaW5rYWdlIiBdLAotICAgICAgICAgICJwYXJhbWV0ZXJzIiA6
IFsKLSAgICAgICAgICAgIHsgImtpbmQiIDogIkxpdGVyYWxTdHJpbmciLCAibmFtZSIgOiAiJ05h
bWUnIiB9LAotICAgICAgICAgICAgeyAia2luZCIgOiAiTGlua2FnZVR5cGUiLCAgICJuYW1lIiA6
ICInTGlua2FnZSBUeXBlJyIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICJlbnVtZXJhbnQiIDogIk5vQ29udHJhY3Rpb24iLAotICAgICAgICAgICJ2YWx1
ZSIgOiA0MiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW5wdXRBdHRhY2htZW50
SW5kZXgiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0MywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIklucHV0QXR0YWNobWVudCIgXSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0g
ICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJuYW1lIiA6ICInQXR0YWNo
bWVudCBJbmRleCciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJBbGlnbm1lbnQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NCwK
LSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXSwKLSAgICAgICAgICAicGFy
YW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsICJu
YW1lIiA6ICInQWxpZ25tZW50JyIgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk1heEJ5dGVPZmZzZXQiLAotICAgICAgICAgICJ2
YWx1ZSIgOiA0NSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkFkZHJlc3NlcyIgXSwK
LSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAgICAgICAgICB7ICJraW5kIiA6ICJMaXRl
cmFsSW50ZWdlciIsICJuYW1lIiA6ICInTWF4IEJ5dGUgT2Zmc2V0JyIgfQotICAgICAgICAgIF0K
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkFsaWdubWVu
dElkIiwKLSAgICAgICAgICAidmFsdWUiIDogNDYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIg
OiBbICJLZXJuZWwiIF0sCi0gICAgICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAg
eyAia2luZCIgOiAiSWRSZWYiLCAibmFtZSIgOiAiJ0FsaWdubWVudCciIH0KLSAgICAgICAgICBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJNYXhCeXRl
T2Zmc2V0SWQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NywKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIkFkZHJlc3NlcyIgXSwKLSAgICAgICAgICAicGFyYW1ldGVycyIgOiBbCi0gICAg
ICAgICAgICB7ICJraW5kIiA6ICJJZFJlZiIsICJuYW1lIiA6ICInTWF4IEJ5dGUgT2Zmc2V0JyIg
fQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJh
bnQiIDogIkV4cGxpY2l0SW50ZXJwQU1EIiwKLSAgICAgICAgICAidmFsdWUiIDogNDk5OQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiT3ZlcnJpZGVDb3Zl
cmFnZU5WIiwKLSAgICAgICAgICAidmFsdWUiIDogNTI0OCwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIlNhbXBsZU1hc2tPdmVycmlkZUNvdmVyYWdlTlYiIF0KLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlBhc3N0aHJvdWdoTlYiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiA1MjUwLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR2VvbWV0
cnlTaGFkZXJQYXNzdGhyb3VnaE5WIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJWaWV3cG9ydFJlbGF0aXZlTlYiLAotICAgICAgICAgICJ2YWx1ZSIg
OiA1MjUyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyVmlld3BvcnRNYXNr
TlYiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNl
Y29uZGFyeVZpZXdwb3J0UmVsYXRpdmVOViIsCi0gICAgICAgICAgInZhbHVlIiA6IDUyNTYsCi0g
ICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXJTdGVyZW9WaWV3TlYiIF0sCi0gICAg
ICAgICAgInBhcmFtZXRlcnMiIDogWwotICAgICAgICAgICAgeyAia2luZCIgOiAiTGl0ZXJhbElu
dGVnZXIiLCAibmFtZSIgOiAiJ09mZnNldCciIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0KLSAg
ICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAiVmFsdWVFbnVtIiwKLSAg
ICAgICJraW5kIiA6ICJCdWlsdEluIiwKLSAgICAgICJlbnVtZXJhbnRzIiA6IFsKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlBvc2l0aW9uIiwKLSAgICAgICAgICAidmFsdWUi
IDogMCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUG9pbnRTaXplIiwKLSAgICAg
ICAgICAidmFsdWUiIDogMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ2xpcERp
c3RhbmNlIiwKLSAgICAgICAgICAidmFsdWUiIDogMywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIkNsaXBEaXN0YW5jZSIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiQ3VsbERpc3RhbmNlIiwKLSAgICAgICAgICAidmFsdWUiIDogNCwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkN1bGxEaXN0YW5jZSIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVmVydGV4SWQiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiA1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbnN0YW5jZUlk
IiwKLSAgICAgICAgICAidmFsdWUiIDogNiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsg
IlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiUHJpbWl0aXZlSWQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA3LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiR2VvbWV0cnkiLCAiVGVzc2VsbGF0aW9uIiBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbnZvY2F0aW9uSWQiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiA4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiR2VvbWV0cnki
LCAiVGVzc2VsbGF0aW9uIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJMYXllciIsCi0gICAgICAgICAgInZhbHVlIiA6IDksCi0gICAgICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJHZW9tZXRyeSIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiVmlld3BvcnRJbmRleCIsCi0gICAgICAgICAgInZhbHVlIiA6
IDEwLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiTXVsdGlWaWV3cG9ydCIgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVGVzc0xldmVsT3V0
ZXIiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIlRlc3NlbGxhdGlvbiIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiVGVzc0xldmVsSW5uZXIiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMiwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlRlc3NlbGxhdGlvbiIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVGVzc0Nvb3JkIiwKLSAgICAgICAg
ICAidmFsdWUiIDogMTMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJUZXNzZWxsYXRp
b24iIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlBh
dGNoVmVydGljZXMiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxNCwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIlRlc3NlbGxhdGlvbiIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiRnJhZ0Nvb3JkIiwKLSAgICAgICAgICAidmFsdWUiIDogMTUs
Ci0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlBvaW50Q29vcmQiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAxNiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRnJvbnRGYWNp
bmciLAotICAgICAgICAgICJ2YWx1ZSIgOiAxNywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFu
dCIgOiAiU2FtcGxlSWQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxOCwKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIlNhbXBsZVJhdGVTaGFkaW5nIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTYW1wbGVQb3NpdGlvbiIsCi0gICAgICAgICAg
InZhbHVlIiA6IDE5LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2FtcGxlUmF0ZVNo
YWRpbmciIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDog
IlNhbXBsZU1hc2siLAotICAgICAgICAgICJ2YWx1ZSIgOiAyMCwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiRnJhZ0RlcHRoIiwKLSAgICAgICAgICAidmFsdWUiIDogMjIsCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkhlbHBlckludm9jYXRpb24iLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAyMywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiTnVtV29ya2dy
b3VwcyIsCi0gICAgICAgICAgInZhbHVlIiA6IDI0Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAg
ICAgICAgICAiZW51bWVyYW50IiA6ICJXb3JrZ3JvdXBTaXplIiwKLSAgICAgICAgICAidmFsdWUi
IDogMjUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIldv
cmtncm91cElkIiwKLSAgICAgICAgICAidmFsdWUiIDogMjYKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkxvY2FsSW52b2NhdGlvbklkIiwKLSAgICAgICAg
ICAidmFsdWUiIDogMjcKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJh
bnQiIDogIkdsb2JhbEludm9jYXRpb25JZCIsCi0gICAgICAgICAgInZhbHVlIiA6IDI4Ci0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJMb2NhbEludm9jYXRp
b25JbmRleCIsCi0gICAgICAgICAgInZhbHVlIiA6IDI5Ci0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJXb3JrRGltIiwKLSAgICAgICAgICAidmFsdWUiIDog
MzAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkdsb2JhbFNpemUiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiAzMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRW5xdWV1
ZWRXb3JrZ3JvdXBTaXplIiwKLSAgICAgICAgICAidmFsdWUiIDogMzIsCi0gICAgICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICJlbnVtZXJhbnQiIDogIkdsb2JhbE9mZnNldCIsCi0gICAgICAgICAgInZhbHVlIiA6IDMz
LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJHbG9iYWxMaW5lYXJJZCIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDM0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVs
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTdWJn
cm91cFNpemUiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzNiwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiU3ViZ3JvdXBNYXhTaXplIiwKLSAgICAgICAgICAidmFsdWUiIDogMzcsCi0g
ICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIk51bVN1Ymdyb3VwcyIsCi0gICAgICAgICAg
InZhbHVlIiA6IDM4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVsIiBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJOdW1FbnF1ZXVl
ZFN1Ymdyb3VwcyIsCi0gICAgICAgICAgInZhbHVlIiA6IDM5LAotICAgICAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJTdWJncm91cElkIiwKLSAgICAgICAgICAidmFsdWUiIDogNDAsCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN1Ymdyb3VwTG9jYWxJbnZvY2F0aW9uSWQiLAot
ICAgICAgICAgICJ2YWx1ZSIgOiA0MSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktl
cm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAi
VmVydGV4SW5kZXgiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0MiwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiSW5zdGFuY2VJbmRleCIsCi0gICAgICAgICAgInZhbHVlIiA6IDQzLAot
ICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTdWJncm91cEVxTWFza0tIUiIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDQ0MTYsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdWJn
cm91cEJhbGxvdEtIUiIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiU3ViZ3JvdXBHZU1hc2tLSFIiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDE3LAot
ICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU3ViZ3JvdXBCYWxsb3RLSFIiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN1Ymdyb3VwR3RNYXNr
S0hSIiwKLSAgICAgICAgICAidmFsdWUiIDogNDQxOCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIlN1Ymdyb3VwQmFsbG90S0hSIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJTdWJncm91cExlTWFza0tIUiIsCi0gICAgICAgICAgInZhbHVl
IiA6IDQ0MTksCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTdWJncm91cEJhbGxvdEtI
UiIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3Vi
Z3JvdXBMdE1hc2tLSFIiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDIwLAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiU3ViZ3JvdXBCYWxsb3RLSFIiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkJhc2VWZXJ0ZXgiLAotICAgICAgICAgICJ2
YWx1ZSIgOiA0NDI0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRHJhd1BhcmFtZXRl
cnMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkJh
c2VJbnN0YW5jZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ0MjUsCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJEcmF3UGFyYW1ldGVycyIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiRHJhd0luZGV4IiwKLSAgICAgICAgICAidmFsdWUiIDog
NDQyNiwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkRyYXdQYXJhbWV0ZXJzIiBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJEZXZpY2VJbmRl
eCIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ0MzgsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIg
OiBbICJEZXZpY2VHcm91cCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiVmlld0luZGV4IiwKLSAgICAgICAgICAidmFsdWUiIDogNDQ0MCwKLSAgICAg
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIk11bHRpVmlldyIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQmFyeUNvb3JkTm9QZXJzcEFNRCIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDQ5OTIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIkJhcnlDb29yZE5vUGVyc3BDZW50cm9pZEFNRCIsCi0gICAgICAgICAgInZh
bHVlIiA6IDQ5OTMKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkJhcnlDb29yZE5vUGVyc3BTYW1wbGVBTUQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0OTk0
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJCYXJ5Q29v
cmRTbW9vdGhBTUQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0OTk1Ci0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJCYXJ5Q29vcmRTbW9vdGhDZW50cm9pZEFN
RCIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ5OTYKLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICJlbnVtZXJhbnQiIDogIkJhcnlDb29yZFNtb290aFNhbXBsZUFNRCIsCi0gICAgICAg
ICAgInZhbHVlIiA6IDQ5OTcKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVt
ZXJhbnQiIDogIkJhcnlDb29yZFB1bGxNb2RlbEFNRCIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ5
OTgKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkZyYWdT
dGVuY2lsUmVmRVhUIiwKLSAgICAgICAgICAidmFsdWUiIDogNTAxNCwKLSAgICAgICAgICAiY2Fw
YWJpbGl0aWVzIiA6IFsgIlN0ZW5jaWxFeHBvcnRFWFQiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlZpZXdwb3J0TWFza05WIiwKLSAgICAgICAgICAi
dmFsdWUiIDogNTI1MywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlclZpZXdw
b3J0TWFza05WIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJTZWNvbmRhcnlQb3NpdGlvbk5WIiwKLSAgICAgICAgICAidmFsdWUiIDogNTI1NywKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlclN0ZXJlb1ZpZXdOViIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU2Vjb25kYXJ5Vmlld3Bv
cnRNYXNrTlYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1MjU4LAotICAgICAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiU2hhZGVyU3RlcmVvVmlld05WIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJQb3NpdGlvblBlclZpZXdOViIsCi0gICAgICAgICAg
InZhbHVlIiA6IDUyNjEsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJQZXJWaWV3QXR0
cmlidXRlc05WIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJWaWV3cG9ydE1hc2tQZXJWaWV3TlYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1MjYyLAot
ICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiUGVyVmlld0F0dHJpYnV0ZXNOViIgXQotICAg
ICAgICB9Ci0gICAgICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIlZhbHVl
RW51bSIsCi0gICAgICAia2luZCIgOiAiU2NvcGUiLAotICAgICAgImVudW1lcmFudHMiIDogWwot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiQ3Jvc3NEZXZpY2UiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiAwCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJEZXZpY2UiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJXb3JrZ3JvdXAiLAotICAgICAgICAgICJ2
YWx1ZSIgOiAyCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6
ICJTdWJncm91cCIsCi0gICAgICAgICAgInZhbHVlIiA6IDMKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkludm9jYXRpb24iLAotICAgICAgICAgICJ2YWx1
ZSIgOiA0Ci0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29y
eSIgOiAiVmFsdWVFbnVtIiwKLSAgICAgICJraW5kIiA6ICJHcm91cE9wZXJhdGlvbiIsCi0gICAg
ICAiZW51bWVyYW50cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJS
ZWR1Y2UiLAotICAgICAgICAgICJ2YWx1ZSIgOiAwLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiS2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJJbmNsdXNpdmVTY2FuIiwKLSAgICAgICAgICAidmFsdWUiIDogMSwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiRXhjbHVzaXZlU2NhbiIsCi0gICAgICAgICAgInZhbHVl
IiA6IDIsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAg
fQotICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0i
LAotICAgICAgImtpbmQiIDogIktlcm5lbEVucXVldWVGbGFncyIsCi0gICAgICAiZW51bWVyYW50
cyIgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJOb1dhaXQiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiAwLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVs
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJXYWl0
S2VybmVsIiwKLSAgICAgICAgICAidmFsdWUiIDogMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiV2FpdFdvcmtHcm91cCIsCi0gICAgICAgICAgInZhbHVlIiA6IDIsCi0gICAgICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfQotICAgICAgXQotICAg
IH0sCi0gICAgewotICAgICAgImNhdGVnb3J5IiA6ICJWYWx1ZUVudW0iLAotICAgICAgImtpbmQi
IDogIkNhcGFiaWxpdHkiLAotICAgICAgImVudW1lcmFudHMiIDogWwotICAgICAgICB7Ci0gICAg
ICAgICAgImVudW1lcmFudCIgOiAiTWF0cml4IiwKLSAgICAgICAgICAidmFsdWUiIDogMAotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU2hhZGVyIiwKLSAg
ICAgICAgICAidmFsdWUiIDogMSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIk1hdHJp
eCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiR2Vv
bWV0cnkiLAotICAgICAgICAgICJ2YWx1ZSIgOiAyLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMi
IDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJUZXNzZWxsYXRpb24iLAotICAgICAgICAgICJ2YWx1ZSIgOiAzLAotICAgICAgICAg
ICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAg
ICAgICAgICAiZW51bWVyYW50IiA6ICJBZGRyZXNzZXMiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJMaW5rYWdl
IiwKLSAgICAgICAgICAidmFsdWUiIDogNQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgImVudW1lcmFudCIgOiAiS2VybmVsIiwKLSAgICAgICAgICAidmFsdWUiIDogNgotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVmVjdG9yMTYiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA3LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiS2VybmVs
IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJGbG9h
dDE2QnVmZmVyIiwKLSAgICAgICAgICAidmFsdWUiIDogOCwKLSAgICAgICAgICAiY2FwYWJpbGl0
aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiRmxvYXQxNiIsCi0gICAgICAgICAgInZhbHVlIiA6IDkKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkZsb2F0NjQiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiAxMAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFu
dCIgOiAiSW50NjQiLAotICAgICAgICAgICJ2YWx1ZSIgOiAxMQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW50NjRBdG9taWNzIiwKLSAgICAgICAgICAi
dmFsdWUiIDogMTIsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJJbnQ2NCIgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW1hZ2VCYXNpYyIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDEzLAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
S2VybmVsIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6
ICJJbWFnZVJlYWRXcml0ZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDE0LAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiSW1hZ2VCYXNpYyIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiSW1hZ2VNaXBtYXAiLAotICAgICAgICAgICJ2YWx1ZSIg
OiAxNSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIkltYWdlQmFzaWMiIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlBpcGVzIiwKLSAgICAg
ICAgICAidmFsdWUiIDogMTcsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwi
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkdyb3Vw
cyIsCi0gICAgICAgICAgInZhbHVlIiA6IDE4Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJEZXZpY2VFbnF1ZXVlIiwKLSAgICAgICAgICAidmFsdWUiIDog
MTksCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkxpdGVyYWxTYW1wbGVyIiwKLSAg
ICAgICAgICAidmFsdWUiIDogMjAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJLZXJu
ZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkF0
b21pY1N0b3JhZ2UiLAotICAgICAgICAgICJ2YWx1ZSIgOiAyMSwKLSAgICAgICAgICAiY2FwYWJp
bGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImVudW1lcmFudCIgOiAiSW50MTYiLAotICAgICAgICAgICJ2YWx1ZSIgOiAyMgotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVGVzc2VsbGF0aW9uUG9pbnRT
aXplIiwKLSAgICAgICAgICAidmFsdWUiIDogMjMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIg
OiBbICJUZXNzZWxsYXRpb24iIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJl
bnVtZXJhbnQiIDogIkdlb21ldHJ5UG9pbnRTaXplIiwKLSAgICAgICAgICAidmFsdWUiIDogMjQs
Ci0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHZW9tZXRyeSIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW1hZ2VHYXRoZXJFeHRlbmRlZCIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDI1LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
U2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6
ICJTdG9yYWdlSW1hZ2VNdWx0aXNhbXBsZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDI3LAotICAg
ICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJVbmlmb3JtQnVmZmVyQXJyYXlEeW5hbWljSW5k
ZXhpbmciLAotICAgICAgICAgICJ2YWx1ZSIgOiAyOCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVz
IiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiU2FtcGxlZEltYWdlQXJyYXlEeW5hbWljSW5kZXhpbmciLAotICAgICAgICAgICJ2
YWx1ZSIgOiAyOSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3RvcmFnZUJ1ZmZl
ckFycmF5RHluYW1pY0luZGV4aW5nIiwKLSAgICAgICAgICAidmFsdWUiIDogMzAsCi0gICAgICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN0b3JhZ2VJbWFnZUFycmF5RHluYW1pY0luZGV4aW5n
IiwKLSAgICAgICAgICAidmFsdWUiIDogMzEsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBb
ICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkNsaXBEaXN0YW5jZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDMyLAotICAgICAgICAgICJj
YXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAiZW51bWVyYW50IiA6ICJDdWxsRGlzdGFuY2UiLAotICAgICAgICAgICJ2YWx1ZSIgOiAz
MywKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW1hZ2VDdWJlQXJyYXkiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiAzNCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNhbXBs
ZWRDdWJlQXJyYXkiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJh
bnQiIDogIlNhbXBsZVJhdGVTaGFkaW5nIiwKLSAgICAgICAgICAidmFsdWUiIDogMzUsCi0gICAg
ICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkltYWdlUmVjdCIsCi0gICAgICAgICAgInZhbHVl
IiA6IDM2LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2FtcGxlZFJlY3QiIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNhbXBsZWRSZWN0
IiwKLSAgICAgICAgICAidmFsdWUiIDogMzcsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBb
ICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkdlbmVyaWNQb2ludGVyIiwKLSAgICAgICAgICAidmFsdWUiIDogMzgsCi0gICAgICAgICAg
ImNhcGFiaWxpdGllcyIgOiBbICJBZGRyZXNzZXMiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICJlbnVtZXJhbnQiIDogIkludDgiLAotICAgICAgICAgICJ2YWx1ZSIgOiAzOSwK
LSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIktlcm5lbCIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW5wdXRBdHRhY2htZW50IiwKLSAgICAg
ICAgICAidmFsdWUiIDogNDAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIi
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNwYXJz
ZVJlc2lkZW5jeSIsCi0gICAgICAgICAgInZhbHVlIiA6IDQxLAotICAgICAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJNaW5Mb2QiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0MiwKLSAgICAgICAg
ICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiU2FtcGxlZDFEIiwKLSAgICAgICAgICAidmFsdWUiIDog
NDMKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkltYWdl
MUQiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6
IFsgIlNhbXBsZWQxRCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1l
cmFudCIgOiAiU2FtcGxlZEN1YmVBcnJheSIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ1LAotICAg
ICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTYW1wbGVkQnVmZmVyIiwKLSAgICAgICAgICAi
dmFsdWUiIDogNDYKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkltYWdlQnVmZmVyIiwKLSAgICAgICAgICAidmFsdWUiIDogNDcsCi0gICAgICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJTYW1wbGVkQnVmZmVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbWFnZU1TQXJyYXkiLAotICAgICAgICAgICJ2YWx1
ZSIgOiA0OCwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3RvcmFnZUltYWdlRXh0
ZW5kZWRGb3JtYXRzIiwKLSAgICAgICAgICAidmFsdWUiIDogNDksCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICJlbnVtZXJhbnQiIDogIkltYWdlUXVlcnkiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1MCwKLSAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRGVyaXZhdGl2ZUNvbnRyb2wiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiA1MSwKLSAgICAgICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiSW50ZXJw
b2xhdGlvbkZ1bmN0aW9uIiwKLSAgICAgICAgICAidmFsdWUiIDogNTIsCi0gICAgICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICJlbnVtZXJhbnQiIDogIlRyYW5zZm9ybUZlZWRiYWNrIiwKLSAgICAgICAgICAidmFsdWUi
IDogNTMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkdlb21ldHJ5U3RyZWFtcyIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDU0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAi
R2VvbWV0cnkiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIlN0b3JhZ2VJbWFnZVJlYWRXaXRob3V0Rm9ybWF0IiwKLSAgICAgICAgICAidmFsdWUiIDog
NTUsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN0b3JhZ2VJbWFnZVdyaXRlV2l0
aG91dEZvcm1hdCIsCi0gICAgICAgICAgInZhbHVlIiA6IDU2LAotICAgICAgICAgICJjYXBhYmls
aXRpZXMiIDogWyAiU2hhZGVyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAi
ZW51bWVyYW50IiA6ICJNdWx0aVZpZXdwb3J0IiwKLSAgICAgICAgICAidmFsdWUiIDogNTcsCi0g
ICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJHZW9tZXRyeSIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3ViZ3JvdXBEaXNwYXRjaCIsCi0gICAg
ICAgICAgInZhbHVlIiA6IDU4LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiRGV2aWNl
RW5xdWV1ZSIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIg
OiAiTmFtZWRCYXJyaWVyIiwKLSAgICAgICAgICAidmFsdWUiIDogNTksCi0gICAgICAgICAgImNh
cGFiaWxpdGllcyIgOiBbICJLZXJuZWwiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICJlbnVtZXJhbnQiIDogIlBpcGVTdG9yYWdlIiwKLSAgICAgICAgICAidmFsdWUiIDogNjAs
Ci0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJQaXBlcyIgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3ViZ3JvdXBCYWxsb3RLSFIiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA0NDIzLAotICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQVl9L
SFJfc2hhZGVyX2JhbGxvdCIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVu
dW1lcmFudCIgOiAiRHJhd1BhcmFtZXRlcnMiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDI3LAot
ICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQVl9LSFJfc2hhZGVyX2RyYXdfcGFyYW1ldGVy
cyIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3Vi
Z3JvdXBWb3RlS0hSIiwKLSAgICAgICAgICAidmFsdWUiIDogNDQzMSwKLSAgICAgICAgICAiZXh0
ZW5zaW9ucyIgOiBbICJTUFZfS0hSX3N1Ymdyb3VwX3ZvdGUiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlN0b3JhZ2VCdWZmZXIxNkJpdEFjY2VzcyIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDQ0MzMsCi0gICAgICAgICAgImV4dGVuc2lvbnMiIDogWyAi
U1BWX0tIUl8xNmJpdF9zdG9yYWdlIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAiZW51bWVyYW50IiA6ICJTdG9yYWdlVW5pZm9ybUJ1ZmZlckJsb2NrMTYiLAotICAgICAgICAg
ICJ2YWx1ZSIgOiA0NDMzLAotICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQVl9LSFJfMTZi
aXRfc3RvcmFnZSIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFu
dCIgOiAiVW5pZm9ybUFuZFN0b3JhZ2VCdWZmZXIxNkJpdEFjY2VzcyIsCi0gICAgICAgICAgInZh
bHVlIiA6IDQ0MzQsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbCi0gICAgICAgICAgICAi
U3RvcmFnZUJ1ZmZlcjE2Qml0QWNjZXNzIiwKLSAgICAgICAgICAgICJTdG9yYWdlVW5pZm9ybUJ1
ZmZlckJsb2NrMTYiCi0gICAgICAgICAgXSwKLSAgICAgICAgICAiZXh0ZW5zaW9ucyIgOiBbICJT
UFZfS0hSXzE2Yml0X3N0b3JhZ2UiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICJlbnVtZXJhbnQiIDogIlN0b3JhZ2VVbmlmb3JtMTYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0
NDM0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWwotICAgICAgICAgICAgIlN0b3JhZ2VC
dWZmZXIxNkJpdEFjY2VzcyIsCi0gICAgICAgICAgICAiU3RvcmFnZVVuaWZvcm1CdWZmZXJCbG9j
azE2IgotICAgICAgICAgIF0sCi0gICAgICAgICAgImV4dGVuc2lvbnMiIDogWyAiU1BWX0tIUl8x
NmJpdF9zdG9yYWdlIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVy
YW50IiA6ICJTdG9yYWdlUHVzaENvbnN0YW50MTYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDM1
LAotICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQVl9LSFJfMTZiaXRfc3RvcmFnZSIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3RvcmFnZUlu
cHV0T3V0cHV0MTYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDM2LAotICAgICAgICAgICJleHRl
bnNpb25zIiA6IFsgIlNQVl9LSFJfMTZiaXRfc3RvcmFnZSIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiRGV2aWNlR3JvdXAiLAotICAgICAgICAgICJ2
YWx1ZSIgOiA0NDM3LAotICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQVl9LSFJfZGV2aWNl
X2dyb3VwIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6
ICJNdWx0aVZpZXciLAotICAgICAgICAgICJ2YWx1ZSIgOiA0NDM5LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU2hhZGVyIiBdLAotICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQ
Vl9LSFJfbXVsdGl2aWV3IiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51
bWVyYW50IiA6ICJWYXJpYWJsZVBvaW50ZXJzU3RvcmFnZUJ1ZmZlciIsCi0gICAgICAgICAgInZh
bHVlIiA6IDQ0NDEsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0sCi0g
ICAgICAgICAgImV4dGVuc2lvbnMiIDogWyAiU1BWX0tIUl92YXJpYWJsZV9wb2ludGVycyIgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiVmFyaWFibGVQ
b2ludGVycyIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ0NDIsCi0gICAgICAgICAgImNhcGFiaWxp
dGllcyIgOiBbICJWYXJpYWJsZVBvaW50ZXJzU3RvcmFnZUJ1ZmZlciIgXSwKLSAgICAgICAgICAi
ZXh0ZW5zaW9ucyIgOiBbICJTUFZfS0hSX3ZhcmlhYmxlX3BvaW50ZXJzIiBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICJlbnVtZXJhbnQiOiAiQXRvbWljU3RvcmFnZU9wcyIs
Ci0gICAgICAgICAgICAidmFsdWUiOiA0NDQ1LAotICAgICAgICAgICAgImV4dGVuc2lvbnMiOiBb
ICJTUFZfS0hSX3NoYWRlcl9hdG9taWNfY291bnRlcl9vcHMiIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIlNhbXBsZU1hc2tQb3N0RGVwdGhDb3ZlcmFn
ZSIsCi0gICAgICAgICAgInZhbHVlIiA6IDQ0NDcsCi0gICAgICAgICAgImV4dGVuc2lvbnMiIDog
WyAiU1BWX0tIUl9wb3N0X2RlcHRoX2NvdmVyYWdlIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAiZW51bWVyYW50IiA6ICJJbWFnZUdhdGhlckJpYXNMb2RBTUQiLAotICAgICAg
ICAgICJ2YWx1ZSIgOiA1MDA5LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiU2hhZGVy
IiBdLAotICAgICAgICAgICJleHRlbnNpb25zIiA6IFsgIlNQVl9BTURfdGV4dHVyZV9nYXRoZXJf
Ymlhc19sb2QiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQi
IDogIkZyYWdtZW50TWFza0FNRCIsCi0gICAgICAgICAgInZhbHVlIiA6IDUwMTAsCi0gICAgICAg
ICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIiIF0sCi0gICAgICAgICAgImV4dGVuc2lvbnMi
IDogWyAiU1BWX0FNRF9zaGFkZXJfZnJhZ21lbnRfbWFzayIgXQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU3RlbmNpbEV4cG9ydEVYVCIsCi0gICAgICAg
ICAgInZhbHVlIiA6IDUwMTMsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXIi
IF0sCi0gICAgICAgICAgImV4dGVuc2lvbnMiIDogWyAiU1BWX0VYVF9zaGFkZXJfc3RlbmNpbF9l
eHBvcnQiIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDog
IkltYWdlUmVhZFdyaXRlTG9kQU1EIiwKLSAgICAgICAgICAidmFsdWUiIDogNTAxNSwKLSAgICAg
ICAgICAiY2FwYWJpbGl0aWVzIiA6IFsgIlNoYWRlciIgXSwKLSAgICAgICAgICAiZXh0ZW5zaW9u
cyIgOiBbICJTUFZfQU1EX3NoYWRlcl9pbWFnZV9sb2FkX3N0b3JlX2xvZCIgXQotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiU2FtcGxlTWFza092ZXJyaWRl
Q292ZXJhZ2VOViIsCi0gICAgICAgICAgInZhbHVlIiA6IDUyNDksCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJTYW1wbGVSYXRlU2hhZGluZyIgXSwKLSAgICAgICAgICAiZXh0ZW5zaW9u
cyIgOiBbICJTUFZfTlZfc2FtcGxlX21hc2tfb3ZlcnJpZGVfY292ZXJhZ2UiIF0KLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICJlbnVtZXJhbnQiIDogIkdlb21ldHJ5U2hhZGVyUGFz
c3Rocm91Z2hOViIsCi0gICAgICAgICAgInZhbHVlIiA6IDUyNTEsCi0gICAgICAgICAgImNhcGFi
aWxpdGllcyIgOiBbICJHZW9tZXRyeSIgXSwKLSAgICAgICAgICAiZXh0ZW5zaW9ucyIgOiBbICJT
UFZfTlZfZ2VvbWV0cnlfc2hhZGVyX3Bhc3N0aHJvdWdoIiBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTaGFkZXJWaWV3cG9ydEluZGV4TGF5ZXJFWFQi
LAotICAgICAgICAgICJ2YWx1ZSIgOiA1MjU0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDog
WyAiTXVsdGlWaWV3cG9ydCIgXSwKLSAgICAgICAgICAiZXh0ZW5zaW9ucyIgOiBbICJTUFZfRVhU
X3NoYWRlcl92aWV3cG9ydF9pbmRleF9sYXllciIgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgImVudW1lcmFudCIgOiAiU2hhZGVyVmlld3BvcnRJbmRleExheWVyTlYiLAotICAg
ICAgICAgICJ2YWx1ZSIgOiA1MjU0LAotICAgICAgICAgICJjYXBhYmlsaXRpZXMiIDogWyAiTXVs
dGlWaWV3cG9ydCIgXSwKLSAgICAgICAgICAiZXh0ZW5zaW9ucyIgOiBbICJTUFZfTlZfdmlld3Bv
cnRfYXJyYXkyIiBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50
IiA6ICJTaGFkZXJWaWV3cG9ydE1hc2tOViIsCi0gICAgICAgICAgInZhbHVlIiA6IDUyNTUsCi0g
ICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBbICJTaGFkZXJWaWV3cG9ydEluZGV4TGF5ZXJOViIg
XSwKLSAgICAgICAgICAiZXh0ZW5zaW9ucyIgOiBbICJTUFZfTlZfdmlld3BvcnRfYXJyYXkyIiBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZW51bWVyYW50IiA6ICJTaGFkZXJT
dGVyZW9WaWV3TlYiLAotICAgICAgICAgICJ2YWx1ZSIgOiA1MjU5LAotICAgICAgICAgICJjYXBh
YmlsaXRpZXMiIDogWyAiU2hhZGVyVmlld3BvcnRNYXNrTlYiIF0sCi0gICAgICAgICAgImV4dGVu
c2lvbnMiIDogWyAiU1BWX05WX3N0ZXJlb192aWV3X3JlbmRlcmluZyIgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgImVudW1lcmFudCIgOiAiUGVyVmlld0F0dHJpYnV0ZXNOViIs
Ci0gICAgICAgICAgInZhbHVlIiA6IDUyNjAsCi0gICAgICAgICAgImNhcGFiaWxpdGllcyIgOiBb
ICJNdWx0aVZpZXciIF0sCi0gICAgICAgICAgImV4dGVuc2lvbnMiIDogWyAiU1BWX05WWF9tdWx0
aXZpZXdfcGVyX3ZpZXdfYXR0cmlidXRlcyIgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfSwK
LSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIklkIiwKLSAgICAgICJraW5kIiA6ICJJZFJlc3Vs
dFR5cGUiLAotICAgICAgImRvYyIgOiAiUmVmZXJlbmNlIHRvIGFuIDxpZD4gcmVwcmVzZW50aW5n
IHRoZSByZXN1bHQncyB0eXBlIG9mIHRoZSBlbmNsb3NpbmcgaW5zdHJ1Y3Rpb24iCi0gICAgfSwK
LSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIklkIiwKLSAgICAgICJraW5kIiA6ICJJZFJlc3Vs
dCIsCi0gICAgICAiZG9jIiA6ICJEZWZpbml0aW9uIG9mIGFuIDxpZD4gcmVwcmVzZW50aW5nIHRo
ZSByZXN1bHQgb2YgdGhlIGVuY2xvc2luZyBpbnN0cnVjdGlvbiIKLSAgICB9LAotICAgIHsKLSAg
ICAgICJjYXRlZ29yeSIgOiAiSWQiLAotICAgICAgImtpbmQiIDogIklkTWVtb3J5U2VtYW50aWNz
IiwKLSAgICAgICJkb2MiIDogIlJlZmVyZW5jZSB0byBhbiA8aWQ+IHJlcHJlc2VudGluZyBhIDMy
LWJpdCBpbnRlZ2VyIHRoYXQgaXMgYSBtYXNrIGZyb20gdGhlIE1lbW9yeVNlbWFudGljcyBvcGVy
YW5kIGtpbmQiCi0gICAgfSwKLSAgICB7Ci0gICAgICAiY2F0ZWdvcnkiIDogIklkIiwKLSAgICAg
ICJraW5kIiA6ICJJZFNjb3BlIiwKLSAgICAgICJkb2MiIDogIlJlZmVyZW5jZSB0byBhbiA8aWQ+
IHJlcHJlc2VudGluZyBhIDMyLWJpdCBpbnRlZ2VyIHRoYXQgaXMgYSBtYXNrIGZyb20gdGhlIFNj
b3BlIG9wZXJhbmQga2luZCIKLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAiSWQi
LAotICAgICAgImtpbmQiIDogIklkUmVmIiwKLSAgICAgICJkb2MiIDogIlJlZmVyZW5jZSB0byBh
biA8aWQ+IgotICAgIH0sCi0gICAgewotICAgICAgImNhdGVnb3J5IiA6ICJMaXRlcmFsIiwKLSAg
ICAgICJraW5kIiA6ICJMaXRlcmFsSW50ZWdlciIsCi0gICAgICAiZG9jIiA6ICJBbiBpbnRlZ2Vy
IGNvbnN1bWluZyBvbmUgb3IgbW9yZSB3b3JkcyIKLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRl
Z29yeSIgOiAiTGl0ZXJhbCIsCi0gICAgICAia2luZCIgOiAiTGl0ZXJhbFN0cmluZyIsCi0gICAg
ICAiZG9jIiA6ICJBIG51bGwtdGVybWluYXRlZCBzdHJlYW0gb2YgY2hhcmFjdGVycyBjb25zdW1p
bmcgYW4gaW50ZWdyYWwgbnVtYmVyIG9mIHdvcmRzIgotICAgIH0sCi0gICAgewotICAgICAgImNh
dGVnb3J5IiA6ICJMaXRlcmFsIiwKLSAgICAgICJraW5kIiA6ICJMaXRlcmFsQ29udGV4dERlcGVu
ZGVudE51bWJlciIsCi0gICAgICAiZG9jIiA6ICJBIGxpdGVyYWwgbnVtYmVyIHdob3NlIHNpemUg
YW5kIGZvcm1hdCBhcmUgZGV0ZXJtaW5lZCBieSBhIHByZXZpb3VzIG9wZXJhbmQgaW4gdGhlIGVu
Y2xvc2luZyBpbnN0cnVjdGlvbiIKLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAi
TGl0ZXJhbCIsCi0gICAgICAia2luZCIgOiAiTGl0ZXJhbEV4dEluc3RJbnRlZ2VyIiwKLSAgICAg
ICJkb2MiIDogIkEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgaW5kaWNhdGluZyB3aGljaCBpbnN0
cnVjdGlvbiB0byB1c2UgYW5kIGRldGVybWluaW5nIHRoZSBsYXlvdXQgb2YgZm9sbG93aW5nIG9w
ZXJhbmRzIChmb3IgT3BFeHRJbnN0KSIKLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIg
OiAiTGl0ZXJhbCIsCi0gICAgICAia2luZCIgOiAiTGl0ZXJhbFNwZWNDb25zdGFudE9wSW50ZWdl
ciIsCi0gICAgICAiZG9jIiA6ICJBbiBvcGNvZGUgaW5kaWNhdGluZyB0aGUgb3BlcmF0aW9uIHRv
IGJlIHBlcmZvcm1lZCBhbmQgZGV0ZXJtaW5pbmcgdGhlIGxheW91dCBvZiBmb2xsb3dpbmcgb3Bl
cmFuZHMgKGZvciBPcFNwZWNDb25zdGFudE9wKSIKLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRl
Z29yeSIgOiAiQ29tcG9zaXRlIiwKLSAgICAgICJraW5kIiA6ICJQYWlyTGl0ZXJhbEludGVnZXJJ
ZFJlZiIsCi0gICAgICAiYmFzZXMiIDogWyAiTGl0ZXJhbEludGVnZXIiLCAiSWRSZWYiIF0KLSAg
ICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAiQ29tcG9zaXRlIiwKLSAgICAgICJraW5k
IiA6ICJQYWlySWRSZWZMaXRlcmFsSW50ZWdlciIsCi0gICAgICAiYmFzZXMiIDogWyAiSWRSZWYi
LCAiTGl0ZXJhbEludGVnZXIiIF0KLSAgICB9LAotICAgIHsKLSAgICAgICJjYXRlZ29yeSIgOiAi
Q29tcG9zaXRlIiwKLSAgICAgICJraW5kIiA6ICJQYWlySWRSZWZJZFJlZiIsCi0gICAgICAiYmFz
ZXMiIDogWyAiSWRSZWYiLCAiSWRSZWYiIF0KLSAgICB9Ci0gIF0KLX0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL3dzbC10ZXN0cy55YW1sIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvd3NsLXRlc3RzLnlhbWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJlNjFmYmMyZDJkLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS93c2wtdGVzdHMueWFtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIwotIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4gCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4gCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0jIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0jIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0jIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0jIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0tIHBhdGg6IC4KLSAgdGVzdHM6Ci0g
ICAgLSBUZXN0LmpzCi0gIGNtZDogc2tpcAotCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>