<?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>159649</bug_id>
          
          <creation_ts>2016-07-11 15:35:09 -0700</creation_ts>
          <short_desc>op_add/ValueAdd should be an IC in all JIT tiers</short_desc>
          <delta_ts>2016-07-25 05:16:56 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>159720</dependson>
    
    <dependson>160080</dependson>
    
    <dependson>160082</dependson>
    
    <dependson>160157</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1209833</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-11 15:35:09 -0700</bug_when>
    <thetext>Some motivation:
on x86-64:
- We emit a fast path that is ~144 bytes in size.
- We emit a slow path that is ~78 bytes in size.
- If we just emitted an int+int fast path, that&apos;s 39 bytes.

It seems like there is potential here for making things faster and more memory efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209918</commentid>
    <comment_count>1</comment_count>
      <attachid>283381</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-11 19:42:03 -0700</bug_when>
    <thetext>Created attachment 283381
it begins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210354</commentid>
    <comment_count>2</comment_count>
      <attachid>283494</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-13 00:49:37 -0700</bug_when>
    <thetext>Created attachment 283494
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210835</commentid>
    <comment_count>3</comment_count>
      <attachid>283594</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-13 19:31:06 -0700</bug_when>
    <thetext>Created attachment 283594
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210922</commentid>
    <comment_count>4</comment_count>
      <attachid>283620</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-14 00:50:07 -0700</bug_when>
    <thetext>Created attachment 283620
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211710</commentid>
    <comment_count>5</comment_count>
      <attachid>283830</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-15 18:41:20 -0700</bug_when>
    <thetext>Created attachment 283830
WIP

almost done, just have to make sure 32-bit works, and clean up a few things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211853</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-17 10:53:02 -0700</bug_when>
    <thetext>Attachment 283830 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:76:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/jit/JITMathIC.h:26:  #ifndef header guard has wrong style, please use: JITMathIC_h  [build/header_guard] [5]
ERROR: Source/JavaScriptCore/jit/JITMathIC.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:53:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:787:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:62:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JIT.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:55:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8084:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3052:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3431:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/ArithProfile.h:38:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 14 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212264</commentid>
    <comment_count>7</comment_count>
      <attachid>283975</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-18 21:21:20 -0700</bug_when>
    <thetext>Created attachment 283975
WIP

almost done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212265</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 21:23:33 -0700</bug_when>
    <thetext>Attachment 283975 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:76:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMathIC.h:26:  #ifndef header guard has wrong style, please use: JITMathIC_h  [build/header_guard] [5]
ERROR: Source/JavaScriptCore/jit/JITMathIC.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:53:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:787:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:62:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JIT.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:59:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3055:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/bytecode/ArithProfile.h:38:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/Repatch.h:57:  The parameter name &quot;call&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 20 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212295</commentid>
    <comment_count>9</comment_count>
      <attachid>283982</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-19 00:24:44 -0700</bug_when>
    <thetext>Created attachment 283982
WIP

maybe 32-bit works now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212297</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-19 00:27:16 -0700</bug_when>
    <thetext>Attachment 283982 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:76:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMathIC.h:26:  #ifndef header guard has wrong style, please use: JITMathIC_h  [build/header_guard] [5]
ERROR: Source/JavaScriptCore/jit/JITMathIC.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:53:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:790:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:62:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JIT.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:59:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3055:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/bytecode/ArithProfile.h:38:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/Repatch.h:57:  The parameter name &quot;call&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 20 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212471</commentid>
    <comment_count>11</comment_count>
      <attachid>284034</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-19 12:55:12 -0700</bug_when>
    <thetext>Created attachment 284034
WIP

Need to take some data, and write a changelog.
Then I&apos;ll remove code size profiling code, and patch should be ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212494</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-19 13:28:56 -0700</bug_when>
    <thetext>Attachment 284034 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:177:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3055:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 9 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212633</commentid>
    <comment_count>13</comment_count>
      <attachid>284077</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-19 19:02:52 -0700</bug_when>
    <thetext>Created attachment 284077
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212634</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-19 19:04:05 -0700</bug_when>
    <thetext>Attachment 284077 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:170:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 9 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212642</commentid>
    <comment_count>15</comment_count>
      <attachid>284077</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-07-19 19:59:58 -0700</bug_when>
    <thetext>Comment on attachment 284077
patch

Attachment 284077 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1709885

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212643</commentid>
    <comment_count>16</comment_count>
      <attachid>284080</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-07-19 20:00:03 -0700</bug_when>
    <thetext>Created attachment 284080
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212648</commentid>
    <comment_count>17</comment_count>
      <attachid>284082</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-19 20:35:12 -0700</bug_when>
    <thetext>Created attachment 284082
performance

I re-ran kraken a couple times. It&apos;s a bit noisy, but seems neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212649</commentid>
    <comment_count>18</comment_count>
      <attachid>284083</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-19 20:41:30 -0700</bug_when>
    <thetext>Created attachment 284083
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212650</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-19 20:43:58 -0700</bug_when>
    <thetext>Attachment 284083 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:170:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 9 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212651</commentid>
    <comment_count>20</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-19 21:04:19 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=284077&amp;action=review

Some comments:

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        This patch makes Add and IC inside all JIT tiers. It does so in a

and-&gt;an?

&gt; Source/JavaScriptCore/ChangeLog:37
&gt; +        Making an arithmetic IC is now easy. The JITMathIC class will hold a snippet

The naming is a bit weird for Add since it is not only an arithmetic operation but also a string operation.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:3007
&gt; +    ConcurrentJITLocker locker(m_lock);

Why is this synchronized?

I don&apos;t think we ever compile the same codeblock concurrently on different JIT?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3388
&gt; +    ArithProfile* arithProfile = m_jit.graph().baselineCodeBlockFor(node-&gt;origin.semantic)-&gt;arithProfileForBytecodeOffset(node-&gt;origin.semantic.bytecodeIndex);

Do you need to get the baseline code block?
Isn&apos;t the Instruction stream shared?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:2851
&gt; +        std::function&lt;void()&gt; m_generator;
&gt; +        Node* m_currentNode;
&gt; +        unsigned m_streamIndex;

Since those members are public, they should not be prefixed with &quot;m_&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212832</commentid>
    <comment_count>21</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-20 11:56:08 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284077&amp;action=review
&gt; 
&gt; Some comments:
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:8
&gt; &gt; +        This patch makes Add and IC inside all JIT tiers. It does so in a
&gt; 
&gt; and-&gt;an?
Yep. Typo.

&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:37
&gt; &gt; +        Making an arithmetic IC is now easy. The JITMathIC class will hold a snippet
&gt; 
&gt; The naming is a bit weird for Add since it is not only an arithmetic
&gt; operation but also a string operation.
Indeed. This is where &quot;+&quot; being overloaded with string concatenation makes naming this hard. I don&apos;t know of a better name. Do you have any suggestions? I chose &quot;math&quot; because every other IC we make will really care about operating over numbers.
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:3007
&gt; &gt; +    ConcurrentJITLocker locker(m_lock);
&gt; 
&gt; Why is this synchronized?
&gt; 
&gt; I don&apos;t think we ever compile the same codeblock concurrently on different
&gt; JIT?

I just copied what adding a StructureStubInfo was doing. This isn&apos;t needed though, because we don&apos;t ever iterate over the add ICs. I&apos;ve removed the locking.
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3388
&gt; &gt; +    ArithProfile* arithProfile = m_jit.graph().baselineCodeBlockFor(node-&gt;origin.semantic)-&gt;arithProfileForBytecodeOffset(node-&gt;origin.semantic.bytecodeIndex);
&gt; 
&gt; Do you need to get the baseline code block?
&gt; Isn&apos;t the Instruction stream shared?
Well, this is just a convenient way to get the CodeBlock corresponding to the current CodeOrigin. We may want to use the ArithProfile of an inlined CodeBlock. We could manually switch on there being an inline call frame or not, and return he not-profiled block, but this doesn&apos;t buy us anything, because as you said, they&apos;re the same instruction stream. I&apos;m just using this method because it&apos;s already implemented and does what I want.

&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:2851
&gt; &gt; +        std::function&lt;void()&gt; m_generator;
&gt; &gt; +        Node* m_currentNode;
&gt; &gt; +        unsigned m_streamIndex;
&gt; 
&gt; Since those members are public, they should not be prefixed with &quot;m_&quot;
Fixed. I also fixed the &quot;m_&quot; prefix for public fields inside MathICGenerationState</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212836</commentid>
    <comment_count>22</comment_count>
      <attachid>284083</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-07-20 12:09:50 -0700</bug_when>
    <thetext>Comment on attachment 284083
patch

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

&gt; Source/JavaScriptCore/ChangeLog:54
&gt; +        paths that are more successful than what I tried implementing, but I think that&apos;s worth doing
&gt; +        this in follow up patches once the JITMathIC foundation has landed.

I suggest replacing &quot;thats&apos;s worth doing this in follow up patches once ...&quot; to &quot;it&apos;s worth deferring this to follow up patches after ...&quot;.

&gt; Source/JavaScriptCore/bytecode/ArithProfile.h:27
&gt; +/*
&gt; + * Copyright (C) 2016 Apple Inc. All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions
&gt; + * are met:
&gt; + *
&gt; + * 1.  Redistributions of source code must retain the above copyright
&gt; + *     notice, this list of conditions and the following disclaimer.
&gt; + * 2.  Redistributions in binary form must reproduce the above copyright
&gt; + *     notice, this list of conditions and the following disclaimer in the
&gt; + *     documentation and/or other materials provided with the distribution.
&gt; + * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
&gt; + *     its contributors may be used to endorse or promote products derived
&gt; + *     from this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
&gt; + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
&gt; + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
&gt; + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
&gt; + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
&gt; + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
&gt; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
&gt; + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
&gt; + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&gt; + */

I think this is the wrong copyright notice to use.  Please see LLIntData.h for an example of the new copyright notice that we should be using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212888</commentid>
    <comment_count>23</comment_count>
      <attachid>284150</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-20 14:57:02 -0700</bug_when>
    <thetext>Created attachment 284150
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212889</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 14:58:32 -0700</bug_when>
    <thetext>Attachment 284150 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:170:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITArithmetic.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 8 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212890</commentid>
    <comment_count>25</comment_count>
      <attachid>284151</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-20 14:59:37 -0700</bug_when>
    <thetext>Created attachment 284151
patch

fix include order style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212891</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 15:01:45 -0700</bug_when>
    <thetext>Attachment 284151 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:170:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8176:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 7 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212944</commentid>
    <comment_count>27</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-20 16:38:05 -0700</bug_when>
    <thetext>wip:

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3396
&gt; +        Vector&lt;SilentRegisterSavePlan, 4&gt; savePlans;

Having an inline capacity is a bad thing here since you need to copy or move it in the lambda.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3401
&gt; +        addSlowPathGenerator([=] () {

You should use [=, savePlans = WTFMove(savePlans)].
Otherwise the instantiation of this lambda will take a copy of the vector.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:2849
&gt; +        std::function&lt;void()&gt; m_generator;

I think a WTF::Function would be better here. Ideally we should change addSlowPath generator accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212961</commentid>
    <comment_count>28</comment_count>
      <attachid>284151</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-07-20 17:23:18 -0700</bug_when>
    <thetext>Comment on attachment 284151
patch

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

&gt; Source/JavaScriptCore/bytecode/ArithProfile.h:73
&gt; +    static const uint32_t rhsResultTypeShift = 5;
&gt; +    static const uint32_t lhsResultTypeShift = 11;
&gt; +    static const uint32_t rhsObservedTypeShift = 17;
&gt; +    static const uint32_t lhsObservedTypeShift = 20;

I feel like you can make this a bit less manual.  e.g.

private:
    enum ObservedResultsBits {
        NonNegZeroDoubleBit,
        NegZeroDoubleBit,
        NonNumber,
        Int32Overflow,
        Int52Overflow,
        NumberOfObservedResultsBits
    };

// Later below in the code ...
public:
    enum ObservedResults {
        NonNegZeroDouble = 1 &lt;&lt; NonNegZeroDoubleBit,
        NegZeroDouble    = 1 &lt;&lt; NegZeroDoubleBit,
        NonNumber        = 1 &lt;&lt; NonNumber,
        Int32Overflow    = 1 &lt;&lt; Int32Overflow,
        Int52Overflow    = 1 &lt;&lt; Int52Overflow,
    };

The down side of the above is that the list is defined twice.  You could just keep the ObservedResults enum list the way you had it, and just add a:
    static const uint32_t numberOfObservedResultsBits = 5;
... just below the enum list.  That way it is tracked together.  The reason we want the numberOfObservedResultsBits is ...

private:
    static const uint32_t numberOfFlagBits = NumberOfObservedResultsBits;
    static const uint32_t rhsResultTypeShift = numberOfFlagBits;
    static const uint32_t lhsResultTypeShift = rhsResultTypeShift + ResultType::numBitsNeeded;
    static const uint32_t rhsObservedTypeShift = lhsResultTypeShift + ResultType::numBitsNeeded;
    static const uint32_t lhsObservedTypeShift = rhsObservedTypeShift + ObservedType:: numBitsNeeded; // And we add a numBitsNeeded in ObservedType.
    static_assert(lhsObservedTypeShift + ObservedType:: numBitsNeeded &lt;= sizeof(uint32_t), &quot;reasons ...&quot;);

This way, if we add a bit to ObservedType or ObservedResultsBits, the shift values will update appropriately.

That said, it is harder to read the code this way and it is more rare to add a bit then to have to read this code.  So, alternatively, you can keep the shift values declared the way you had it and add some static asserts:

    static_assert(numberOfFlagBits == NumberOfObservedResultsBits, &quot;reasons ...&quot;);
    static_assert(rhsResultTypeShift == numberOfFlagBits, &quot;reasons ...&quot;);
    static_assert(lhsResultTypeShift == rhsResultTypeShift + ResultType::numBitsNeeded, &quot;reasons ...&quot;);
    static_assert(rhsObservedTypeShift == lhsResultTypeShift + ResultType::numBitsNeeded, &quot;reasons ...&quot;);
    static_assert(lhsObservedTypeShift == rhsObservedTypeShift + ObservedType:: numBitsNeeded, &quot;reasons ...&quot;);
    static_assert(lhsObservedTypeShift + ObservedType:: numBitsNeeded &lt;= sizeof(uint32_t), &quot;reasons ...&quot;);

This way, if someone gets the manually entered values wrong, we will at least catch it right away.  Using a manually entered ObservedType::numberOfBits and numberOfObservedResultsBits is not ideal, but it still lessens the chance of error if we keep those values near where their respective bits are defined.

&gt; Source/JavaScriptCore/bytecode/ArithProfile.h:77
&gt; +    static const uint32_t bottom6Bits = (1 &lt;&lt; 6) - 1;
&gt; +    static const uint32_t bottom3Bits = (1 &lt;&lt; 3) - 1;
&gt; +    static const uint32_t clearRhsObservedTypeBits = ~((1 &lt;&lt; 17) | (1 &lt;&lt; 18) | (1 &lt;&lt; 19));
&gt; +    static const uint32_t clearLhsObservedTypeBits = ~((1 &lt;&lt; 20) | (1 &lt;&lt; 21) | (1 &lt;&lt; 22));

I think we typically name these as &quot;Mask&quot;s.  Hence, let&apos;s call these bottom6BitsMask, bottom3BitsMask, rhsObservedTypeBitsMask, and lhsObservedTypeBitsMask respectively.

Actually, since bottom6BitsMask is exclusively used for masking ResultType bits and bottom3Bits is exclusively for masking ObservedType type bits, perhaps it would be better to name and declare these as follows:
    static const uint32_t resultTypeMask = (1 &lt;&lt; ResultType::numBitsNeeded) - 1;
    static const uint32_t observedTypeMask = (1 &lt;&lt; ObservedType:: numBitsNeeded) - 1;

&gt; Source/JavaScriptCore/bytecode/ArithProfile.h:92
&gt; +    ArithProfile()
&gt; +    { }

I think for empty functions like this, you can put the { } on the same line.  The only time we put it on the a different line is if there&apos;s a constructor initialization list here.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:4381
&gt; +    Instruction* instruction = &amp;instructions()[bytecodeOffset + 4];

Will the offset always be 4?  Can we at least give it a symbolic name?  I think that that will help us find all uses of this constant later (if needed).  I think the value is 4 because op_add is a binary op, and the 3 preceding operands are for the result, lhsOp, and rhsOp.  So, maybe we can call this constant the binaryOpArithProfileOffset.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:4404
&gt; +    return *bitwise_cast&lt;ArithProfile*&gt;(&amp;pc[4].u.operand);

Ditto.  Use the binaryOpArithProfileOffset symbollic constant here.

In addition, can you change arithProfileForBytecodeOffset() to call arithProfileForPC() instead?  That way, the switch on opcodeID logic need not be duplicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212992</commentid>
    <comment_count>29</comment_count>
      <attachid>284151</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-20 18:54:20 -0700</bug_when>
    <thetext>Comment on attachment 284151
patch

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

I could not find any bug, r=me.

I am a bit concerned with the amount of duplicated logic. No idea how to fix it with DFG and FTL being so different :(

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8154
&gt; +    void emitAddSnippet()

Why not just put this code in compileValueAdd()?

&gt; Source/JavaScriptCore/jit/JITMathIC.h:92
&gt; +        // because if we fail allocating the out of line path, we don&apos;t want to waist time trying to

waist-&gt;waste</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213025</commentid>
    <comment_count>30</comment_count>
      <attachid>284151</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-20 21:17:19 -0700</bug_when>
    <thetext>Comment on attachment 284151
patch

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

&gt; Source/JavaScriptCore/CMakeLists.txt:180
&gt; +    bytecode/ArithProfile.cpp
&gt;      bytecode/ArrayAllocationProfile.cpp
&gt;      bytecode/ArrayProfile.cpp

This is already in the list.

&gt; Source/JavaScriptCore/bytecode/ArithProfile.cpp:96
&gt; +        if (profile.didObserveNegZeroDouble()) {
&gt; +            out.print(separator, &quot;NegZeroDouble&quot;);
&gt; +            separator = &quot;|&quot;;
&gt; +        }
&gt; +        if (profile.didObserveNonNegZeroDouble()) {
&gt; +            out.print(&quot;NonNegZeroDouble&quot;);
&gt; +            separator = &quot;|&quot;;
&gt; +        }

`separator` is only used in that one place and nowhere else. Should all of these out.print(...) be out.print(separator, ...)? Same for ValueProfile.cpp, or am I missing how it gets used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213064</commentid>
    <comment_count>31</comment_count>
      <attachid>284151</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-07-21 00:01:08 -0700</bug_when>
    <thetext>Comment on attachment 284151
patch

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

&gt;&gt; Source/JavaScriptCore/CMakeLists.txt:180
&gt;&gt;      bytecode/ArrayProfile.cpp
&gt; 
&gt; This is already in the list.

Nope.  One is &quot;Arith&quot;, the other &quot;Array&quot;.

&gt;&gt; Source/JavaScriptCore/bytecode/ArithProfile.cpp:96
&gt;&gt; +        }
&gt; 
&gt; `separator` is only used in that one place and nowhere else. Should all of these out.print(...) be out.print(separator, ...)? Same for ValueProfile.cpp, or am I missing how it gets used?

Joe, is right.  These should all be out.print(separator, ...).

&gt; Source/JavaScriptCore/jit/JITAddGenerator.cpp:42
&gt; +    if (m_arithProfile) {

Is there any reason why there won&apos;t be an available arithProfile anymore?  I know with the ResultProfile, this was conditional.  But now, it&apos;s embedded in the bytecode stream.  Should this be unconditional?

I see that in all JIT tiers, m_arithProfile is a non-null value.  The only time it is null is if we build with the DFG disabled.  We used to pass null for the resultProfile pointer because profiling doesn&apos;t make sense back then when the DFG is disabled.  But with your IC also feeding off the profiling data, I think it no longer make sense to ever pass a null arithProfile.  So, I think you can make this code unconditional.

&gt; Source/JavaScriptCore/jit/JITAddGenerator.cpp:129
&gt; +

Please remove this extra line.

&gt; Source/JavaScriptCore/jit/JITAddGenerator.cpp:171
&gt; +    if (m_arithProfile)
&gt; +        m_arithProfile-&gt;emitSetDouble(jit);

I see that that all JIT tiers now pass in a non-null arithProfile.  Does it make sense to write profiling info like this in the DFG and FTL tiers?  If not, you should change the snippet to pass in a bool to indicate whether to do this profiling or not, instead of relying on the null-ness of the m_arithProfile pointer (since you will want it to be non-null so that you read the collected profiling info in the generateInline().

&gt; Source/JavaScriptCore/jit/JITAddGenerator.h:43
&gt; +    JITAddGenerator()
&gt; +    { }

Can put { } on the same line.

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:682
&gt; +    return OperandTypes(ArithProfile::fromInt(instruction[4].u.operand).lhsResultType(), ArithProfile::fromInt(instruction[4].u.operand).rhsResultType());

I think you should express this as:
    ArithProfile profile = ArithProfile::fromInt(instruction[4].u.operand);
    return OperandTypes(profile.lhsResultType(), profile.rhsResultType());

It makes it easier to see at a glance that the lhs and rhs came from the same ArithProfile.

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:692
&gt; +    OperandTypes types = getOperandTypes(copiedInstruction(currentInstruction));

Why not get rid of this marshaling into OperandTypes and use the ArithProfile itself e.g.
    ArithProfile arithProfile = ArithProfile::fromInt(instruction[4].u.operand);

... and down below, just get the lhs and rhs operand type directly from the arithProfile when instantiating the SnippetOperands.  With that, you can get rid of the getOperandTypes() helper function too.  Would that work?

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:699
&gt; +    OperandTypes types = getOperandTypes(currentInstruction);

Ditto.  No need for this?

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:828
&gt;      SnippetOperand leftOperand(types.first());
&gt;      SnippetOperand rightOperand(types.second());

Use the arithProfile&apos;s lhs and rhs to initialize the SnippetOperands, and get rid of OperandTypes and getOperandTypes()?

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:903
&gt;      SnippetOperand leftOperand(types.first());
&gt;      SnippetOperand rightOperand(types.second());

Use the arithProfile&apos;s lhs and rhs to initialize the SnippetOperands, and get rid of OperandTypes and getOperandTypes()?

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:953
&gt; +    OperandTypes types = getOperandTypes(copiedInstruction(currentInstruction));

Use the arithProfile&apos;s lhs and rhs to initialize the SnippetOperands, and get rid of OperandTypes and getOperandTypes()?

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:1013
&gt;      SnippetOperand leftOperand(types.first());
&gt;      SnippetOperand rightOperand(types.second());

Use the arithProfile&apos;s lhs and rhs to initialize the SnippetOperands, and get rid of OperandTypes and getOperandTypes()?

&gt; Source/JavaScriptCore/jit/JITMathIC.h:47
&gt; +    bool shouldSlowPathRepatch;

&quot;shouldSlowPathRepatch&quot; sounds strange.  Did you mean &quot;shouldDoSlowPathRepatch&quot;?

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2274
&gt; +    arithProfile-&gt;detectNumericness(result);

Suggestion: maybe you should rename &quot;detectNumericness&quot; as &quot;observeResult&quot; to match &quot;observeLHSAndRHS&quot;.  Previously, we&apos;re working with the ResultProfile where detectNumericness implies numericness of the result.  But the ArithProfile profiles both the operands and the result.  Hence, I think we should make it explicit that we&apos;re observing the result here.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2331
&gt; +EncodedJSValue JIT_OPERATION operationValueAddNonOptimize(ExecState* exec, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, JITAddIC*)

I see that above, you have a operationValueAddNotProfiledNotOptimize, but here you called it &quot;...NonOptimize&quot;.  I think you should be consistent.

Suggestion: By the &quot;Not&quot; or &quot;Non&quot;, I think you are trying to describe what the operation&apos;s extra actions (or lack thereof).  Would you consider these alternatives:
    1. &quot;Profiling&quot;/&quot;NoProfiling&quot; and &quot;Optimizing&quot;/&quot;NoOptimizing&quot; (describes what extra work the operation includes or not)
    2. &quot;Profile&quot;/&quot;DontProfile&quot; and &quot;Optimize&quot;/&quot;DontOptimize&quot; (describes what extra work the operation should do or not)

For example, operationValueAddNotProfiledNotOptimize would become operationValueAddWithNoProfilingAndNoOptimizing.

IMHO, &quot;Non&quot; and &quot;Not&quot; sounds like they belong with a state (e.g. NonProfiled, NonOptimized), and not so much an action.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213269</commentid>
    <comment_count>32</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 13:13:05 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Comment on attachment 284151 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284151&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/CMakeLists.txt:180
&gt; &gt; +    bytecode/ArithProfile.cpp
&gt; &gt;      bytecode/ArrayAllocationProfile.cpp
&gt; &gt;      bytecode/ArrayProfile.cpp
&gt; 
&gt; This is already in the list.
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/ArithProfile.cpp:96
&gt; &gt; +        if (profile.didObserveNegZeroDouble()) {
&gt; &gt; +            out.print(separator, &quot;NegZeroDouble&quot;);
&gt; &gt; +            separator = &quot;|&quot;;
&gt; &gt; +        }
&gt; &gt; +        if (profile.didObserveNonNegZeroDouble()) {
&gt; &gt; +            out.print(&quot;NonNegZeroDouble&quot;);
&gt; &gt; +            separator = &quot;|&quot;;
&gt; &gt; +        }
&gt; 
&gt; `separator` is only used in that one place and nowhere else. Should all of
&gt; these out.print(...) be out.print(separator, ...)? Same for
&gt; ValueProfile.cpp, or am I missing how it gets used?
I&apos;m going to remove this. I copied this method from the old ResultProfile. It&apos;s currently not used, and it&apos;s also wrong. I&apos;m going to remove it&apos;s implementation and we can implement a correct version if we ever want to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213324</commentid>
    <comment_count>33</comment_count>
      <attachid>284151</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 14:29:30 -0700</bug_when>
    <thetext>Comment on attachment 284151
patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/CMakeLists.txt:180
&gt;&gt;&gt;&gt;      bytecode/ArrayProfile.cpp
&gt;&gt;&gt; 
&gt;&gt;&gt; This is already in the list.
&gt;&gt; 
&gt;&gt; Nope.  One is &quot;Arith&quot;, the other &quot;Array&quot;.
&gt; 
&gt; I&apos;m going to remove this. I copied this method from the old ResultProfile. It&apos;s currently not used, and it&apos;s also wrong. I&apos;m going to remove it&apos;s implementation and we can implement a correct version if we ever want to use it.

I&apos;m wrong. It is used. I&apos;ll write one that works.

&gt;&gt; Source/JavaScriptCore/bytecode/ArithProfile.h:73
&gt;&gt; +    static const uint32_t lhsObservedTypeShift = 20;
&gt; 
&gt; I feel like you can make this a bit less manual.  e.g.
&gt; 
&gt; private:
&gt;     enum ObservedResultsBits {
&gt;         NonNegZeroDoubleBit,
&gt;         NegZeroDoubleBit,
&gt;         NonNumber,
&gt;         Int32Overflow,
&gt;         Int52Overflow,
&gt;         NumberOfObservedResultsBits
&gt;     };
&gt; 
&gt; // Later below in the code ...
&gt; public:
&gt;     enum ObservedResults {
&gt;         NonNegZeroDouble = 1 &lt;&lt; NonNegZeroDoubleBit,
&gt;         NegZeroDouble    = 1 &lt;&lt; NegZeroDoubleBit,
&gt;         NonNumber        = 1 &lt;&lt; NonNumber,
&gt;         Int32Overflow    = 1 &lt;&lt; Int32Overflow,
&gt;         Int52Overflow    = 1 &lt;&lt; Int52Overflow,
&gt;     };
&gt; 
&gt; The down side of the above is that the list is defined twice.  You could just keep the ObservedResults enum list the way you had it, and just add a:
&gt;     static const uint32_t numberOfObservedResultsBits = 5;
&gt; ... just below the enum list.  That way it is tracked together.  The reason we want the numberOfObservedResultsBits is ...
&gt; 
&gt; private:
&gt;     static const uint32_t numberOfFlagBits = NumberOfObservedResultsBits;
&gt;     static const uint32_t rhsResultTypeShift = numberOfFlagBits;
&gt;     static const uint32_t lhsResultTypeShift = rhsResultTypeShift + ResultType::numBitsNeeded;
&gt;     static const uint32_t rhsObservedTypeShift = lhsResultTypeShift + ResultType::numBitsNeeded;
&gt;     static const uint32_t lhsObservedTypeShift = rhsObservedTypeShift + ObservedType:: numBitsNeeded; // And we add a numBitsNeeded in ObservedType.
&gt;     static_assert(lhsObservedTypeShift + ObservedType:: numBitsNeeded &lt;= sizeof(uint32_t), &quot;reasons ...&quot;);
&gt; 
&gt; This way, if we add a bit to ObservedType or ObservedResultsBits, the shift values will update appropriately.
&gt; 
&gt; That said, it is harder to read the code this way and it is more rare to add a bit then to have to read this code.  So, alternatively, you can keep the shift values declared the way you had it and add some static asserts:
&gt; 
&gt;     static_assert(numberOfFlagBits == NumberOfObservedResultsBits, &quot;reasons ...&quot;);
&gt;     static_assert(rhsResultTypeShift == numberOfFlagBits, &quot;reasons ...&quot;);
&gt;     static_assert(lhsResultTypeShift == rhsResultTypeShift + ResultType::numBitsNeeded, &quot;reasons ...&quot;);
&gt;     static_assert(rhsObservedTypeShift == lhsResultTypeShift + ResultType::numBitsNeeded, &quot;reasons ...&quot;);
&gt;     static_assert(lhsObservedTypeShift == rhsObservedTypeShift + ObservedType:: numBitsNeeded, &quot;reasons ...&quot;);
&gt;     static_assert(lhsObservedTypeShift + ObservedType:: numBitsNeeded &lt;= sizeof(uint32_t), &quot;reasons ...&quot;);
&gt; 
&gt; This way, if someone gets the manually entered values wrong, we will at least catch it right away.  Using a manually entered ObservedType::numberOfBits and numberOfObservedResultsBits is not ideal, but it still lessens the chance of error if we keep those values near where their respective bits are defined.

I&apos;m going to go with a variant of your first suggestion.
Basically, I&apos;ll make it that you don&apos;t have to change anything if you change the bits required, except the code for code for clearRhsObservedTypeBits/clearLhsObservedTypeBits. Those will make a hard assumption that ObservedType is 3 bits, with a static assert.

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:4381
&gt;&gt; +    Instruction* instruction = &amp;instructions()[bytecodeOffset + 4];
&gt; 
&gt; Will the offset always be 4?  Can we at least give it a symbolic name?  I think that that will help us find all uses of this constant later (if needed).  I think the value is 4 because op_add is a binary op, and the 3 preceding operands are for the result, lhsOp, and rhsOp.  So, maybe we can call this constant the binaryOpArithProfileOffset.

I don&apos;t think this will actually help. We have code like this all over the place, and we don&apos;t give offsets symbolic names.

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:4404
&gt;&gt; +    return *bitwise_cast&lt;ArithProfile*&gt;(&amp;pc[4].u.operand);
&gt; 
&gt; Ditto.  Use the binaryOpArithProfileOffset symbollic constant here.
&gt; 
&gt; In addition, can you change arithProfileForBytecodeOffset() to call arithProfileForPC() instead?  That way, the switch on opcodeID logic need not be duplicated.

Yeah, I&apos;ll do that. The logic does have to be duplicated though. One function returns nullptr based on the switch, and the other asserts it is a proper bytecode instruction.

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8154
&gt;&gt; +    void emitAddSnippet()
&gt; 
&gt; Why not just put this code in compileValueAdd()?

Done.

&gt;&gt; Source/JavaScriptCore/jit/JITAddGenerator.cpp:42
&gt;&gt; +    if (m_arithProfile) {
&gt; 
&gt; Is there any reason why there won&apos;t be an available arithProfile anymore?  I know with the ResultProfile, this was conditional.  But now, it&apos;s embedded in the bytecode stream.  Should this be unconditional?
&gt; 
&gt; I see that in all JIT tiers, m_arithProfile is a non-null value.  The only time it is null is if we build with the DFG disabled.  We used to pass null for the resultProfile pointer because profiling doesn&apos;t make sense back then when the DFG is disabled.  But with your IC also feeding off the profiling data, I think it no longer make sense to ever pass a null arithProfile.  So, I think you can make this code unconditional.

This isn&apos;t always true. Sometimes, the baseline will not emit profiling, in which case this is nullptr.
It&apos;s true that the higher tiers won&apos;t pass in nullptr. We can refine this later on.
W.r.t emitting the profiling bit setting, we only do that now if the bits weren&apos;t set previously. We can refine this in follow up patches to be tier-aware.

&gt;&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:828
&gt;&gt;      SnippetOperand rightOperand(types.second());
&gt; 
&gt; Use the arithProfile&apos;s lhs and rhs to initialize the SnippetOperands, and get rid of OperandTypes and getOperandTypes()?

I wrote this out, but it doesn&apos;t actually simplify the code. We need to either choose a name for ArithProfile that doesn&apos;t conflict with the arithProfile below. Or, we need to assign variable names to the lhs/rhs ResultType. All of these require more or equal lines of code to what we have now.
getOperandTypes() is also helpful for abstracting over 32/64 bit.

&gt;&gt; Source/JavaScriptCore/jit/JITMathIC.h:47
&gt;&gt; +    bool shouldSlowPathRepatch;
&gt; 
&gt; &quot;shouldSlowPathRepatch&quot; sounds strange.  Did you mean &quot;shouldDoSlowPathRepatch&quot;?

I don&apos;t agree. shouldDoSlowPathRepatch sounds much worse to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213363</commentid>
    <comment_count>34</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 15:47:50 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; wip:
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284083&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3396
&gt; &gt; +        Vector&lt;SilentRegisterSavePlan, 4&gt; savePlans;
&gt; 
&gt; Having an inline capacity is a bad thing here since you need to copy or move
&gt; it in the lambda.
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3401
&gt; &gt; +        addSlowPathGenerator([=] () {
&gt; 
&gt; You should use [=, savePlans = WTFMove(savePlans)].
&gt; Otherwise the instantiation of this lambda will take a copy of the vector.
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:2849
&gt; &gt; +        std::function&lt;void()&gt; m_generator;
&gt; 
&gt; I think a WTF::Function would be better here. Ideally we should change
&gt; addSlowPath generator accordingly.
I&apos;m going to make this change in another patch since this is just a refactoring.
https://bugs.webkit.org/show_bug.cgi?id=160055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213367</commentid>
    <comment_count>35</comment_count>
      <attachid>284273</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 15:55:08 -0700</bug_when>
    <thetext>Created attachment 284273
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213369</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 15:57:06 -0700</bug_when>
    <thetext>Attachment 284273 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:169:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:1562:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 7 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213379</commentid>
    <comment_count>37</comment_count>
      <attachid>284277</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 16:06:28 -0700</bug_when>
    <thetext>Created attachment 284277
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213384</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 16:12:06 -0700</bug_when>
    <thetext>Attachment 284277 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:169:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:1562:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:367:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 7 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213398</commentid>
    <comment_count>39</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 16:43:08 -0700</bug_when>
    <thetext>landed in:
https://trac.webkit.org/changeset/203537</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213535</commentid>
    <comment_count>40</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-22 03:08:03 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; landed in:
&gt; https://trac.webkit.org/changeset/203537

- ARM Linux buildfix landed in https://trac.webkit.org/changeset/203595
- It broke the Windows 64-bit build too, see bug160080 for details</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213544</commentid>
    <comment_count>41</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-22 03:52:04 -0700</bug_when>
    <thetext>and it made many tests crash on ARMv7 Linux platforms:
https://bugs.webkit.org/show_bug.cgi?id=160082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214130</commentid>
    <comment_count>42</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-25 02:15:49 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; and it made many tests crash on ARMv7 Linux platforms:
&gt; https://bugs.webkit.org/show_bug.cgi?id=160082

bug report to track ARM traditional crashes: bug160157</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283381</attachid>
            <date>2016-07-11 19:42:03 -0700</date>
            <delta_ts>2016-07-13 00:49:37 -0700</delta_ts>
            <desc>it begins</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>28796</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMwODUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSw2ICsxMjgxLDggQEAKIAkJNzkwNUJCNjkxRDEy
MDUwRTAwMTlGRTU3IC8qIElubGluZUFjY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzkwNUJCNjcxRDEyMDUwRTAwMTlGRTU3IC8qIElubGluZUFj
Y2Vzcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc5MTYwREJEMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERCQjFDOEUzRUM4MDA4QzA4
NUEgLyogUHJveHlSZXZva2UuY3BwICovOyB9OwogCQk3OTE2MERCRTFDOEUzRUM4MDA4QzA4NUEg
LyogUHJveHlSZXZva2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5MjMzQzJBMUQzNDcx
NTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0MyODFEMzQ3MTU3MDBDNUE4MzQgLyogSklUQWRkSUMuY3Bw
ICovOyB9OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUQWRkSUMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MjMzQzI5MUQzNDcxNTcw
MEM1QTgzNCAvKiBKSVRBZGRJQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTc5MkNCMzQ5MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdp
bk1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OTJDQjM0NzFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovOyB9Owog
CQk3OTJDQjM0QTFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ4MUM0RUVENUMw
MEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5NjQ2NTZBMUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQ
dXRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OTY0NjU2ODFCOTUyRkYwMDAzMDU5RUUgLyogR2V0UHV0SW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDYgKzM0NzgsOCBAQAogCQk3
OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUFjY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3OTE2MERCQjFDOEUzRUM4MDA4QzA4NUEgLyogUHJveHlSZXZva2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJveHlSZXZva2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3OTE2MERCQzFDOEUzRUM4MDA4QzA4NUEgLyogUHJveHlS
ZXZva2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlSZXZva2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzkyMzNDMjgxRDM0NzE1NzAwQzVBODM0IC8q
IEpJVEFkZElDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVEFk
ZElDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzkyMzNDMjkxRDM0NzE1NzAw
QzVBODM0IC8qIEpJVEFkZElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJ
VEFkZElDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MkNCMzQ3MUM0RUVENUMw
MEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQQ1RvQ29kZU9yaWdpbk1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc5MkNCMzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQQ1RvQ29kZU9yaWdpbk1hcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTY0NjU2ODFCOTUyRkYwMDAzMDU5RUUgLyog
R2V0UHV0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXRQdXRJbmZv
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDU3LDYgKzUwNjEsOCBAQAogCQkJ
CURFNUEwOUZGMUJBM0FDM0UwMDNENDQyNCAvKiBJbnRyaW5zaWNFbWl0dGVyLmNwcCAqLywKIAkJ
CQkxNDI5RDkyRDBFRDIyRDcwMDBCODk2MTkgLyogSklULmNwcCAqLywKIAkJCQkxNDI5RDkyRTBF
RDIyRDcwMDBCODk2MTkgLyogSklULmggKi8sCisJCQkJNzkyMzNDMjgxRDM0NzE1NzAwQzVBODM0
IC8qIEpJVEFkZElDLmNwcCAqLywKKwkJCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklU
QWRkSUMuaCAqLywKIAkJCQlGRTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJh
dG9yLmNwcCAqLywKIAkJCQlGRTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJh
dG9yLmggKi8sCiAJCQkJODZBOTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0aWMu
Y3BwICovLApAQCAtNzA2OCw2ICs3MDc0LDcgQEAKIAkJCQlBNUVBNzBFODE5RjVCMTAxMDA5OEY1
RUMgLyogQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODRGRjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Js
b2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklU
QWRkSUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAyMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMzFCREFDREFD
MDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NTA0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jsb2NrV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLApA
QCAtOTMyMiw2ICs5MzI5LDcgQEAKIAkJCQkwRkY3MjlCMTE2NkFEMzVDMDAwRjVCQTMgLyogUHJv
ZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcyOUIyMTY2
QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckRhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMTkwQ0FDMTg5RDgyRjYwMDBBRTVGMCAvKiBQcm9maWxlckpldHRpc29uUmVhc29uLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTc5MjMzQzJBMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlCMzE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmls
ZXJPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QjQxNjZBRDM1QzAwMEY1QkEz
IC8qIFByb2ZpbGVyT3JpZ2luU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDRDMEMx
QzNFMUMxMTAwNkNEOTg0IC8qIEZUTEV4Y2VwdGlvblRhcmdldC5jcHAgaW4gU291cmNlcyAqLywK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShy
ZXZpc2lvbiAyMDMwODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIklubGlu
ZUNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgi
CisjaW5jbHVkZSAiSklUQWRkSUMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVk
ZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTGV4aWNhbEVudmlyb25tZW50LmgiCkBAIC0z
MDAwLDYgKzMwMDEsMTIgQEAgU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1Yklu
ZgogICAgIHJldHVybiBtX3N0dWJJbmZvcy5hZGQoYWNjZXNzVHlwZSk7CiB9CiAKK0pJVEFkZElD
KiBDb2RlQmxvY2s6OmFkZEpJVEFkZElDKCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgIHJldHVybiBtX2FkZElDcy5hZGQoKTsKK30KKwogU3RydWN0dXJl
U3R1YkluZm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikK
IHsKICAgICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZp
c2lvbiAyMDMwODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBj
bGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRJQzsKIGNsYXNzIEpTTW9kdWxlRW52aXJvbm1l
bnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBQQ1RvQ29kZU9yaWdpbk1h
cDsKQEAgLTI0NSw2ICsyNDYsNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKICAg
ICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNjZXNzVHlwZSk7CisgICAgSklUQWRk
SUMqIGFkZEpJVEFkZElDKCk7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Ig
c3R1YkluZm9CZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmJlZ2luKCk7IH0KICAgICBCYWc8
U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBzdHViSW5mb0VuZCgpIHsgcmV0dXJuIG1fc3R1
YkluZm9zLmVuZCgpOyB9CiAgICAgCkBAIC0xMDEzLDYgKzEwMTUsNyBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdGVyQXRPZmZzZXRMaXN0PiBt
X2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0dWJJ
bmZvczsKKyAgICBCYWc8SklUQWRkSUM+IG1fYWRkSUNzOwogICAgIEJhZzxCeVZhbEluZm8+IG1f
YnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAg
U2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2Fs
bExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAyMDMwODUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDk5LDYgKzIwOTks
MTQgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVz
dGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisgICAgICAgIHNldHVw
VHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjI+KGFyZzEsIGFyZzIpOworICAgICAgICBtb3ZlKGFyZzMsIEdQUkluZm86OmFyZ3VtZW50R1BS
Myk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJndW1lbnRHUFI0KTsKKyAgICAgICAg
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0ZWRJbW0zMiBhcmczLCBH
UFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICBzZXR1cFRocmVlU3R1YkFy
Z3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjQsIEdQUklu
Zm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJnNSk7CkBAIC0yMjE1LDYgKzIyMjMsMTUg
QEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJ
VF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9h
ZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBhcmczKTsKICNlbmRpZgogICAgIH0KKworICAgIHZvaWQg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdz
IGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0KQorICAgIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MS5ncHIoKSwgYXJnMi5ncHIoKSwgYXJnMywgYXJnNCk7CisjZWxzZQorICAgICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BS
KCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBhcmcz
KTsKKyNlbmRpZgorICAgIH0KICAgICAKICAgICB2b2lkIHNldHVwQXJndW1lbnRzKEpTVmFsdWVS
ZWdzIGFyZzEpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkocmV2aXNp
b24gMjAzMDg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUu
aCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgorI2luY2x1ZGUgIkpJVEFkZElDLmgiIAogI2luY2x1ZGUgIkpJVElubGluZXMuaCIKICNpbmNs
dWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgpAQCAtODQsNiArODUs
OCBAQCBKSVQ6OkpJVChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQogCiBKSVQ6On5KSVQo
KQogeworICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVy
YXRpb25TdGF0ZSkKKyAgICAgICAgZGVsZXRlIGVudHJ5LnZhbHVlOwogfQogCiAjaWYgRU5BQkxF
KERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMzA4NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDYgKzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgQ29kZUJsb2NrOwogICAgIGNs
YXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKICAgICBjbGFzcyBKSVQ7CisgICAgY2xhc3MgSklUQWRk
SUM7CiAgICAgY2xhc3MgSWRlbnRpZmllcjsKICAgICBjbGFzcyBJbnRlcnByZXRlcjsKICAgICBj
bGFzcyBKU1Njb3BlOwpAQCAtNjUsNiArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFz
cyBTdHJ1Y3R1cmVTdHViSW5mbzsKIAogICAgIHN0cnVjdCBJbnN0cnVjdGlvbjsKKyAgICBzdHJ1
Y3QgSklUQWRkSUNHZW5lcmF0aW9uU3RhdGU7CiAgICAgc3RydWN0IE9wZXJhbmRUeXBlczsKICAg
ICBzdHJ1Y3QgU2ltcGxlSnVtcFRhYmxlOwogICAgIHN0cnVjdCBTdHJpbmdKdW1wVGFibGU7CkBA
IC03NjQsNiArNzY2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpJLCBpbnQsIEdQUlJlZywgVW5p
cXVlZFN0cmluZ0ltcGwqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkosIGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwLCBK
U1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBSZXN1bHRQcm9maWxlKik7Cisg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKUnBKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBSZXN1bHRQ
cm9maWxlKiwgSklUQWRkSUMqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQ
cm9maWxlKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VK
T0osIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOwpAQCAtOTUzLDYgKzk1Niw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIFBDVG9Db2RlT3JpZ2luTWFwQnVpbGRlciBtX3BjVG9Db2RlT3Jp
Z2luTWFwQnVpbGRlcjsKIAorICAgICAgICBIYXNoTWFwPEluc3RydWN0aW9uKiwgSklUQWRkSUMq
PiBtX2luc3RydWN0aW9uVG9KSVRBZGRJQzsKKyAgICAgICAgSGFzaE1hcDxJbnN0cnVjdGlvbios
IEpJVEFkZElDR2VuZXJhdGlvblN0YXRlKj4gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0
aW9uU3RhdGU7CisKICAgICAgICAgYm9vbCBtX2NhbkJlT3B0aW1pemVkOwogICAgICAgICBib29s
IG1fY2FuQmVPcHRpbWl6ZWRPcklubGluZWQ7CiAgICAgICAgIGJvb2wgbV9zaG91bGRFbWl0UHJv
ZmlsaW5nOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMjAzMDg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3BhY2UgSlNDIHsKQEAg
LTg5LDExICs5MSwxMyBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChD
CiAgICAgICAgIGxlZnROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpOwogICAg
ICAgICByaWdodE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwogCisKICAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxw
ZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCks
IG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1f
cmVzdWx0KTsKICAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKKwog
ICAgICAgICBpZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewogICAgICAgICAgICAg
bV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKICAgICAgICAgICAgIG1fc2xv
d1BhdGhKdW1wTGlzdC5hcHBlbmQocmlnaHROb3RJbnQpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBZGRJQy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBZGRJQy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBZGRJQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKKworI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRv
ci5oIgorI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgi
CisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsKKyAKK3ZvaWQgSklUQWRkSUM6
OmdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYgaml0LCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0
ZSYgc3RhdGUpCit7CisgICAgLy8gRklYTUU6IGFic3RyYWN0IHRoaXMhCisgICAgR1BSUmVnIHNj
cmF0Y2hHUFIgPSBHUFJJbmZvOjpyZWdUMjsKKworICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5h
cHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KSk7CisgICAgc3RhdGUubV9zbG93UGF0
aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KSk7CisKKyAgICBzdGF0
ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92
ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxvYWRHUFIoKSwgc2NyYXRj
aEdQUikpOworCisgICAgaml0LmJveEludDMyKHNjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKK30KKwor
dm9pZCBKSVRBZGRJQzo6Z2VuZXJhdGVPdXRPZkxpbmUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaykKK3sKKyAgICB7CisgICAgICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2sp
OworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUkluZm86OnJlZ1QyOworICAgICAgICBG
UFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRGUFJSZWc7CisKKyAgICAgICAgSklUQWRkR2VuZXJh
dG9yIGdlbihtX2xlZnRPcGVyYW5kLCBtX3JpZ2h0T3BlcmFuZCwgbV9yZXN1bHQsIG1fbGVmdCwg
bV9yaWdodCwgRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgc2NyYXRjaEdQUiwg
c2NyYXRjaEZQUiwgbV9yZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgoaml0KTsKKyAgICAgICAgaWYgKCFnZW4uZGlkRW1pdEZhc3RQYXRoKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIGdlbi5lbmRKdW1wTGlzdCgpLmFwcGVuZChqaXQuanVtcCgpKTsK
KyAgICAgICAgIAorICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sIGppdCwgY29kZUJs
b2NrLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICBpZiAobGlua0J1ZmZlci5kaWRG
YWlsVG9BbGxvY2F0ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxpbmtCdWZm
ZXIubGluayhnZW4uZW5kSnVtcExpc3QoKSwgZG9uZUxvY2F0aW9uKCkpOworICAgICAgICBsaW5r
QnVmZmVyLmxpbmsoZ2VuLnNsb3dQYXRoSnVtcExpc3QoKSwgc2xvd1BhdGhTdGFydExvY2F0aW9u
KCkpOworCisgICAgICAgIG1fY29kZSA9IEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAg
Y29kZUJsb2NrLCBsaW5rQnVmZmVyLCAoIiVzIiwgImdlbmVyYXRpbmcgYWRkIHNuaXBwZXQgaW4g
YmFzZWxpbmUgSklUIikpOworICAgIH0KKworICAgIHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGpp
dCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgIGF1dG8ganVtcCA9IGppdC5qdW1wKCk7CisgICAg
ICAgIC8vIFdlIGRvbid0IG5lZWQgYSBub3Agc2xlZCBoZXJlIGJlY2F1c2Ugbm9ib2R5IHNob3Vs
ZCBiZSBqdW1waW5nIGludG8gdGhlIG1pZGRsZSBvZiBhbiBJQy4KKyAgICAgICAgYm9vbCBuZWVk
c0JyYW5jaENvbXBhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVy
KGppdCwgbV9pbmxpbmVTdGFydC5kYXRhTG9jYXRpb24oKSwgaml0Lm1fYXNzZW1ibGVyLmJ1ZmZl
cigpLmNvZGVTaXplKCksIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQsIG5lZWRzQnJhbmNoQ29t
cGFjdGlvbik7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsK
KyAgICAgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKG1fY29kZS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtC
dWZmZXIsICgiSklUQWRkSUM6IGxpbmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2YgbGluZSBq
aXQgYWRkIGdlbmVyYXRvciIpKTsKKyAgICB9CisKKyAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRj
aENhbGwoc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCk7
Cit9CisKK3ZvaWQgSklUQWRkSUM6OmZpbmFsaXplSW5saW5lQ29kZShKSVRBZGRJQ0dlbmVyYXRp
b25TdGF0ZSYgc3RhdGUsIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCit7CisgICAgQ29kZUxvY2F0
aW9uTGFiZWwgc3RhcnQgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9mYXN0UGF0aFN0
YXJ0KTsKKyAgICBtX2lubGluZVN0YXJ0ID0gc3RhcnQ7CisKKyAgICBpbnQzMl90IGlubGluZVNp
emUgPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICBz
dGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLm1fZmFzdFBhdGhFbmQpKTsKKyAgICBB
U1NFUlQoaW5saW5lU2l6ZSA+IDApOworICAgIG1faW5saW5lU2l6ZSA9IGlubGluZVNpemU7CisK
KyAgICBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbiA9IE1hY3JvQXNzZW1i
bGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVy
LmxvY2F0aW9uT2Yoc3RhdGUubV9zbG93UGF0aENhbGwpKTsKKyAgICBtX2RlbHRhRnJvbVN0YXJ0
VG9TbG93UGF0aFN0YXJ0ID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0
cigKKyAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRo
U3RhcnQpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkSUMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFkZElDLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBZGRJQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpJVEFk
ZElDX2gKKyNkZWZpbmUgSklUQWRkSUNfaAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUg
IkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCisKK25hbWVzcGFj
ZSBKU0MgeworCitjbGFzcyBMaW5rQnVmZmVyOworCitzdHJ1Y3QgSklUQWRkSUNHZW5lcmF0aW9u
U3RhdGUgeworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Zhc3RQYXRoU3RhcnQ7CisgICAg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZmFzdFBhdGhFbmQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIG1fc2xvd1BhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtX3Nsb3dQ
YXRoQ2FsbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgbV9zbG93UGF0aEp1bXBzOwor
fTsKKworY2xhc3MgSklUQWRkSUMgeworcHVibGljOgorICAgIHZvaWQgZ2VuZXJhdGVJbmxpbmUo
Q0NhbGxIZWxwZXJzJiwgSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUmKTsKKyAgICB2b2lkIGdlbmVy
YXRlT3V0T2ZMaW5lKFZNJiwgQ29kZUJsb2NrKik7CisgICAgdm9pZCBmaW5hbGl6ZUlubGluZUNv
ZGUoSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUmLCBMaW5rQnVmZmVyJik7CisgICAgQ29kZUxvY2F0
aW9uTGFiZWwgZG9uZUxvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zm
c2V0KG1faW5saW5lU2l6ZSk7IH0KKyAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFN0YXJ0
TG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmxhYmVsQXRPZmZzZXQobV9kZWx0YUZy
b21TdGFydFRvU2xvd1BhdGhTdGFydCk7IH0KKyAgICBDb2RlTG9jYXRpb25DYWxsIHNsb3dQYXRo
Q2FsbExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5jYWxsQXRPZmZzZXQobV9kZWx0
YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24pOyB9CisKKyAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbV9jb2RlOworICAgIENvZGVMb2NhdGlvbkxhYmVsIG1faW5saW5lU3RhcnQ7Cisg
ICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOworICAgIGludDMyX3QgbV9pbmxpbmVT
aXplOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb247
CisgICAgaW50MzJfdCBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0OworICAgIFNuaXBw
ZXRPcGVyYW5kIG1fbGVmdE9wZXJhbmQ7CisgICAgU25pcHBldE9wZXJhbmQgbV9yaWdodE9wZXJh
bmQ7CisKKyAgICBKU1ZhbHVlUmVncyBtX3Jlc3VsdDsKKyAgICBKU1ZhbHVlUmVncyBtX2xlZnQ7
CisgICAgSlNWYWx1ZVJlZ3MgbV9yaWdodDsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIEpJVEFkZElDX2gKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAkocmV2aXNpb24gMjAzMDg1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpJVC5oIgogCiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5l
cmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRC
aXRPckdlbmVyYXRvci5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlc3VsdFR5cGUu
aCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKIAorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTY5NSw2ICs2OTcsOCBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUNDsK
ICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKKyAgICBVTlVTRURfUEFS
QU0oc2NyYXRjaEdQUik7CisgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hGUFIpOwogCiAgICAgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQ
cm9maWxpbmcoKSkKQEAgLTcwMywxMCArNzA3LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJ
bnN0cnVjdGlvbiogY3VycmUKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5m
aXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkp
OwogCi0gICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMSkpCi0gICAgICAgIGxlZnRPcGVy
YW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9wMSkpOwotICAgIGVsc2Ug
aWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpCi0gICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRD
b25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDIpKTsKKyAgICAvL2lmIChpc09wZXJh
bmRDb25zdGFudEludChvcDEpKQorICAgIC8vICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIo
Z2V0T3BlcmFuZENvbnN0YW50SW50KG9wMSkpOworICAgIC8vZWxzZSBpZiAoaXNPcGVyYW5kQ29u
c3RhbnRJbnQob3AyKSkKKyAgICAvLyAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRP
cGVyYW5kQ29uc3RhbnRJbnQob3AyKSk7CiAKICAgICBSRUxFQVNFX0FTU0VSVCghbGVmdE9wZXJh
bmQuaXNDb25zdCgpIHx8ICFyaWdodE9wZXJhbmQuaXNDb25zdCgpKTsKIApAQCAtNzE1LDYgKzcx
OSwzMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaWYg
KCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KG9wMiwgcmlnaHRSZWdzKTsKIAorICAgIEpJVEFkZElDKiBhZGRJQyA9IG1fY29kZUJsb2NrLT5h
ZGRKSVRBZGRJQygpOworICAgIEpJVEFkZElDR2VuZXJhdGlvblN0YXRlKiBhZGRJQ0dlbmVyYXRp
b25TdGF0ZSA9IG5ldyBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsKKworICAgIFNuaXBwZXRPcGVy
YW5kIG1fbGVmdE9wZXJhbmQ7CisgICAgU25pcHBldE9wZXJhbmQgbV9yaWdodE9wZXJhbmQ7CisK
KyAgICBhZGRJQy0+bV9yZXN1bHQgPSByZXN1bHRSZWdzOworICAgIGFkZElDLT5tX2xlZnQgPSBs
ZWZ0UmVnczsKKyAgICBhZGRJQy0+bV9yaWdodCA9IHJpZ2h0UmVnczsKKyAgICBhZGRJQy0+bV9s
ZWZ0T3BlcmFuZCA9IGxlZnRPcGVyYW5kOworICAgIGFkZElDLT5tX3JpZ2h0T3BlcmFuZCA9IHJp
Z2h0T3BlcmFuZDsKKyAgICBhZGRJQy0+bV9yZXN1bHRQcm9maWxlID0gcmVzdWx0UHJvZmlsZTsK
KworICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX2Zhc3RQYXRoU3RhcnQgPSBsYWJlbCgpOwor
ICAgIGFkZElDLT5nZW5lcmF0ZUlubGluZSgqdGhpcywgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsK
KyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9mYXN0UGF0aEVuZCA9IGxhYmVsKCk7CisgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworCisgICAgbV9pbnN0
cnVjdGlvblRvSklUQWRkSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUMpOworICAgIG1f
aW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmFkZChjdXJyZW50SW5zdHJ1Y3Rp
b24sIGFkZElDR2VuZXJhdGlvblN0YXRlKTsKKworICAgIGFkZFNsb3dDYXNlKGFkZElDR2VuZXJh
dGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMpOworCisgICAgLyoKICAgICBKSVRBZGRHZW5lcmF0
b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCBy
aWdodFJlZ3MsCiAgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hG
UFIsIHJlc3VsdFByb2ZpbGUpOwogCkBAIC03NDAsMTIgKzc2OCwyMyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgICAgICBzbG93UGF0aENhbGwuY2Fs
bCgpOwogICAgICAgICB9CiAgICAgfQorCisgICAgYXV0byBlbmQgPSBsYWJlbCgpOworCisgICAg
YWRkTGlua1Rhc2soCisgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAg
ICAgICAgICAgZGF0YUxvZygiQWRkIGZhc3QgcGF0aCBzaXplOiAiLCAoY2hhciopbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKGVuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVy
LmxvY2F0aW9uT2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRyZXNzKCksICJcbiIpOworICAgICAgICB9
KTsKKyAgICAgICAgKi8KIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBp
dGVyKQogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldChtX3Nsb3dDYXNl
cywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKKyAgICBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0
ZSogYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRp
b25TdGF0ZS5nZXQoY3VycmVudEluc3RydWN0aW9uKTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+bV9zbG93UGF0aFN0YXJ0ID0gbGFiZWwoKTsKKwogICAgIGludCByZXN1bHQgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOwpAQCAtNzY5LDYgKzgwOCwyMiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKElu
c3RydWN0aW9uKiBjCiAgICAgZWxzZSBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkKICAg
ICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9w
MikpOwogCisgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29u
c3QoKSkKKyAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Cisg
ICAgSklUQWRkSUMqIGFkZElDID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUMuZ2V0KGN1cnJlbnRJ
bnN0cnVjdGlvbik7CisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7
CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKKyAgICAgICAgcmVzdWx0UHJvZmlsZSA9
IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAg
IGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmln
aHRSZWdzLCByZXN1bHRQcm9maWxlLCBhZGRJQyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIGFkZExpbmtUYXNrKAorICAgICAgICBbPV0gKExp
bmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGlu
ZUNvZGUoKmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgfSk7CisK
KyAgICAvKgogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKICAgICAgICAgaWYgKGxl
ZnRPcGVyYW5kLmlzQ29uc3QoKSkKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
b3AxLCBsZWZ0UmVncyk7CkBAIC03ODEsNiArODM2LDEzIEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9hZGQoSW5zdHJ1Y3Rpb24qIGMKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2Fs
bCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwogICAgICAgICBzbG93
UGF0aENhbGwuY2FsbCgpOwogICAgIH0KKworICAgIGF1dG8gZW5kID0gbGFiZWwoKTsKKyAgICBh
ZGRMaW5rVGFzaygKKyAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAg
ICAgICAgICBkYXRhTG9nKCJBZGQgc2xvdyBwYXRoIHNpemU6ICIsIChjaGFyKilsaW5rQnVmZmVy
LmxvY2F0aW9uT2YoZW5kKS5leGVjdXRhYmxlQWRkcmVzcygpIC0gKGNoYXIqKWxpbmtCdWZmZXIu
bG9jYXRpb25PZihzdGFydCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgIlxuIik7CisgICAgICAgIH0p
OworICAgICAgICAqLwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCShyZXZpc2lvbiAyMDMwODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDI0LDYgKzQyNCwxNCBAQCBpbmxpbmUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlCiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKK2lubGlu
ZSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKUnBKYWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcx
LCBKU1ZhbHVlUmVncyBhcmcyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlLCBKSVRBZGRJ
QyogYWRkSUMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIs
IFRydXN0ZWRJbW1QdHIocmVzdWx0UHJvZmlsZSksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAg
ICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Cisg
ICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKICNpZiBVU0Uo
SlNWQUxVRTY0KQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBpbnQz
Ml90IGFyZzIsIGludDMyX3QgYXJnMykKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjAzMDg1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJQ1N0
YXRzLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKICNpbmNsdWRl
ICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCkBAIC0yMjY3LDcgKzIyNjgsMjQg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIEpTVmFsdWUg
b3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogICAgIAogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51
bWVyaWNuZXNzKHJlc3VsdCk7CisgICAgaWYgKHJlc3VsdFByb2ZpbGUpCisgICAgICAgIHJlc3Vs
dFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUq
IHJlc3VsdFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAK
KyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1Zh
bHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKyAgICAKKyAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKKyAgICBpZiAocmVzdWx0UHJvZmlsZSkK
KyAgICAgICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKworICAg
IGFkZElDLT5nZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMDMwODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NiArNDIsNyBAQCBjbGFzcyBBcnJheVByb2ZpbGU7CiBjbGFzcyBDYWxsTGlua0luZm87CiBjbGFz
cyBDb2RlQmxvY2s7CiBjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRJQzsKIGNsYXNzIEpT
QXJyYXk7CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgSlNMZXhpY2FsRW52aXJvbm1lbnQ7CkBA
IC04MSw2ICs4Miw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIEljZjogSW5saW5l
Q2FsbEZyYW1lKgogICAgIElkYzogY29uc3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNvZGVkSlNW
YWx1ZQorICAgIEphaWM6IEpJVEFkZElDKgogICAgIEpjcDogY29uc3QgSlNWYWx1ZSoKICAgICBK
c2M6IEpTU2NvcGUqCiAgICAgSnNmOiBKU0Z1bmN0aW9uKgpAQCAtMTM0LDYgKzEzNiw3IEBAIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkoKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpScCko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxl
Kik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlv
bl9FSkpScEphaWMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
UmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRf
T1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBp
bnQzMl90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3Bl
cmF0aW9uX0VKc3NSZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNz
UmVvSnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7
CkBAIC00MDksNiArNDEyLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5k
ZXhTdAogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVk
T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFM
OwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RG
X0lOVEVSTkFMOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283494</attachid>
            <date>2016-07-13 00:49:37 -0700</date>
            <delta_ts>2016-07-13 19:31:06 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>71128</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMxMjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxMiArMTI4MSwxNiBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkExRDM0
NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MjMzQzI4MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5j
cHAgKi87IH07CisJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1
NzAwQzVBODM0IC8qIEpJVEFkZElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3Jp
Z2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07
CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1
QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdl
dFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQw
MEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0MDBCQSAvKiBK
U0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENU
b09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIyODM1MUQzNUQ3
MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJv
ZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBBcml0aFByb2Zp
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QTIy
ODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKIAkJNzlCMDBDQkMx
QzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQjgxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5Q29uc3RydWN0b3IuY3BwICovOyB9OwogCQk3OUIwMENCRDFDNkFCMDdFMDA4OEM2NUQg
LyogUHJveHlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUIw
MENCRTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkExQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLWZuby1v
cHRpbWl6ZS1zaWJsaW5nLWNhbGxzIjsgfTsgfTsKQEAgLTM0NzYsMTIgKzM0ODAsMTYgQEAKIAkJ
NzkwNUJCNjcxRDEyMDUwRTAwMTlGRTU3IC8qIElubGluZUFjY2Vzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVBY2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5UmV2b2tlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5
UmV2b2tlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5UmV2b2tlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5MjMzQzI4MUQzNDcxNTcwMEM1QTgzNCAv
KiBKSVRBZGRJQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRB
ZGRJQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5MjMzQzI5MUQzNDcxNTcw
MEM1QTgzNCAvKiBKSVRBZGRJQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
SVRBZGRJQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVD
MDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAw
QkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0Iz
UENUb09yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFE
MzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5Q29uc3Ry
dWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCOTFDNkFCMDdF
MDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MDU3LDYgKzUwNjUsOCBAQAogCQkJCURFNUEwOUZGMUJBM0FDM0Uw
MDNENDQyNCAvKiBJbnRyaW5zaWNFbWl0dGVyLmNwcCAqLywKIAkJCQkxNDI5RDkyRDBFRDIyRDcw
MDBCODk2MTkgLyogSklULmNwcCAqLywKIAkJCQkxNDI5RDkyRTBFRDIyRDcwMDBCODk2MTkgLyog
SklULmggKi8sCisJCQkJNzkyMzNDMjgxRDM0NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCAq
LywKKwkJCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUQWRkSUMuaCAqLywKIAkJCQlG
RTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmNwcCAqLywKIAkJCQlG
RTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmggKi8sCiAJCQkJODZB
OTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0aWMuY3BwICovLApAQCAtNjU1Niw2
ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcwNTEwMDZBNTk3QyAvKiBBcnJheVBy
b2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEwMDZBNTk3QyAvKiBBcnJheVByb2Zp
bGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNw
cCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggKi8s
CiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5jcHAg
Ki8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5o
ICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAvKiBCeXRlY29kZUNvbnZlbnRpb25z
LmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1RUE3MEU4MTlGNUIxMDEwMDk4RjVF
QyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0FyZ3VtZW50UmVnVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxv
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRB
ZGRJQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
QmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAzMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
MDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCkBA
IC03NzU0LDYgKzc3NjcsNyBAQAogCQkJCUE1MTAwN0MxMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0
QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTUwM0ZBMkExODhGMTA1OTAwMTEwRjE0IC8qIEpTR2xvYmFsT2JqZWN0
U2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5QTIyODM2MUQzNUQ3MUYw
MEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMwMTg1
QkZBQ0MwMDdFOTVBRCAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTUxM0U1QzIxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNDQyQ0IyNTFBNkNEQjhDMDA1RDNEN0MgLyogSlNJ
bnB1dHMuanNvbiBpbiBIZWFkZXJzICovLApAQCAtOTI2Myw2ICs5Mjc3LDcgQEAKIAkJCQkwRkVC
M0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZDNTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2Vt
YmxlckFSTTY0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2
NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2
MDAwMzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU2OEM2MzgxQjkwREUwQjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MzIyLDYgKzkzMzcsNyBAQAogCQkJ
CTBGRjcyOUIxMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QjIxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVy
RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOTBDQUMxODlEODJGNjAwMEFFNUYw
IC8qIFByb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzkyMzND
MkExRDM0NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RjcyOUIzMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkY3MjlCNDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW5TdGFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlENEMwQzFDM0UxQzExMDA2Q0Q5ODQgLyogRlRMRXhj
ZXB0aW9uVGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIK
KworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKKyNpZiBFTkFCTEUoSklUKQordm9pZCBSZXN1bHRQcm9maWxlOjpl
bWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3Ms
IFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQz
MiA9IGppdC5icmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOworICAgIENDYWxsSGVscGVyczo6SnVt
cCBub3REb3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1v
ZGUpOworICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KKyAgICBl
bWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVt
cCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAgIGVtaXRTZXROb25OdW1iZXIoaml0
KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAgaXNJbnQzMi5saW5rKCZqaXQpOworfQorCit2
b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCit7Cisg
ICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50
MzJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxl
OjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKK30KKwordm9pZCBS
ZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYgaml0KQoreworICAg
IGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51
bWJlciksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNw
YWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHByaW50SW50ZXJu
YWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgUmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkKK3sKKyAg
ICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKKworICAgIGlmICghcHJvZmlsZS5kaWRPYnNl
cnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQoIkludDMyIik7CisgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNl
cnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAi
TmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9
CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2Vw
YXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVO
b25OdW1iZXIoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsKKyAgICAg
ICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5k
aWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIkludDMy
T3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8
IjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3Vu
dCgpKSB7CisgICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsKKyAgICAg
ICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSk7CisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Bcml0aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQXJpdGhQcm9maWxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxODQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBBcml0aFByb2ZpbGVfaAorI2RlZmluZSBBcml0aFByb2ZpbGVfaAorCisjaW5jbHVkZSAiR1BS
SW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlICJSZXN1bHRUeXBlLmgi
CisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKyAKK2Ns
YXNzIENDYWxsSGVscGVyczsKKworc3RydWN0IE9ic2VydmVkVHlwZSB7CisgICAgT2JzZXJ2ZWRU
eXBlKHVpbnQ4X3QgYml0cyA9IFR5cGVFbXB0eSkKKyAgICAgICAgOiBtX2JpdHMoYml0cykKKyAg
ICB7IH0KKworICAgIGJvb2wgc2F3SW50MzIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBl
SW50MzI7IH0KKyAgICBib29sIGlzT25seUludDMyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09
IFR5cGVJbnQzMjsgfQorICAgIGJvb2wgc2F3TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRz
ICYgVHlwZU51bWJlcjsgfQorICAgIGJvb2wgaXNPbmx5TnVtYmVyKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRzID09IFR5cGVOdW1iZXI7IH0KKyAgICB1aW50OF90IGJpdHMoKSBjb25zdCB7IHJldHVy
biBtX2JpdHM7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBPYnNlcnZlZFR5cGUmIG90
aGVyKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gb3RoZXIubV9iaXRzOyB9CisKKyAgICBzdGF0
aWMgY29uc3QgdWludDhfdCBUeXBlRW1wdHkgPSAweDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4
X3QgVHlwZUludDMyID0gMHgxOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVOdW1iZXIg
PSAweDAyOworCitwcml2YXRlOgorICAgIHVpbnQ4X3QgbV9iaXRzOworfTsKKworc3RydWN0IFJl
c3VsdFByb2ZpbGUgeworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbnVtYmVy
T2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc1Jlc3VsdFR5cGVT
aGlmdCA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9
IDExOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCByaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE3
OworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBsaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE5Owor
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b202Qml0cyA9ICgxIDw8IDYpIC0gMTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgYm90dG9tMkJpdHMgPSAoMSA8PCAyKSAtIDE7CisgICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IGNsZWFyUmhzT2JzZXJ2ZWRUeXBlQml0cyA9IH4oKDEgPDwg
MTcpIHwgKDEgPDwgMTgpKTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNl
cnZlZFR5cGVCaXRzID0gfigoMSA8PCAxOSkgfCAoMSA8PCAyMCkpOworCisgICAgc3RhdGljX2Fz
c2VydChSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25nIGFz
c3VtcHRpb24gaGVyZSB0aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpcy4iKTsKKworcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzcGVjaWFsRmFzdFBhdGhCaXQgPSAxIDw8IDIx
OworCisgICAgUmVzdWx0UHJvZmlsZShSZXN1bHRUeXBlIGxocywgUmVzdWx0VHlwZSByaHMpCisg
ICAgeworICAgICAgICBtX2JpdHMgPSAobGhzLmJpdHMoKSA8PCBsaHNSZXN1bHRUeXBlU2hpZnQp
IHwgKHJocy5iaXRzKCkgPDwgcmhzUmVzdWx0VHlwZVNoaWZ0KTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlQobGhzUmVzdWx0VHlwZSgpLmJpdHMoKSA9PSBsaHMuYml0cygpICYmIHJoc1Jlc3VsdFR5
cGUoKS5iaXRzKCkgPT0gcmhzLmJpdHMoKSk7CisgICAgfQorICAgIFJlc3VsdFByb2ZpbGUoKQor
ICAgIHsgfQorCisgICAgc3RhdGljIFJlc3VsdFByb2ZpbGUgZnJvbUludCh1aW50MzJfdCBiaXRz
KQorICAgIHsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5t
X2JpdHMgPSBiaXRzOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGVudW0g
T2JzZXJ2ZWRSZXN1bHRzIHsKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAg
ICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAg
ICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAg
SW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKKyAgICB9OworCisgICAgUmVzdWx0VHlwZSBsaHNS
ZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9iaXRzID4+IGxoc1Jlc3Vs
dFR5cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0KKyAgICBSZXN1bHRUeXBlIHJoc1Jlc3VsdFR5
cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4gcmhzUmVzdWx0VHlwZVNo
aWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorCisgICAgT2JzZXJ2ZWRUeXBlIGxoc09ic2VydmVkVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IGxoc09ic2VydmVkVHlw
ZVNoaWZ0KSAmIGJvdHRvbTJCaXRzKTsgfQorICAgIE9ic2VydmVkVHlwZSByaHNPYnNlcnZlZFR5
cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+PiByaHNPYnNlcnZlZFR5
cGVTaGlmdCkgJiBib3R0b20yQml0cyk7IH0KKyAgICB2b2lkIHNldExoc09ic2VydmVkVHlwZShP
YnNlcnZlZFR5cGUgdHlwZSkKKyAgICB7IAorICAgICAgICBtX2JpdHMgJj0gY2xlYXJMaHNPYnNl
cnZlZFR5cGVCaXRzOworICAgICAgICBtX2JpdHMgfD0gdHlwZS5iaXRzKCkgPDwgbGhzT2JzZXJ2
ZWRUeXBlU2hpZnQ7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxoc09ic2VydmVkVHlwZSgpID09
IHR5cGUpOworICAgIH0KKworICAgIHZvaWQgc2V0UmhzT2JzZXJ2ZWRUeXBlKE9ic2VydmVkVHlw
ZSB0eXBlKQorICAgIHsgCisgICAgICAgIG1fYml0cyAmPSBjbGVhclJoc09ic2VydmVkVHlwZUJp
dHM7CisgICAgICAgIG1fYml0cyB8PSB0eXBlLmJpdHMoKSA8PCByaHNPYnNlcnZlZFR5cGVTaGlm
dDsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7Cisg
ICAgfQorCisgICAgdW5zaWduZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBjb25zdAorICAgIHsg
CisgICAgICAgIC8vIEZJWE1FOgorICAgICAgICByZXR1cm4gbV9iaXRzICYgc3BlY2lhbEZhc3RQ
YXRoQml0ID8gMjAgOiAwOworICAgIH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8
IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVy
biBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5l
Z1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVO
b25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAgICBib29s
IGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92
ZXJmbG93KTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2VydmVkTm9u
TmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgdm9pZCBz
ZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQorICAg
IHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CisgICAg
dm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsg
fQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVy
Zmxvdyk7IH0KKworICAgIHZvaWQqIGFkZHJlc3NPZkZsYWdzKCkgeyByZXR1cm4gJm1fYml0czsg
fQorICAgIHZvaWQqIGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9iaXRzOyB9CisgICAgCisg
ICAgdm9pZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAg
aWYgKHZhbHVlLmlzSW50MzIoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZh
bHVlLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIG1fYml0cyB8PSBJbnQzMk92ZXJmbG93IHwg
SW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYml0cyB8PSBOb25OdW1iZXI7Cisg
ICAgfQorCisjaWYgRU5BQkxFKEpJVCkgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8
IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQg
c2VlcyBhCisgICAgLy8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51
bWJlci4KKyAgICB2b2lkIGVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1Zh
bHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOworICAgIAorICAg
IC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJs
ZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMm
KTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1i
ZXIoQ0NhbGxIZWxwZXJzJik7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworICAgIHVpbnQzMl90
IGJpdHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKworcHJpdmF0ZToKKyAgICBib29sIGhh
c0JpdHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIG1hc2s7IH0KKyAgICB2b2lk
IHNldEJpdChpbnQgbWFzaykgeyBtX2JpdHMgfD0gbWFzazsgfQorCisgICAgdWludDMyX3QgbV9i
aXRzIHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBXVEYgewor
Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6OlJlc3VsdFByb2Zp
bGUmKTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBBcml0aFByb2ZpbGVfaApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJl
dmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIK
ICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVy
YXRvci5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlVXNlRGVmLmgiCkBAIC00NSw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiSW5saW5lQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNp
bmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKSVRBZGRJQy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFs
dWUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNMZXhpY2FsRW52aXJv
bm1lbnQuaCIKQEAgLTMwMDAsNiArMzAwMiwzMCBAQCBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJs
b2NrOjphZGRTdHViSW5mCiAgICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZChhY2Nlc3NUeXBlKTsK
IH0KIAorSklUQWRkSUMqIENvZGVCbG9jazo6YWRkSklUQWRkSUMoKQoreworICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1fYWRkSUNzLmFkZCgpOwor
fQorCit2b2lkIENvZGVCbG9jazo6ZHVtcEpJVEFkZElDU3RhdHMoKQoreworICAgIGRvdWJsZSBz
aXplID0gMC4wOworICAgIGRvdWJsZSBvdXRPZkxpbmUgPSAwLjA7CisgICAgYXV0byBmdW5jID0g
WyZdIChDb2RlQmxvY2sqIGNvZGVCbG9jaykgLT4gYm9vbCB7CisgICAgICAgIGZvciAoSklUQWRk
SUMqIGFkZElDIDogY29kZUJsb2NrLT5tX2FkZElDcykgeworICAgICAgICAgICAgKytzaXplOwor
ICAgICAgICAgICAgaWYgKGFkZElDLT5tX2NvZGUpCisgICAgICAgICAgICAgICAgKytvdXRPZkxp
bmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdm0oKS0+
aGVhcC5mb3JFYWNoQ29kZUJsb2NrKGZ1bmMpOworICAgIGRhdGFMb2coIkNvZGVCbG9jayBoYXMg
b3V0T2ZMaW5lIHJhdGlvOiAiLCBvdXRPZkxpbmUvc2l6ZSwgIlxuIik7CisgICAgZGF0YUxvZygi
VG90YWwgbnVtIGFkZCBJQ3M6Iiwgc2l6ZSwgIi4gVG90YWwgbnVtIG91dCBvZiBsaW5lOiAiLCBv
dXRPZkxpbmUsICJcbiIpOworCit9CisKIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZp
bmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7CiAgICAgZm9yIChTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8gOiBtX3N0dWJJbmZvcykgewpAQCAtNDM2MywxNCArNDM4OSwyMyBA
QCB1bnNpZ25lZCBDb2RlQmxvY2s6OnJhcmVDYXNlUHJvZmlsZUNvdW50CiAgICAgcmV0dXJuIDA7
CiB9CiAKK1Jlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2Rl
T2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgIHJldHVybiByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQo
bG9ja2VyLCBieXRlY29kZU9mZnNldCk7Cit9CisKIFJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6
cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBpbnQgYnl0ZWNvZGVPZmZzZXQpCiB7Ci0gICAgaWYgKCFtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1
bHRQcm9maWxlSW5kZXhNYXApCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gaXRl
cmF0b3IgPSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmZpbmQoYnl0
ZWNvZGVPZmZzZXQpOwotICAgIGlmIChpdGVyYXRvciA9PSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1
bHRQcm9maWxlSW5kZXhNYXAtPmVuZCgpKQorICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRl
cnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVPZmZzZXRdLnUub3Bj
b2RlKTsKKyAgICBib29sIGhhc1Byb2ZpbGUgPSBmYWxzZTsKKyAgICBpZiAob3Bjb2RlSUQgPT0g
b3BfYml0b3IgfHwgb3Bjb2RlSUQgPT0gb3BfYml0YW5kIHx8IG9wY29kZUlEID09IG9wX2JpdHhv
ciB8fAorICAgICAgICBvcGNvZGVJRCA9PSBvcF9hZGQgfHwgb3Bjb2RlSUQgPT0gb3BfbXVsIHx8
IG9wY29kZUlEID09IG9wX3N1YiB8fCBvcGNvZGVJRCA9PSBvcF9kaXYpCisgICAgICAgIGhhc1By
b2ZpbGUgPSB0cnVlOworICAgIGlmICghaGFzUHJvZmlsZSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgcmV0dXJuICZtX3Jlc3VsdFByb2ZpbGVzW2l0ZXJhdG9yLT52YWx1ZV07CisgICAg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gJmluc3RydWN0aW9ucygpW2J5dGVjb2RlT2Zmc2V0
ICsgNF07CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxSZXN1bHRQcm9maWxlKj4oJmluc3RydWN0
aW9uLT51Lm9wZXJhbmQpOwogfQogCiB1bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0Q2Fz
ZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKQEAgLTQz
OTUsMjYgKzQ0MzAsNiBAQCBib29sIENvZGVCbG9jazo6Y291bGRUYWtlU3BlY2lhbEZhc3RDYXNl
CiAgICAgcmV0dXJuIHNwZWNpYWxGYXN0Q2FzZUNvdW50ID49IE9wdGlvbnM6OmNvdWxkVGFrZVNs
b3dDYXNlTWluaW11bUNvdW50KCk7CiB9CiAKLVJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6ZW5z
dXJlUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1cm4gZW5zdXJlUmVzdWx0UHJvZmlsZShs
b2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLX0KLQotUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpl
bnN1cmVSZXN1bHRQcm9maWxlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgaW50
IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUgPSByZXN1bHRQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBieXRlY29kZU9mZnNldCk7Ci0gICAgaWYg
KCFwcm9maWxlKSB7Ci0gICAgICAgIG1fcmVzdWx0UHJvZmlsZXMuYXBwZW5kKFJlc3VsdFByb2Zp
bGUoYnl0ZWNvZGVPZmZzZXQpKTsKLSAgICAgICAgcHJvZmlsZSA9ICZtX3Jlc3VsdFByb2ZpbGVz
Lmxhc3QoKTsKLSAgICAgICAgQVNTRVJUKCZtX3Jlc3VsdFByb2ZpbGVzLmxhc3QoKSA9PSAmbV9y
ZXN1bHRQcm9maWxlc1ttX3Jlc3VsdFByb2ZpbGVzLnNpemUoKSAtIDFdKTsKLSAgICAgICAgaWYg
KCFtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXApCi0gICAgICAgICAgICBt
X2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAgPSBzdGQ6Om1ha2VfdW5pcXVl
PEJ5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA+KCk7Ci0gICAgICAgIG1fYnl0
ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+YWRkKGJ5dGVjb2RlT2Zmc2V0LCBt
X3Jlc3VsdFByb2ZpbGVzLnNpemUoKSAtIDEpOwotICAgIH0KLSAgICByZXR1cm4gcHJvZmlsZTsK
LX0KLQogI2lmIEVOQUJMRShKSVQpCiBERkc6OkNhcGFiaWxpdHlMZXZlbCBDb2RlQmxvY2s6OmNh
cGFiaWxpdHlMZXZlbCgpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5oCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAKIG5h
bWVzcGFjZSBKU0MgewogCiBjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRJQzsKIGNsYXNz
IEpTTW9kdWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFz
cyBQQ1RvQ29kZU9yaWdpbk1hcDsKQEAgLTg4LDYgKzg5LDggQEAgY2xhc3MgVHlwZUxvY2F0aW9u
OwogCiBlbnVtIGNsYXNzIEFjY2Vzc1R5cGUgOiBpbnQ4X3Q7CiAKK3N0cnVjdCBSZXN1bHRQcm9m
aWxlOworCiB0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qLCBD
b2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBTdHViSW5mb01hcDsKIAogZW51bSBSZW9wdGltaXph
dGlvbk1vZGUgeyBEb250Q291bnRSZW9wdGltaXphdGlvbiwgQ291bnRSZW9wdGltaXphdGlvbiB9
OwpAQCAtMjQ1LDYgKzI0OCw4IEBAIHB1YmxpYzoKICAgICAKICNpZiBFTkFCTEUoSklUKQogICAg
IFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbyhBY2Nlc3NUeXBlKTsKKyAgICBKSVRBZGRJ
QyogYWRkSklUQWRkSUMoKTsKKyAgICB2b2lkIGR1bXBKSVRBZGRJQ1N0YXRzKCk7CiAgICAgQmFn
PFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1YkluZm9CZWdpbigpIHsgcmV0dXJuIG1f
c3R1YkluZm9zLmJlZ2luKCk7IH0KICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRv
ciBzdHViSW5mb0VuZCgpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmVuZCgpOyB9CiAgICAgCkBAIC00
NDAsOSArNDQ1LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdmFsdWUgPj0gT3B0aW9uczo6
Y291bGRUYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKICAgICB9CiAKLSAgICBSZXN1bHRQcm9m
aWxlKiBlbnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCk7Ci0gICAgUmVzdWx0
UHJvZmlsZSogZW5zdXJlUmVzdWx0UHJvZmlsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
aW50IGJ5dGVjb2RlT2Zmc2V0KTsKICAgICB1bnNpZ25lZCBudW1iZXJPZlJlc3VsdFByb2ZpbGVz
KCkgeyByZXR1cm4gbV9yZXN1bHRQcm9maWxlcy5zaXplKCk7IH0KKyAgICBSZXN1bHRQcm9maWxl
KiByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCk7CiAKICAgICB1bnNpZ25lZCBz
cGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgaW50IGJ5dGVjb2RlT2Zmc2V0KTsKQEAgLTEwMTMsNiArMTAxNyw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJB
dE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBCYWc8U3RydWN0dXJlU3R1
YkluZm8+IG1fc3R1YkluZm9zOworICAgIEJhZzxKSVRBZGRJQz4gbV9hZGRJQ3M7CiAgICAgQmFn
PEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwogICAgIEJhZzxDYWxsTGlua0luZm8+IG1fY2FsbExp
bmtJbmZvczsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1Nl
bnRpbmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIw
MzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3MCArMzEsNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
I2lmIEVOQUJMRShKSVQpCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVz
cyhDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBt
b2RlKQotewotICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50
MzIocmVncywgbW9kZSk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5i
cmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7Ci0gICAgLy8gRklYTUU6
IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgotICAgIGVtaXRTZXREb3VibGUoaml0KTsK
LSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7Ci0gICAgbm90RG91Ymxl
LmxpbmsoJmppdCk7Ci0gICAgZW1pdFNldE5vbk51bWJlcihqaXQpOwotICAgIGRvbmUubGluaygm
aml0KTsKLSAgICBpc0ludDMyLmxpbmsoJmppdCk7Ci19Ci0KLXZvaWQgUmVzdWx0UHJvZmlsZTo6
ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0
UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBS
ZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRT
ZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJz
OjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotI2VuZGlmIC8vIEVOQUJM
RShKSVQpCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RGIHsKLSAgICAKLXVz
aW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb25zdCBSZXN1bHRQcm9maWxlJiBwcm9maWxlKQotewotICAgIGNvbnN0IGNoYXIqIHNlcGFy
YXRvciA9ICIiOwotCi0gICAgaWYgKCFwcm9maWxlLmRpZE9ic2VydmVOb25JbnQzMigpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiSW50MzIiKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkp
IHsKLSAgICAgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWdaZXJvRG91YmxlIik7Ci0g
ICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2Zp
bGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnByaW50
KCJOb25OZWdaZXJvRG91YmxlIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAg
ICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJlciIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0g
InwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIpOwotICAgICAg
ICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRp
ZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50NTJP
dmVyZmxvdyIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAg
fQotICAgIGlmIChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpIHsKLSAgICAgICAgb3V0
LnByaW50KCIgc3BlY2lhbCBmYXN0IHBhdGg6ICIpOwotICAgICAgICBvdXQucHJpbnQocHJvZmls
ZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdU
RgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUu
aAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zh
bHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksODggKzIwOSw2IEBAIGlubGluZSBp
bnQgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmYKICAgICByZXR1cm4gcmFyZUNhc2VQcm9m
aWxlLT5tX2J5dGVjb2RlT2Zmc2V0OwogfQogCi1zdHJ1Y3QgUmVzdWx0UHJvZmlsZSB7Ci1wcml2
YXRlOgotICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtYmVyT2ZGbGFnQml0cyA9IDU7Ci0KLXB1Ymxp
YzoKLSAgICBSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLSAgICAgICAgOiBtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3MoYnl0ZWNvZGVPZmZzZXQgPDwgbnVtYmVyT2ZGbGFnQml0cykK
LSAgICB7Ci0gICAgICAgIEFTU0VSVCgoKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9mRmxhZ0Jp
dHMpID4+IG51bWJlck9mRmxhZ0JpdHMpID09IGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICB9Ci0KLSAg
ICBlbnVtIE9ic2VydmVkUmVzdWx0cyB7Ci0gICAgICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8
IDAsCi0gICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDEsCi0gICAgICAgIE5vbk51bWJl
ciAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIEludDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCi0g
ICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDQsCi0gICAgfTsKLQotICAgIGludCBieXRl
Y29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyA+PiBu
dW1iZXJPZkZsYWdCaXRzOyB9Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0KLSAgICBib29sIGRpZE9i
c2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8
IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJs
ZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1
cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAg
Ym9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1i
ZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJu
IGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KLSAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9p
ZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91Ymxl
KTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVy
b0RvdWJsZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9u
TnVtYmVyKTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQo
SW50MzJPdmVyZmxvdyk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpIHsg
c2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9Ci0KLSAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsg
cmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KLSAgICB2b2lkKiBhZGRyZXNzT2ZT
cGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9
Ci0gICAgCi0gICAgdm9pZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQotICAgIHsK
LSAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRB
bmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3Vi
bGUgfCBOZWdaZXJvRG91YmxlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1iZXI7Ci0gICAgfQotCi0jaWYg
RU5BQkxFKEpJVCkgICAgCi0gICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZs
b3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCi0gICAg
Ly8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KLSAgICB2
b2lkIGVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFn
UmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwotICAgIAotICAgIC8vIFNldHMgKElu
dDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9E
b3VibGUpLgotICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKLSAgICAKLSAg
ICAvLyBTZXRzIE5vbk51bWJlci4KLSAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxw
ZXJzJik7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotcHJpdmF0ZToKLSAgICBib29sIGhhc0Jp
dHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyAmIG1h
c2s7IH0KLSAgICB2b2lkIHNldEJpdChpbnQgbWFzaykgeyBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxh
Z3MgfD0gbWFzazsgfQotCi0gICAgaW50IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFnczsKLSAgICB1
bnNpZ25lZCBtX3NwZWNpYWxGYXN0UGF0aENvdW50IHsgMCB9OwotfTsKLQotaW5saW5lIGludCBn
ZXRSZXN1bHRQcm9maWxlQnl0ZWNvZGVPZmZzZXQoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKLXsK
LSAgICByZXR1cm4gcHJvZmlsZS0+Ynl0ZWNvZGVPZmZzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJl
YW0mLCBjb25zdCBKU0M6OlJlc3VsdFByb2ZpbGUmKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0K
ICNlbmRpZiAvLyBWYWx1ZVByb2ZpbGVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNp
b24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAi
QXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
QEAgLTE1OTgsNyArMTU5OSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
QmluYXIKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9iaXRvciB8fCBvcGNvZGVJRCA9PSBvcF9i
aXRhbmQgfHwgb3Bjb2RlSUQgPT0gb3BfYml0eG9yIHx8CiAgICAgICAgIG9wY29kZUlEID09IG9w
X2FkZCB8fCBvcGNvZGVJRCA9PSBvcF9tdWwgfHwgb3Bjb2RlSUQgPT0gb3Bfc3ViIHx8IG9wY29k
ZUlEID09IG9wX2RpdikKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHR5cGVzLnRvSW50
KCkpOworICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoUmVzdWx0UHJvZmlsZSh0eXBlcy5m
aXJzdCgpLCB0eXBlcy5zZWNvbmQoKSkuYml0cygpKTsKIAogICAgIHJldHVybiBkc3Q7CiB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQXJy
YXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgogI2luY2x1
ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsSGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0Nh
bGxIZWxwZXJzLmgJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQ0NhbGxIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOTksNiArMjA5OSwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW1Q
dHIgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0KQorICAgIHsKKyAgICAgICAgc2V0dXBUd29TdHVi
QXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMj4oYXJn
MSwgYXJnMik7CisgICAgICAgIG1vdmUoYXJnMywgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKKyAg
ICAgICAgbW92ZShhcmc0LCBHUFJJbmZvOjphcmd1bWVudEdQUjQpOworICAgICAgICBtb3ZlKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIH0K
KwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BS
UmVnIGFyZzEsIFRydXN0ZWRJbW1QdHIgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMsIEdQUlJlZyBh
cmc0LCBHUFJSZWcgYXJnNSkKICAgICB7CiAgICAgICAgIHNldHVwVGhyZWVTdHViQXJnc0dQUjxH
UFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSNCwgR1BSSW5mbzo6YXJn
dW1lbnRHUFI1PihhcmcxLCBhcmc0LCBhcmc1KTsKQEAgLTIyMTUsNiArMjIyMywxNSBAQCBwdWJs
aWM6CiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1Z
X0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCks
IGFyZzIudGFnR1BSKCksIGFyZzMpOwogI2VuZGlmCiAgICAgfQorCisgICAgdm9pZCBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwg
VHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworI2lmIFVTRShK
U1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigp
LCBhcmcyLmdwcigpLCBhcmczLCBhcmc0KTsKKyNlbHNlCisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJn
MS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOworI2Vu
ZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2V0dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJn
MSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3JGaXhlZFZNUG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCShyZXZpc2lvbiAyMDMxMjAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZN
UG9vbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsOCBAQCBSZWZQdHI8RXhlY3V0
YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQorICAgIC8vTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNz
ID0gYWxsb2NhdG9yLT5jdXJyZW50U3RhdGlzdGljcygpOworICAgIC8vZGF0YUxvZygiQ3VycmVu
dCBleGVjdXRhYmxlIG1lbW9yeSBieXRlcyBhbGxvY2F0ZWQ6ICIsIHN0YXRpc3RpY3MuYnl0ZXNB
bGxvY2F0ZWQsICJcbiIpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgi
CiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJKSVRBZGRJQy5oIiAKICNpbmNs
dWRlICJKSVRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkpTQXJyYXkuaCIKQEAgLTg0LDYgKzg1LDggQEAgSklUOjpKSVQoVk0qIHZtLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaykKIAogSklUOjp+SklUKCkKIHsKKyAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9p
bnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUpCisgICAgICAgIGRlbGV0ZSBlbnRy
eS52YWx1ZTsKIH0KIAogI2lmIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw2IEBACiAjaW5jbHVkZSAiSlNJbnRlcmZh
Y2VKSVQuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQQ1RvQ29kZU9yaWdpbk1h
cC5oIgotI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJVbnVzZWRQb2ludGVyLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTYsNiArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBjbGFzcyBDb2RlQmxvY2s7CiAgICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwogICAgIGNs
YXNzIEpJVDsKKyAgICBjbGFzcyBKSVRBZGRJQzsKICAgICBjbGFzcyBJZGVudGlmaWVyOwogICAg
IGNsYXNzIEludGVycHJldGVyOwogICAgIGNsYXNzIEpTU2NvcGU7CkBAIC02NSw2ICs2NSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvOwogCiAgICAgc3Ry
dWN0IEluc3RydWN0aW9uOworICAgIHN0cnVjdCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsKICAg
ICBzdHJ1Y3QgT3BlcmFuZFR5cGVzOwogICAgIHN0cnVjdCBTaW1wbGVKdW1wVGFibGU7CiAgICAg
c3RydWN0IFN0cmluZ0p1bXBUYWJsZTsKQEAgLTQzNSw3ICs0MzYsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCBjb21waWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRpZmllciop
OwogCiAgICAgICAgIC8vIEFyaXRobWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAgdm9pZCBl
bWl0U3ViMzJDb25zdGFudChpbnQgZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQsIFJlc3Vs
dFR5cGUgb3BUeXBlKTsKICAgICAgICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bjb2RlSUQs
IGludCBkc3QsIGludCBvcDEsIGludCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3QmIG5vdElu
dDMyT3AxLCBKdW1wTGlzdCYgbm90SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVycyA9IHRy
dWUsIGJvb2wgb3AySXNJblJlZ2lzdGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0UoSlNWQUxV
RTMyXzY0KQpAQCAtNzY0LDYgKzc2NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBH
UFJSZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJv
ZmlsZSopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSlJwSmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVn
cywgUmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJS
ZWcsIEFycmF5UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZhbElu
Zm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9w
ZXJhdGlvbl9FSk9KLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKQEAgLTk1Myw2ICs5NTQsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIgbV9w
Y1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXI7CiAKKyAgICAgICAgSGFzaE1hcDxJbnN0cnVjdGlvbios
IEpJVEFkZElDKj4gbV9pbnN0cnVjdGlvblRvSklUQWRkSUM7CisgICAgICAgIEhhc2hNYXA8SW5z
dHJ1Y3Rpb24qLCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSo+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFk
ZElDR2VuZXJhdGlvblN0YXRlOworCiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZDsKICAg
ICAgICAgYm9vbCBtX2NhbkJlT3B0aW1pemVkT3JJbmxpbmVkOwogICAgICAgICBib29sIG1fc2hv
dWxkRW1pdFByb2ZpbGluZzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRk
R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEFkZEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgog
CisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCiAj
aWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC04OSwxMSArOTIsMTMgQEAgdm9p
ZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBsZWZ0Tm90SW50
ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsKICAgICAgICAgcmlnaHROb3RJbnQgPSBq
aXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKIAorCiAgICAgICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmln
aHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKIAog
ICAgICAgICBqaXQuYm94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7CiAgICAgICAgIG1f
ZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwogCisKICAgICAgICAgaWYgKCFqaXQuc3Vw
cG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKICAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5h
cHBlbmQobGVmdE5vdEludCk7CiAgICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5k
KHJpZ2h0Tm90SW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkSUMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkSUMuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRJQy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSklU
QWRkSUMuaCIKKworI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE9w
ZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoSklUKQor
CituYW1lc3BhY2UgSlNDIHsKKyAKK3ZvaWQgSklUQWRkSUM6OmdlbmVyYXRlSW5saW5lKENDYWxs
SGVscGVycyYgaml0LCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCit7CisgICAgLy8g
RklYTUU6IGFic3RyYWN0IHRoaXMhCisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBHUFJJbmZvOjpy
ZWdUMjsKKworICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90
SW50MzIobV9sZWZ0KSk7CisgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJh
bmNoSWZOb3RJbnQzMihtX3JpZ2h0KSk7CisKKyAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBw
ZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxv
YWRHUFIoKSwgbV9sZWZ0LnBheWxvYWRHUFIoKSwgc2NyYXRjaEdQUikpOworCisgICAgaml0LmJv
eEludDMyKHNjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKK30KKwordm9pZCBKSVRBZGRJQzo6Z2VuZXJh
dGVPdXRPZkxpbmUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICB7CisgICAg
ICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICBHUFJSZWcgc2Ny
YXRjaEdQUiA9IEdQUkluZm86OnJlZ1QyOworICAgICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IElu
dmFsaWRGUFJSZWc7CisKKyAgICAgICAgSklUQWRkR2VuZXJhdG9yIGdlbihtX2xlZnRPcGVyYW5k
LCBtX3JpZ2h0T3BlcmFuZCwgbV9yZXN1bHQsIG1fbGVmdCwgbV9yaWdodCwgRlBSSW5mbzo6ZnBS
ZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgbV9yZXN1bHRQ
cm9maWxlKTsKKyAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAgaWYg
KCFnZW4uZGlkRW1pdEZhc3RQYXRoKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGdl
bi5lbmRKdW1wTGlzdCgpLmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgIAorICAgICAgICBM
aW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sIGppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbkNh
bkZhaWwpOworICAgICAgICBpZiAobGlua0J1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxpbmtCdWZmZXIubGluayhnZW4uZW5kSnVtcExp
c3QoKSwgZG9uZUxvY2F0aW9uKCkpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmsoZ2VuLnNsb3dQ
YXRoSnVtcExpc3QoKSwgc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOworCisgICAgICAgIG1fY29k
ZSA9IEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgY29kZUJsb2NrLCBsaW5rQnVmZmVy
LCAoIiVzIiwgImdlbmVyYXRpbmcgYWRkIHNuaXBwZXQgaW4gYmFzZWxpbmUgSklUIikpOworICAg
IH0KKworICAgIHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7Cisg
ICAgICAgIGF1dG8ganVtcCA9IGppdC5qdW1wKCk7CisgICAgICAgIC8vIFdlIGRvbid0IG5lZWQg
YSBub3Agc2xlZCBoZXJlIGJlY2F1c2Ugbm9ib2R5IHNob3VsZCBiZSBqdW1waW5nIGludG8gdGhl
IG1pZGRsZSBvZiBhbiBJQy4KKyAgICAgICAgYm9vbCBuZWVkc0JyYW5jaENvbXBhY3Rpb24gPSBm
YWxzZTsKKyAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbV9pbmxpbmVTdGFydC5k
YXRhTG9jYXRpb24oKSwgaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCksIEpJVENv
bXBpbGF0aW9uTXVzdFN1Y2NlZWQsIG5lZWRzQnJhbmNoQ29tcGFjdGlvbik7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsKKyAgICAgICAgbGlua0J1ZmZlci5s
aW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKG1fY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSkpOworICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiSklUQWRkSUM6IGxp
bmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2YgbGluZSBqaXQgYWRkIGdlbmVyYXRvciIpKTsK
KyAgICB9CisKKyAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaENhbGwoc2xvd1BhdGhDYWxsTG9j
YXRpb24oKSwgb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCk7Cit9CisKK3ZvaWQgSklUQWRkSUM6
OmZpbmFsaXplSW5saW5lQ29kZShKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIExpbmtC
dWZmZXImIGxpbmtCdWZmZXIpCit7CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgc3RhcnQgPSBsaW5r
QnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9mYXN0UGF0aFN0YXJ0KTsKKyAgICBtX2lubGluZVN0
YXJ0ID0gc3RhcnQ7CisKKyAgICBpbnQzMl90IGlubGluZVNpemUgPSBNYWNyb0Fzc2VtYmxlcjo6
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2Nh
dGlvbk9mKHN0YXRlLm1fZmFzdFBhdGhFbmQpKTsKKyAgICBBU1NFUlQoaW5saW5lU2l6ZSA+IDAp
OworICAgIG1faW5saW5lU2l6ZSA9IGlubGluZVNpemU7CisKKyAgICBtX2RlbHRhRnJvbVN0YXJ0
VG9TbG93UGF0aENhbGxMb2NhdGlvbiA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2Vl
bkNvZGVQdHIoCisgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9z
bG93UGF0aENhbGwpKTsKKyAgICBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0ID0gTWFj
cm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgc3RhcnQsIGxp
bmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRoU3RhcnQpKTsKK30KKworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QWRkSUMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZElD
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZElDLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSklUQWRkSUNfaAorI2RlZmluZSBKSVRBZGRJ
Q19oCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5j
bHVkZSAiU25pcHBldE9wZXJhbmQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtC
dWZmZXI7CisKK3N0cnVjdCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSB7CisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIG1fZmFzdFBhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwg
bV9mYXN0UGF0aEVuZDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9zbG93UGF0aFN0YXJ0
OworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1fc2xvd1BhdGhDYWxsOworICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCBtX3Nsb3dQYXRoSnVtcHM7Cit9OworCitjbGFzcyBKSVRBZGRJQyB7
CitwdWJsaWM6CisgICAgdm9pZCBnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmLCBKSVRBZGRJ
Q0dlbmVyYXRpb25TdGF0ZSYpOworICAgIHZvaWQgZ2VuZXJhdGVPdXRPZkxpbmUoVk0mLCBDb2Rl
QmxvY2sqKTsKKyAgICB2b2lkIGZpbmFsaXplSW5saW5lQ29kZShKSVRBZGRJQ0dlbmVyYXRpb25T
dGF0ZSYsIExpbmtCdWZmZXImKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lTG9jYXRpb24o
KSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmxhYmVsQXRPZmZzZXQobV9pbmxpbmVTaXplKTsgfQor
ICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoU3RhcnRMb2NhdGlvbigpIHsgcmV0dXJuIG1f
aW5saW5lU3RhcnQubGFiZWxBdE9mZnNldChtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0
KTsgfQorICAgIENvZGVMb2NhdGlvbkNhbGwgc2xvd1BhdGhDYWxsTG9jYXRpb24oKSB7IHJldHVy
biBtX2lubGluZVN0YXJ0LmNhbGxBdE9mZnNldChtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENh
bGxMb2NhdGlvbik7IH0KKworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBtX2NvZGU7CisgICAg
Q29kZUxvY2F0aW9uTGFiZWwgbV9pbmxpbmVTdGFydDsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jl
c3VsdFByb2ZpbGU7CisgICAgaW50MzJfdCBtX2lubGluZVNpemU7CisgICAgaW50MzJfdCBtX2Rl
bHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbjsKKyAgICBpbnQzMl90IG1fZGVsdGFG
cm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQ7CisgICAgU25pcHBldE9wZXJhbmQgbV9sZWZ0T3BlcmFu
ZDsKKyAgICBTbmlwcGV0T3BlcmFuZCBtX3JpZ2h0T3BlcmFuZDsKKworICAgIEpTVmFsdWVSZWdz
IG1fcmVzdWx0OworICAgIEpTVmFsdWVSZWdzIG1fbGVmdDsKKyAgICBKU1ZhbHVlUmVncyBtX3Jp
Z2h0OworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQor
CisjZW5kaWYgLy8gSklUQWRkSUNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5
IEBACiAjaWYgRU5BQkxFKEpJVCkKICNpbmNsdWRlICJKSVQuaCIKIAorI2luY2x1ZGUgIkFyaXRo
UHJvZmlsZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgi
CiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSklUQml0T3JHZW5lcmF0b3IuaCIKQEAgLTQ4LDYgKzUwLDcgQEAK
ICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02ODAsNyArNjgz
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVy
YW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MCk7CkBAIC02OTUsMTAgKzY5OCwxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUNDsKICAgICBGUFJSZWcgc2Ny
YXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oc2NyYXRjaEdQUik7
CisgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hGUFIpOwogCiAgICAgUmVzdWx0UHJvZmlsZSogcmVz
dWx0UHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAg
ICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1f
Ynl0ZWNvZGVPZmZzZXQpOworICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPnJl
c3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2J5dGVjb2RlT2Zmc2V0KTsKIAogICAgIFNu
aXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVy
YW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC03MTAsMTEgKzcxNSwzNSBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAKICAgICBSRUxFQVNFX0FT
U0VSVCghbGVmdE9wZXJhbmQuaXNDb25zdCgpIHx8ICFyaWdodE9wZXJhbmQuaXNDb25zdCgpKTsK
IAotICAgIGlmICghbGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgIC8vaWYgKCFsZWZ0T3BlcmFu
ZC5pc0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVn
cyk7Ci0gICAgaWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgIC8vaWYgKCFyaWdodE9w
ZXJhbmQuaXNDb25zdCgpKQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmln
aHRSZWdzKTsKIAorICAgIEpJVEFkZElDKiBhZGRJQyA9IG1fY29kZUJsb2NrLT5hZGRKSVRBZGRJ
QygpOworICAgIEpJVEFkZElDR2VuZXJhdGlvblN0YXRlKiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9
IG5ldyBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsKKworICAgIFNuaXBwZXRPcGVyYW5kIG1fbGVm
dE9wZXJhbmQ7CisgICAgU25pcHBldE9wZXJhbmQgbV9yaWdodE9wZXJhbmQ7CisKKyAgICBhZGRJ
Qy0+bV9yZXN1bHQgPSByZXN1bHRSZWdzOworICAgIGFkZElDLT5tX2xlZnQgPSBsZWZ0UmVnczsK
KyAgICBhZGRJQy0+bV9yaWdodCA9IHJpZ2h0UmVnczsKKyAgICBhZGRJQy0+bV9sZWZ0T3BlcmFu
ZCA9IGxlZnRPcGVyYW5kOworICAgIGFkZElDLT5tX3JpZ2h0T3BlcmFuZCA9IHJpZ2h0T3BlcmFu
ZDsKKyAgICBhZGRJQy0+bV9yZXN1bHRQcm9maWxlID0gcmVzdWx0UHJvZmlsZTsKKworICAgIGFk
ZElDR2VuZXJhdGlvblN0YXRlLT5tX2Zhc3RQYXRoU3RhcnQgPSBsYWJlbCgpOworICAgIGFkZElD
LT5nZW5lcmF0ZUlubGluZSgqdGhpcywgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKyAgICBhZGRJ
Q0dlbmVyYXRpb25TdGF0ZS0+bV9mYXN0UGF0aEVuZCA9IGxhYmVsKCk7CisgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworCisgICAgbV9pbnN0cnVjdGlvblRv
SklUQWRkSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUMpOworICAgIG1faW5zdHJ1Y3Rp
b25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIGFkZElD
R2VuZXJhdGlvblN0YXRlKTsKKworICAgIGFkZFNsb3dDYXNlKGFkZElDR2VuZXJhdGlvblN0YXRl
LT5tX3Nsb3dQYXRoSnVtcHMpOworCisgICAgLyoKICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxl
ZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Ms
CiAgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3Vs
dFByb2ZpbGUpOwogCkBAIC03NDAsMTYgKzc2OSwyNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQo
SW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwogICAg
ICAgICB9CiAgICAgfQorCisgICAgYXV0byBlbmQgPSBsYWJlbCgpOworCisgICAgYWRkTGlua1Rh
c2soCisgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAg
ZGF0YUxvZygiQWRkIGZhc3QgcGF0aCBzaXplOiAiLCAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlv
bk9mKGVuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9u
T2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRyZXNzKCksICJcbiIpOworICAgICAgICB9KTsKKyAgICAg
ICAgKi8KIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewog
ICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwg
bV9ieXRlY29kZU9mZnNldCk7CiAKKyAgICBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSogYWRkSUNH
ZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5n
ZXQoY3VycmVudEluc3RydWN0aW9uKTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93
UGF0aFN0YXJ0ID0gbGFiZWwoKTsKKwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwot
ICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJv
ZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRU
eXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CkBAIC03NjksMTggKzgwOSw0MSBA
QCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjCiAgICAgZWxzZSBpZiAo
aXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkKICAgICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0
SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9wMikpOwogCisgICAgLy9pZiAobGVmdE9wZXJh
bmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJl
Z3MpOworICAgIC8vaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1f
aW5zdHJ1Y3Rpb25Ub0pJVEFkZElDLmdldChjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgIFJlc3Vs
dFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIGlmIChzaG91bGRFbWl0UHJv
ZmlsaW5nKCkpCisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0UHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOworICAgIGFkZElDR2VuZXJh
dGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVB
ZGRQcm9maWxlZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1
bHRQcm9maWxlLCBhZGRJQyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJl
c3VsdFJlZ3MpOworICAgIGFkZExpbmtUYXNrKAorICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpIHsKKyAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUoKmFkZElD
R2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgfSk7CisKKyAgICAvKgogICAg
IGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlz
Q29uc3QoKSkKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVn
cyk7CiAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2Zp
bGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5
dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1f
Y29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNl
dCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVz
dWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CiAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVj
dGlvbiwgc2xvd19wYXRoX2FkZCk7CiAgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiAgICAg
fQorCisgICAgYXV0byBlbmQgPSBsYWJlbCgpOworICAgIGFkZExpbmtUYXNrKAorICAgICAgICBb
PV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIkFkZCBz
bG93IHBhdGggc2l6ZTogIiwgKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihlbmQpLmV4ZWN1
dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0KS5leGVj
dXRhYmxlQWRkcmVzcygpLCAiXG4iKTsKKyAgICAgICAgfSk7CisgICAgICAgICovCiB9CiAKIHZv
aWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAt
Nzg4LDcgKzg1MSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUK
ICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBp
bnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMg
PSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7
CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpm
cm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7
CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDApOwpAQCAtODA1LDcgKzg2OCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJ
bnN0cnVjdGlvbiogY3VycmUKIAogICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFBy
b2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0
KTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBs
ZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJh
bmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtODYxLDcgKzkyNCw3IEBAIHZvaWQgSklUOjplbWl0X29w
X211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
LSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzKFJlc3VsdFBy
b2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0
VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9w
ZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFs
dWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtODc5LDcgKzk0Miw3IEBA
IHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKIAogICAgIFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmls
aW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0
UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29k
ZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7
CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBT
bmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtOTMwLDcgKzk5
Myw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICBpbnQg
cmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5k
VHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3Bl
cmFuZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9u
WzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBV
U0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDApOwpAQCAtOTU1LDcgKzEwMTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3Ry
dWN0aW9uKiBjCiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJl
Z3MpOwogICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAg
ICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldCht
X2J5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11
bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxl
KTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwog
ICAgIH0gZWxzZSB7CkBAIC05NjksNyArMTAzMiw3IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJ
bnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBP
cGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6
OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgp
LCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQp
LnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdz
IGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtOTg3LDcgKzEwNTAsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAKICAgICBSZXN1bHRQcm9maWxl
KiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygp
KQotICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2Zp
bGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9j
ay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogCiAg
ICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBl
dE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTEwMjMsNyArMTA4Niw3
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGMKICNlbmRpZgogCiAg
ICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewotICAgICAgICBSZXN1bHRQcm9maWxlKiBy
ZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29k
ZU9mZnNldCk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwog
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHJldmlz
aW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkK
IAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgogCkBAIC0xMjksNyArMTMwLDcgQEAgdm9pZCBK
SVREaXZHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIG5vdERvdWJsZVplcm8ubGlu
aygmaml0KTsKICNlbmRpZgogICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCi0gICAgICAgIGppdC5h
ZGQzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0
ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgp
KSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFBy
b2ZpbGU6OnNwZWNpYWxGYXN0UGF0aEJpdCksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgaml0LmJveERvdWJsZSht
X2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVzLmgJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNiArNDI0LDE0IEBAIGlubGlu
ZSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGUKICAgICByZXR1cm4gY2FsbDsKIH0K
IAoraW5saW5lIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpScEphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVS
ZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUs
IEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSwgVHJ1c3RlZEltbVB0cihhZGRJ
QykpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKwog
I2lmIFVTRShKU1ZBTFVFNjQpCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSlpaIG9wZXJhdGlvbiwgR1BSUmVnIGFy
ZzEsIGludDMyX3QgYXJnMiwgaW50MzJfdCBhcmczKQogewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJp
dGhQcm9maWxlLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVE11bEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJv
ZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJDb21tb25T
bG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIKQEAgLTQ0LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSUNTdGF0
cy5oIgogI2luY2x1ZGUgIkpJVC5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiCiAjaW5jbHVkZSAi
SklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpAQCAtMjI2Nyw3ICsyMjY5LDI1IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBKU1ZhbHVlIG9w
MiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1l
cmljbmVzcyhyZXN1bHQpOworICAgIGlmIChyZXN1bHRQcm9maWxlKQorICAgICAgICByZXN1bHRQ
cm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiBy
ZXN1bHRQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisg
ICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1
ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7CisgICAgaWYgKHJlc3VsdFByb2ZpbGUpCisg
ICAgICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisKKyAgICBh
ZGRJQy0+Z2VuZXJhdGVPdXRPZkxpbmUoKnZtLCBleGVjLT5jb2RlQmxvY2soKSk7CisgICAgLy9l
eGVjLT5jb2RlQmxvY2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBj
bGFzcyBBcnJheVByb2ZpbGU7CiBjbGFzcyBDYWxsTGlua0luZm87CiBjbGFzcyBDb2RlQmxvY2s7
CiBjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRJQzsKIGNsYXNzIEpTQXJyYXk7CiBjbGFz
cyBKU0Z1bmN0aW9uOwogY2xhc3MgSlNMZXhpY2FsRW52aXJvbm1lbnQ7CkBAIC04MSw2ICs4Miw3
IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIEljZjogSW5saW5lQ2FsbEZyYW1lKgog
ICAgIElkYzogY29uc3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNvZGVkSlNWYWx1ZQorICAgIEph
aWM6IEpJVEFkZElDKgogICAgIEpjcDogY29uc3QgSlNWYWx1ZSoKICAgICBKc2M6IEpTU2NvcGUq
CiAgICAgSnNmOiBKU0Z1bmN0aW9uKgpAQCAtMTM0LDYgKzEzNiw3IEBAIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9P
UEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAo
SklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpScCkoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxlKik7Cit0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpScEphaWMp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmls
ZSosIEpJVEFkZElDKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpK
X0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQzMl90KTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKc3NS
ZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvSnNzKShFeGVj
U3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CkBAIC00MDksNiAr
NDEyLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdAogCiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9J
TlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQ
cm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgUmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJO
QUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAko
cmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRlICJBcml0aFBy
b2ZpbGUuaCIKKwogI2lmIEVOQUJMRShKSVQpCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc20JKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC04OTMsNiArODkzLDkg
QEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAgIGJxYiB0MSwg
dGFnVHlwZU51bWJlciwgLm9wMk5vdEludAogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0
MikKICAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDEsIHQwLCAuc2xvdywgdDIpCisgICAg
I2xvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MSkKKyAgICAjb3JpIDB4MDAwMDA1MDUsIHQxCisg
ICAgI3N0b3JlaXNUb0luc3RydWN0aW9uKHQxLCA0KQogICAgIGRpc3BhdGNoKDUpCiAKIC5vcDFO
b3RJbnQ6CkBAIC05MDIsOCArOTA1LDE0IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50
ZWdlck9wZXJhdGkKICAgICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdwogICAgIGFkZHEg
dGFnVHlwZU51bWJlciwgdDEKICAgICBmcTJkIHQxLCBmdDEKKyAgICAjbG9hZGlzRnJvbUluc3Ry
dWN0aW9uKDQsIHQyKQorICAgICNvcmkgMHgwNDA0LCB0MgorICAgICNzdG9yZWlzVG9JbnN0cnVj
dGlvbih0MiwgNCkKICAgICBqbXAgLm9wMU5vdEludFJlYWR5CiAub3AxTm90SW50T3AySW50Ogor
ICAgICNsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisgICAgI29yaSAweDA1MDQsIHQyCisg
ICAgI3N0b3JlaXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGNpMmQgdDEsIGZ0MQogLm9wMU5v
dEludFJlYWR5OgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKQEAgLTkxOSw2ICs5
MjgsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgIyBG
aXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25kIGlzIGRlZmluaXRl
bHkgbm90LgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKICAgICBidHF6IHQxLCB0
YWdUeXBlTnVtYmVyLCAuc2xvdworICAgICNsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDMpCisg
ICAgI29yaSAweDA0MDUsIHQzCisgICAgI3N0b3JlaXNUb0luc3RydWN0aW9uKHQzLCA0KQogICAg
IGNpMmQgdDAsIGZ0MAogICAgIGFkZHEgdGFnVHlwZU51bWJlciwgdDEKICAgICBmcTJkIHQxLCBm
dDEKQEAgLTk0Niw3ICs5NTgsMTAgQEAgZW5kCiBfbGxpbnRfb3BfYWRkOgogICAgIHRyYWNlRXhl
Y3V0aW9uKCkKICAgICBiaW5hcnlPcCgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93
KSBiYWRkaW8gbGVmdCwgcmlnaHQsIHNsb3cgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQsIHNsb3cpCisgICAgICAgICAgICBiYWRkaW8gbGVmdCwgcmlnaHQsIHNsb3cKKworICAgICAg
ICBlbmQsCiAgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgYWRkZCBsZWZ0LCByaWdodCBlbmQs
CiAgICAgICAgIF9zbG93X3BhdGhfYWRkKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAyMDMxMjAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20J
KHdvcmtpbmcgY29weSkKQEAgLTI4Niw2ICsyODYsMTAgQEAgaWYgSlNWQUxVRTY0CiAgICAgICAg
IGxvYWRwIG9mZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAogICAgIGVuZAogICAgIAorICAgIG1h
Y3JvIHN0b3JlaXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCisgICAgICAgIHN0b3JlaSB2
YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCisgICAgZW5kCisKICAgICBtYWNybyBzdG9yZXBU
b0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCiAgICAgICAgIHN0b3JlcCB2YWx1ZSwgb2Zmc2V0
ICogOFtQQiwgUEMsIDhdCiAgICAgZW5kCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1Jlc3VsdFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1Jlc3VsdFR5cGUuaAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDIzICszMiwyNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgc3RydWN0IE9w
ZXJhbmRUeXBlczsKIAotICAgICAgICB0eXBlZGVmIGNoYXIgVHlwZTsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgVHlwZUludDMyID0gMTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyBjb25z
dCBUeXBlIFR5cGVNYXliZU51bWJlciA9IDB4MDQ7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
IFR5cGVNYXliZVN0cmluZyA9IDB4MDg7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVN
YXliZU51bGwgICA9IDB4MTA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZUJv
b2wgICA9IDB4MjA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU90aGVyICA9
IDB4NDA7CisgICAgICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOworICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlRW1wdHkgPSAgICAgICAweDAwOworICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlSW50MzIgPSAgICAgICAweDAxOworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBl
TWF5YmVOdW1iZXIgPSAweDAyOworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVT
dHJpbmcgPSAweDA0OworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAg
PSAweDA4OworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDEw
OworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDIwOworCisg
ICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVCaXRzID0gVHlwZU1heWJlTnVtYmVyIHwgVHlw
ZU1heWJlU3RyaW5nIHwgVHlwZU1heWJlQm9vbCB8IFR5cGVNYXliZU90aGVyOwogCi0gICAgICAg
IHN0YXRpYyBjb25zdCBUeXBlIFR5cGVCaXRzID0gVHlwZU1heWJlTnVtYmVyIHwgVHlwZU1heWJl
U3RyaW5nIHwgVHlwZU1heWJlTnVsbCB8IFR5cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsK
KyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtQml0c05lZWRlZCA9IDY7
CisgICAgICAgIHN0YXRpY19hc3NlcnQoKFR5cGVCaXRzICYgKCgxIDw8IG51bUJpdHNOZWVkZWQp
IC0gMSkpID09IFR5cGVCaXRzLCAiVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLiIp
OwogCiAgICAgICAgIGV4cGxpY2l0IFJlc3VsdFR5cGUoVHlwZSB0eXBlKQogICAgICAgICAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICBwdWJsaWM6CiAgICAg
ICAgIGJvb2wgaXNJbnQzMigpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBt
X3R5cGUgJiBUeXBlSW50MzI7CkBAIC03OSwxMSArODIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiAhbWlnaHRCZU51bWJlcigpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBzdGF0aWMgUmVzdWx0VHlwZSBudWxsVHlwZSgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZU51bGwpOwotICAgICAgICB9Ci0gICAgICAg
IAogICAgICAgICBzdGF0aWMgUmVzdWx0VHlwZSBib29sZWFuVHlwZSgpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZUJvb2wpOwpAQCAtMTA4LDYgKzEw
NiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFJl
c3VsdFR5cGUoVHlwZU1heWJlU3RyaW5nKTsKICAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBS
ZXN1bHRUeXBlIG51bGxUeXBlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFJlc3Vs
dFR5cGUoVHlwZU1heWJlTnVsbCk7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRp
YyBSZXN1bHRUeXBlIHVua25vd25UeXBlKCkKICAgICAgICAgewpAQCAtMTQxLDYgKzE0NCw4IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG51bWJlclR5cGVJc0ludDMyKCk7
CiAgICAgICAgIH0KIAorICAgICAgICBUeXBlIGJpdHMoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFR5cGUgbV90eXBlOwogICAgIH07CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJ
KHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKIAorI2luY2x1ZGUgIkFy
aXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJC
dWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKQEAgLTU4LDYgKzU5LDggQEAK
ICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRT
dHJlYW0uaD4KIAorI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAK
ICNkZWZpbmUgQkVHSU5fTk9fU0VUX1BDKCkgXApAQCAtMzYzLDcgKzM2Niw3IEBAIHN0YXRpYyB2
b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnkKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwogICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0g
Y29kZUJsb2NrLT5ieXRlY29kZU9mZnNldChwYyk7Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmls
ZSA9IGNvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShieXRlY29kZU9mZnNldCk7CisgICAg
UmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IGNvZGVCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KTsKIAogICAgIGlmIChyZXN1bHQuaXNOdW1iZXIoKSkg
ewogICAgICAgICBpZiAoIXJlc3VsdC5pc0ludDMyKCkpIHsKQEAgLTQwNyw2ICs0MTAsMTkgQEAg
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2FkZCkKICAgICBKU1ZhbHVlIHYyID0gT1BfQygzKS5q
c1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAKKyAgICAvKgorICAgIGRhdGFMb2coInNs
b3dfcGF0aF9hZGRcbiIpOworICAgIGRhdGFMb2coIlYxOiAiLCBydW50aW1lVHlwZUFzU3RyaW5n
KHJ1bnRpbWVUeXBlRm9yVmFsdWUodjEpKSwgIlxuIik7CisgICAgZGF0YUxvZygiVjI6ICIsIHJ1
bnRpbWVUeXBlQXNTdHJpbmcocnVudGltZVR5cGVGb3JWYWx1ZSh2MikpLCAiXG4iKTsKKyAgICBk
YXRhTG9nKCJTdGF0czogIiwgcGNbNF0udS5vcGVyYW5kLCAiXG4iKTsKKyAgICBPcGVyYW5kVHlw
ZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQocGNbNF0udS5vcGVyYW5kKTsKKyAgICBS
ZXN1bHRUeXBlIGEgPSB0eXBlcy5maXJzdCgpOworICAgIFJlc3VsdFR5cGUgYiA9IHR5cGVzLnNl
Y29uZCgpOworICAgIGRhdGFMb2coKmJpdHdpc2VfY2FzdDx1aW50OF90Kj4oJmEpLCAiXG4iKTsK
KyAgICBkYXRhTG9nKCpiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KCZiKSwgIlxuIik7CisgICAgKi8K
KyAgICAKKwogICAgIGlmICh2MS5pc1N0cmluZygpICYmICF2Mi5pc09iamVjdCgpKQogICAgICAg
ICByZXN1bHQgPSBqc1N0cmluZyhleGVjLCBhc1N0cmluZyh2MSksIHYyLnRvU3RyaW5nKGV4ZWMp
KTsKICAgICBlbHNlIGlmICh2MS5pc051bWJlcigpICYmIHYyLmlzTnVtYmVyKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283594</attachid>
            <date>2016-07-13 19:31:06 -0700</date>
            <delta_ts>2016-07-14 00:50:07 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>87711</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMxMjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxMiArMTI4MSwxNiBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkExRDM0
NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MjMzQzI4MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5j
cHAgKi87IH07CisJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1
NzAwQzVBODM0IC8qIEpJVEFkZElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3Jp
Z2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07
CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1
QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdl
dFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQw
MEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0MDBCQSAvKiBK
U0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENU
b09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIyODM1MUQzNUQ3
MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJv
ZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBBcml0aFByb2Zp
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QTIy
ODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKIAkJNzlCMDBDQkMx
QzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQjgxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5Q29uc3RydWN0b3IuY3BwICovOyB9OwogCQk3OUIwMENCRDFDNkFCMDdFMDA4OEM2NUQg
LyogUHJveHlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUIw
MENCRTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkExQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLWZuby1v
cHRpbWl6ZS1zaWJsaW5nLWNhbGxzIjsgfTsgfTsKQEAgLTM0NzYsMTIgKzM0ODAsMTYgQEAKIAkJ
NzkwNUJCNjcxRDEyMDUwRTAwMTlGRTU3IC8qIElubGluZUFjY2Vzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVBY2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5UmV2b2tlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5
UmV2b2tlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5UmV2b2tlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5MjMzQzI4MUQzNDcxNTcwMEM1QTgzNCAv
KiBKSVRBZGRJQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRB
ZGRJQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5MjMzQzI5MUQzNDcxNTcw
MEM1QTgzNCAvKiBKSVRBZGRJQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
SVRBZGRJQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVD
MDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAw
QkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0Iz
UENUb09yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFE
MzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5Q29uc3Ry
dWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCOTFDNkFCMDdF
MDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MDU3LDYgKzUwNjUsOCBAQAogCQkJCURFNUEwOUZGMUJBM0FDM0Uw
MDNENDQyNCAvKiBJbnRyaW5zaWNFbWl0dGVyLmNwcCAqLywKIAkJCQkxNDI5RDkyRDBFRDIyRDcw
MDBCODk2MTkgLyogSklULmNwcCAqLywKIAkJCQkxNDI5RDkyRTBFRDIyRDcwMDBCODk2MTkgLyog
SklULmggKi8sCisJCQkJNzkyMzNDMjgxRDM0NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCAq
LywKKwkJCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUQWRkSUMuaCAqLywKIAkJCQlG
RTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmNwcCAqLywKIAkJCQlG
RTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmggKi8sCiAJCQkJODZB
OTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0aWMuY3BwICovLApAQCAtNjU1Niw2
ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcwNTEwMDZBNTk3QyAvKiBBcnJheVBy
b2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEwMDZBNTk3QyAvKiBBcnJheVByb2Zp
bGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNw
cCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggKi8s
CiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5jcHAg
Ki8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5o
ICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAvKiBCeXRlY29kZUNvbnZlbnRpb25z
LmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1RUE3MEU4MTlGNUIxMDEwMDk4RjVF
QyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0FyZ3VtZW50UmVnVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxv
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRB
ZGRJQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
QmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAzMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
MDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCkBA
IC03NzU0LDYgKzc3NjcsNyBAQAogCQkJCUE1MTAwN0MxMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0
QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTUwM0ZBMkExODhGMTA1OTAwMTEwRjE0IC8qIEpTR2xvYmFsT2JqZWN0
U2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5QTIyODM2MUQzNUQ3MUYw
MEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMwMTg1
QkZBQ0MwMDdFOTVBRCAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTUxM0U1QzIxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNDQyQ0IyNTFBNkNEQjhDMDA1RDNEN0MgLyogSlNJ
bnB1dHMuanNvbiBpbiBIZWFkZXJzICovLApAQCAtOTI2Myw2ICs5Mjc3LDcgQEAKIAkJCQkwRkVC
M0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZDNTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2Vt
YmxlckFSTTY0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2
NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2
MDAwMzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU2OEM2MzgxQjkwREUwQjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MzIyLDYgKzkzMzcsNyBAQAogCQkJ
CTBGRjcyOUIxMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QjIxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVy
RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOTBDQUMxODlEODJGNjAwMEFFNUYw
IC8qIFByb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzkyMzND
MkExRDM0NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RjcyOUIzMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkY3MjlCNDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW5TdGFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlENEMwQzFDM0UxQzExMDA2Q0Q5ODQgLyogRlRMRXhj
ZXB0aW9uVGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgi
CisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisK
K25hbWVzcGFjZSBKU0MgeworCisjaWYgRU5BQkxFKEpJVCkKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6
ZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdz
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzSW50
MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1
bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihyZWdzLCBt
b2RlKTsKKyAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9yZSBwcmVjaXNlIGhlcmUuCisgICAg
ZW1pdFNldERvdWJsZShqaXQpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1
bXAoKTsKKyAgICBub3REb3VibGUubGluaygmaml0KTsKKyAgICBlbWl0U2V0Tm9uTnVtYmVyKGpp
dCk7CisgICAgZG9uZS5saW5rKCZqaXQpOworICAgIGlzSW50MzIubGluaygmaml0KTsKK30KKwor
dm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVscGVycyYgaml0KQorewor
ICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Oklu
dDMyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgUmVzdWx0UHJvZmls
ZTo6TmVnWmVyb0RvdWJsZSB8IFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2Fs
bEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7Cit9CisKK3ZvaWQg
UmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAg
ICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25O
dW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7
Cit9CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVz
cGFjZSBXVEYgeworICAgIAordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IFJlc3VsdFByb2ZpbGUmIHByb2ZpbGUpCit7Cisg
ICAgY29uc3QgY2hhciogc2VwYXJhdG9yID0gIiI7CisKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2Jz
ZXJ2ZU5vbkludDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOworICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2Jz
ZXJ2ZU5lZ1plcm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwg
Ik5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAg
fQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7Cisg
ICAgICAgICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZl
Tm9uTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAg
ICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUu
ZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQz
Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAg
ICAgb3V0LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291
bnQoKSkgeworICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CisgICAg
ICAgIG91dC5wcmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOworICAgIH0KK30K
KworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQXJpdGhQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FyaXRoUHJvZmlsZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEFyaXRoUHJvZmlsZV9oCisjZGVmaW5lIEFyaXRoUHJvZmlsZV9oCisKKyNpbmNsdWRlICJH
UFJJbmZvLmgiCisjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1ZGUgIlJlc3VsdFR5cGUu
aCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNNb2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeworIAor
Y2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3QgT2JzZXJ2ZWRUeXBlIHsKKyAgICBPYnNlcnZl
ZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5KQorICAgICAgICA6IG1fYml0cyhiaXRzKQor
ICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5
cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50MzIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
PT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2Jp
dHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBpc09ubHlOdW1iZXIoKSBjb25zdCB7IHJldHVy
biBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAgIHVpbnQ4X3QgYml0cygpIGNvbnN0IHsgcmV0
dXJuIG1fYml0czsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE9ic2VydmVkVHlwZSYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBvdGhlci5tX2JpdHM7IH0KKworICAgIHN0
YXRpYyBjb25zdCB1aW50OF90IFR5cGVFbXB0eSA9IDB4MDsKKyAgICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBUeXBlSW50MzIgPSAweDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZU51bWJl
ciA9IDB4MDI7CisKK3ByaXZhdGU6CisgICAgdWludDhfdCBtX2JpdHM7Cit9OworCitzdHJ1Y3Qg
UmVzdWx0UHJvZmlsZSB7Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBudW1i
ZXJPZkZsYWdCaXRzID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcmhzUmVzdWx0VHlw
ZVNoaWZ0ID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbGhzUmVzdWx0VHlwZVNoaWZ0
ID0gMTE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc09ic2VydmVkVHlwZVNoaWZ0ID0g
MTc7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGxoc09ic2VydmVkVHlwZVNoaWZ0ID0gMTk7
CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGJvdHRvbTZCaXRzID0gKDEgPDwgNikgLSAxOwor
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b20yQml0cyA9ICgxIDw8IDIpIC0gMTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRzID0gfigoMSA8
PCAxNykgfCAoMSA8PCAxOCkpOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjbGVhckxoc09i
c2VydmVkVHlwZUJpdHMgPSB+KCgxIDw8IDE5KSB8ICgxIDw8IDIwKSk7CisKKyAgICBzdGF0aWNf
YXNzZXJ0KFJlc3VsdFR5cGU6Om51bUJpdHNOZWVkZWQgPT0gNiwgIldlIG1ha2UgYSBzdHJvbmcg
YXNzdW1wdGlvbiBoZXJlIHRoYXQgUmVzdWx0VHlwZSBmaXRzIGluIDYgYmlzLiIpOworCitwdWJs
aWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNwZWNpYWxGYXN0UGF0aEJpdCA9IDEgPDwg
MjE7CisKKyAgICBSZXN1bHRQcm9maWxlKFJlc3VsdFR5cGUgbGhzLCBSZXN1bHRUeXBlIHJocykK
KyAgICB7CisgICAgICAgIG1fYml0cyA9IChsaHMuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVTaGlm
dCkgfCAocmhzLmJpdHMoKSA8PCByaHNSZXN1bHRUeXBlU2hpZnQpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVChsaHNSZXN1bHRUeXBlKCkuYml0cygpID09IGxocy5iaXRzKCkgJiYgcmhzUmVzdWx0
VHlwZSgpLmJpdHMoKSA9PSByaHMuYml0cygpKTsKKyAgICB9CisgICAgUmVzdWx0UHJvZmlsZSgp
CisgICAgeyB9CisKKyAgICBzdGF0aWMgUmVzdWx0UHJvZmlsZSBmcm9tSW50KHVpbnQzMl90IGJp
dHMpCisgICAgeworICAgICAgICBSZXN1bHRQcm9maWxlIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0
Lm1fYml0cyA9IGJpdHM7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgZW51
bSBPYnNlcnZlZFJlc3VsdHMgeworICAgICAgICBOb25OZWdaZXJvRG91YmxlID0gMSA8PCAwLAor
ICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAorICAgICAgICBOb25OdW1iZXIgICAg
ICAgID0gMSA8PCAyLAorICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAzLAorICAgICAg
ICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAorICAgIH07CisKKyAgICBSZXN1bHRUeXBlIGxo
c1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4gbGhzUmVz
dWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorICAgIFJlc3VsdFR5cGUgcmhzUmVzdWx0
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIFJlc3VsdFR5cGUoKG1fYml0cyA+PiByaHNSZXN1bHRUeXBl
U2hpZnQpICYgYm90dG9tNkJpdHMpOyB9CisKKyAgICBPYnNlcnZlZFR5cGUgbGhzT2JzZXJ2ZWRU
eXBlKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKChtX2JpdHMgPj4gbGhzT2JzZXJ2ZWRU
eXBlU2hpZnQpICYgYm90dG9tMkJpdHMpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHJoc09ic2VydmVk
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IHJoc09ic2VydmVk
VHlwZVNoaWZ0KSAmIGJvdHRvbTJCaXRzKTsgfQorICAgIHZvaWQgc2V0TGhzT2JzZXJ2ZWRUeXBl
KE9ic2VydmVkVHlwZSB0eXBlKQorICAgIHsgCisgICAgICAgIG1fYml0cyAmPSBjbGVhckxoc09i
c2VydmVkVHlwZUJpdHM7CisgICAgICAgIG1fYml0cyB8PSB0eXBlLmJpdHMoKSA8PCBsaHNPYnNl
cnZlZFR5cGVTaGlmdDsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkg
PT0gdHlwZSk7CisgICAgfQorCisgICAgdm9pZCBzZXRSaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRU
eXBlIHR5cGUpCisgICAgeyAKKyAgICAgICAgbV9iaXRzICY9IGNsZWFyUmhzT2JzZXJ2ZWRUeXBl
Qml0czsKKyAgICAgICAgbV9iaXRzIHw9IHR5cGUuYml0cygpIDw8IHJoc09ic2VydmVkVHlwZVNo
aWZ0OworICAgICAgICBSRUxFQVNFX0FTU0VSVChyaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0CisgICAg
eyAKKyAgICAgICAgLy8gRklYTUU6CisgICAgICAgIHJldHVybiBtX2JpdHMgJiBzcGVjaWFsRmFz
dFBhdGhCaXQgPyAyMCA6IDA7CisgICAgfQorCisgICAgYm9vbCBkaWRPYnNlcnZlTm9uSW50MzIo
KSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91Ymxl
IHwgTm9uTnVtYmVyKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZURvdWJsZSgpIGNvbnN0IHsgcmV0
dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpOyB9CisgICAgYm9v
bCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9u
TmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgY29u
c3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2
ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTnVtYmVyKTsgfQorICAgIGJv
b2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKEludDMy
T3ZlcmZsb3cpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpIGNvbnN0IHsg
cmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0KKworICAgIHZvaWQgc2V0T2JzZXJ2ZWRO
b25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVnWmVyb0RvdWJsZSk7IH0KKyAgICB2b2lk
IHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5lZ1plcm9Eb3VibGUpOyB9Cisg
ICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsgc2V0Qml0KE5vbk51bWJlcik7IH0KKyAg
ICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpIHsgc2V0Qml0KEludDMyT3ZlcmZsb3cp
OyB9CisgICAgdm9pZCBzZXRPYnNlcnZlZEludDUyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQ1Mk92
ZXJmbG93KTsgfQorCisgICAgdm9pZCogYWRkcmVzc09mRmxhZ3MoKSB7IHJldHVybiAmbV9iaXRz
OyB9CisgICAgdm9pZCogYWRkcmVzc09mQml0cygpIHsgcmV0dXJuICZtX2JpdHM7IH0KKyAgICAK
KyAgICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCisgICAgeworICAgICAg
ICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAo
dmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9IEludDMyT3ZlcmZsb3cg
fCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRzIHw9IE5vbk51bWJlcjsK
KyAgICB9CisKKyNpZiBFTkFCTEUoSklUKSAgICAKKyAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93
IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKSBpZiBp
dCBzZWVzIGEKKyAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNlZXMgYSBub24t
bnVtYmVyLgorICAgIHZvaWQgZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYsIEpT
VmFsdWVSZWdzLCBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgCisg
ICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91
YmxlIHwgTmVnWmVyb0RvdWJsZSkuCisgICAgdm9pZCBlbWl0U2V0RG91YmxlKENDYWxsSGVscGVy
cyYpOworICAgIAorICAgIC8vIFNldHMgTm9uTnVtYmVyLgorICAgIHZvaWQgZW1pdFNldE5vbk51
bWJlcihDQ2FsbEhlbHBlcnMmKTsKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisgICAgdWludDMy
X3QgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorCitwcml2YXRlOgorICAgIGJvb2wg
aGFzQml0cyhpbnQgbWFzaykgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgbWFzazsgfQorICAgIHZv
aWQgc2V0Qml0KGludCBtYXNrKSB7IG1fYml0cyB8PSBtYXNrOyB9CisKKyAgICB1aW50MzJfdCBt
X2JpdHMgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNwYWNlIFdURiB7
CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IEpTQzo6UmVzdWx0UHJv
ZmlsZSYpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEFyaXRoUHJvZmlsZV9o
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAko
cmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5o
IgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2Vu
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVVc2VEZWYuaCIKQEAgLTQ1LDYgKzQ2LDcgQEAK
ICNpbmNsdWRlICJJbmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgog
I2luY2x1ZGUgIkpJVC5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiCiAjaW5jbHVkZSAiSlNDSlNW
YWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZp
cm9ubWVudC5oIgpAQCAtMzAwMCw2ICszMDAyLDMwIEBAIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2Rl
QmxvY2s6OmFkZFN0dWJJbmYKICAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKGFjY2Vzc1R5cGUp
OwogfQogCitKSVRBZGRJQyogQ29kZUJsb2NrOjphZGRKSVRBZGRJQygpCit7CisgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9hZGRJQ3MuYWRkKCk7
Cit9CisKK3ZvaWQgQ29kZUJsb2NrOjpkdW1wSklUQWRkSUNTdGF0cygpCit7CisgICAgZG91Ymxl
IHNpemUgPSAwLjA7CisgICAgZG91YmxlIG91dE9mTGluZSA9IDAuMDsKKyAgICBhdXRvIGZ1bmMg
PSBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSAtPiBib29sIHsKKyAgICAgICAgZm9yIChKSVRB
ZGRJQyogYWRkSUMgOiBjb2RlQmxvY2stPm1fYWRkSUNzKSB7CisgICAgICAgICAgICArK3NpemU7
CisgICAgICAgICAgICBpZiAoYWRkSUMtPm1fY29kZSkKKyAgICAgICAgICAgICAgICArK291dE9m
TGluZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICB2bSgp
LT5oZWFwLmZvckVhY2hDb2RlQmxvY2soZnVuYyk7CisgICAgZGF0YUxvZygiQ29kZUJsb2NrIGhh
cyBvdXRPZkxpbmUgcmF0aW86ICIsIG91dE9mTGluZS9zaXplLCAiXG4iKTsKKyAgICBkYXRhTG9n
KCJUb3RhbCBudW0gYWRkIElDczoiLCBzaXplLCAiLiBUb3RhbCBudW0gb3V0IG9mIGxpbmU6ICIs
IG91dE9mTGluZSwgIlxuIik7CisKK30KKwogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6
ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKICAgICBmb3IgKFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7CkBAIC00MzYzLDE0ICs0Mzg5LDIz
IEBAIHVuc2lnbmVkIENvZGVCbG9jazo6cmFyZUNhc2VQcm9maWxlQ291bnQKICAgICByZXR1cm4g
MDsKIH0KIAorUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKK30KKwogUmVzdWx0UHJvZmlsZSogQ29kZUJsb2Nr
OjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBpZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jl
c3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0byBp
dGVyYXRvciA9IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZmluZChi
eXRlY29kZU9mZnNldCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fYnl0ZWNvZGVPZmZzZXRUb1Jl
c3VsdFByb2ZpbGVJbmRleE1hcC0+ZW5kKCkpCisgICAgYXV0byBvcGNvZGVJRCA9IHZtKCktPmlu
dGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9mZnNldF0udS5v
cGNvZGUpOworICAgIGJvb2wgaGFzUHJvZmlsZSA9IGZhbHNlOworICAgIGlmIChvcGNvZGVJRCA9
PSBvcF9iaXRvciB8fCBvcGNvZGVJRCA9PSBvcF9iaXRhbmQgfHwgb3Bjb2RlSUQgPT0gb3BfYml0
eG9yIHx8CisgICAgICAgIG9wY29kZUlEID09IG9wX2FkZCB8fCBvcGNvZGVJRCA9PSBvcF9tdWwg
fHwgb3Bjb2RlSUQgPT0gb3Bfc3ViIHx8IG9wY29kZUlEID09IG9wX2RpdikKKyAgICAgICAgaGFz
UHJvZmlsZSA9IHRydWU7CisgICAgaWYgKCFoYXNQcm9maWxlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVlXTsKKyAg
ICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVPZmZz
ZXQgKyA0XTsKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PFJlc3VsdFByb2ZpbGUqPigmaW5zdHJ1
Y3Rpb24tPnUub3BlcmFuZCk7CiB9CiAKIHVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZhc3RD
YXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQpAQCAt
NDM5NSwyNiArNDQzMCw2IEBAIGJvb2wgQ29kZUJsb2NrOjpjb3VsZFRha2VTcGVjaWFsRmFzdENh
c2UKICAgICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6Y291bGRUYWtl
U2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKIH0KIAotUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpl
bnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1bHRQcm9maWxl
KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6
OmVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBp
bnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IHJlc3Vs
dFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBp
ZiAoIXByb2ZpbGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQoUmVzdWx0UHJv
ZmlsZShieXRlY29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVzdWx0UHJvZmls
ZXMubGFzdCgpOwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgpID09ICZt
X3Jlc3VsdFByb2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwotICAgICAgICBp
ZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgICAg
IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6bWFrZV91bmlx
dWU8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAgICAgICAgbV9i
eXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNvZGVPZmZzZXQs
IG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVybiBwcm9maWxl
OwotfQotCiAjaWYgRU5BQkxFKEpJVCkKIERGRzo6Q2FwYWJpbGl0eUxldmVsIENvZGVCbG9jazo6
Y2FwYWJpbGl0eUxldmVsKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOCBAQAog
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBH
ZW5lcmF0b3I+IGNsYXNzIEpJVE1hdGhJQzsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNz
IEpTTW9kdWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFz
cyBQQ1RvQ29kZU9yaWdpbk1hcDsKQEAgLTg4LDYgKzkwLDEwIEBAIGNsYXNzIFR5cGVMb2NhdGlv
bjsKIAogZW51bSBjbGFzcyBBY2Nlc3NUeXBlIDogaW50OF90OwogCitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKwog
dHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdp
bkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9NYXA7CiAKIGVudW0gUmVvcHRpbWl6YXRpb25Nb2Rl
IHsgRG9udENvdW50UmVvcHRpbWl6YXRpb24sIENvdW50UmVvcHRpbWl6YXRpb24gfTsKQEAgLTI0
NSw2ICsyNTEsOCBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1
cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNjZXNzVHlwZSk7CisgICAgSklUQWRkSUMqIGFkZEpJ
VEFkZElDKCk7CisgICAgdm9pZCBkdW1wSklUQWRkSUNTdGF0cygpOwogICAgIEJhZzxTdHJ1Y3R1
cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvQmVnaW4oKSB7IHJldHVybiBtX3N0dWJJbmZv
cy5iZWdpbigpOyB9CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1Yklu
Zm9FbmQoKSB7IHJldHVybiBtX3N0dWJJbmZvcy5lbmQoKTsgfQogICAgIApAQCAtNDQwLDkgKzQ0
OCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlID49IE9wdGlvbnM6OmNvdWxkVGFr
ZVNsb3dDYXNlTWluaW11bUNvdW50KCk7CiAgICAgfQogCi0gICAgUmVzdWx0UHJvZmlsZSogZW5z
dXJlUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIFJlc3VsdFByb2ZpbGUq
IGVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRl
Y29kZU9mZnNldCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpIHsgcmV0
dXJuIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpOyB9CisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CiAgICAgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgdW5zaWduZWQgc3BlY2lhbEZh
c3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGludCBieXRlY29kZU9mZnNldCk7CkBAIC0xMDEzLDYgKzEwMjAsNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdGVyQXRPZmZzZXRM
aXN0PiBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBt
X3N0dWJJbmZvczsKKyAgICBCYWc8SklUQWRkSUM+IG1fYWRkSUNzOwogICAgIEJhZzxCeVZhbElu
Zm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7
CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5v
ZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFy
aXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDMxMjApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNzAgKzMxLDQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBFTkFC
TEUoSklUKQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKLXsK
LSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHJlZ3Ms
IG1vZGUpOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3VibGUgPSBqaXQuYnJhbmNoSWZO
b3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOwotICAgIC8vIEZJWE1FOiBXZSBjb3Vs
ZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KLSAgICBlbWl0U2V0RG91YmxlKGppdCk7Ci0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwotICAgIG5vdERvdWJsZS5saW5rKCZq
aXQpOwotICAgIGVtaXRTZXROb25OdW1iZXIoaml0KTsKLSAgICBkb25lLmxpbmsoJmppdCk7Ci0g
ICAgaXNJbnQzMi5saW5rKCZqaXQpOwotfQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXRE
b3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50MzJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6
OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJv
ZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFk
ZHJlc3NPZkZsYWdzKCkpKTsKLX0KLQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVt
YmVyKENDYWxsSGVscGVycyYgaml0KQotewotICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51bWJlciksIENDYWxsSGVscGVyczo6QWJzb2x1
dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLSNlbmRpZiAvLyBFTkFCTEUoSklUKQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKLQotbmFtZXNwYWNlIFdURiB7Ci0gICAgCi11c2luZyBuYW1l
c3BhY2UgSlNDOwotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3Qg
UmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkKLXsKLSAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAi
IjsKLQotICAgIGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgewotICAgICAgICBv
dXQucHJpbnQoIkludDMyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7Ci0gICAg
ICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOwotICAgICAgICAg
ICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVn
WmVyb0RvdWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIoKSkgewotICAgICAgICAgICAg
b3V0LnByaW50KCJOb25OdW1iZXIiKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7
Ci0gICAgICAgICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZl
SW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ci
KTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgIH0KLSAgICBp
ZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7Ci0gICAgICAgIG91dC5wcmludCgi
IHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsKLSAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lh
bEZhc3RQYXRoQ291bnQoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHJldmlz
aW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2Zp
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDg4ICsyMDksNiBAQCBpbmxpbmUgaW50IGdldFJh
cmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2ZmCiAgICAgcmV0dXJuIHJhcmVDYXNlUHJvZmlsZS0+bV9i
eXRlY29kZU9mZnNldDsKIH0KIAotc3RydWN0IFJlc3VsdFByb2ZpbGUgewotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgY29uc3QgaW50IG51bWJlck9mRmxhZ0JpdHMgPSA1OwotCi1wdWJsaWM6Ci0gICAg
UmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpCi0gICAgICAgIDogbV9ieXRlY29kZU9m
ZnNldEFuZEZsYWdzKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9mRmxhZ0JpdHMpCi0gICAgewot
ICAgICAgICBBU1NFUlQoKChieXRlY29kZU9mZnNldCA8PCBudW1iZXJPZkZsYWdCaXRzKSA+PiBu
dW1iZXJPZkZsYWdCaXRzKSA9PSBieXRlY29kZU9mZnNldCk7Ci0gICAgfQotCi0gICAgZW51bSBP
YnNlcnZlZFJlc3VsdHMgewotICAgICAgICBOb25OZWdaZXJvRG91YmxlID0gMSA8PCAwLAotICAg
ICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAotICAgICAgICBOb25OdW1iZXIgICAgICAg
ID0gMSA8PCAyLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAzLAotICAgICAgICBJ
bnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAotICAgIH07Ci0KLSAgICBpbnQgYnl0ZWNvZGVPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgPj4gbnVtYmVyT2ZG
bGFnQml0czsgfQotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0aENvdW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotCi0gICAgYm9vbCBkaWRPYnNlcnZlTm9u
SW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJv
RG91YmxlIHwgTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZURvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpOyB9Ci0g
ICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOZWdaZXJvRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlk
T2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTnVtYmVyKTsgfQot
ICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpIGNv
bnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0KLQotICAgIHZvaWQgc2V0T2Jz
ZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAg
ICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5lZ1plcm9Eb3VibGUp
OyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsgc2V0Qml0KE5vbk51bWJlcik7
IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpIHsgc2V0Qml0KEludDMyT3Zl
cmZsb3cpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZEludDUyT3ZlcmZsb3coKSB7IHNldEJpdChJ
bnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9pZCogYWRkcmVzc09mRmxhZ3MoKSB7IHJldHVybiAm
bV9ieXRlY29kZU9mZnNldEFuZEZsYWdzOyB9Ci0gICAgdm9pZCogYWRkcmVzc09mU3BlY2lhbEZh
c3RQYXRoQ291bnQoKSB7IHJldHVybiAmbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotICAgIAot
ICAgIHZvaWQgZGV0ZWN0TnVtZXJpY25lc3MoSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IGlmICh2YWx1ZS5pc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh2
YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3Mg
fD0gSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVn
WmVyb0RvdWJsZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0gTm9uTnVtYmVyOwotICAgIH0KLQotI2lmIEVOQUJMRShK
SVQpICAgIAotICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9u
TmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpIGlmIGl0IHNlZXMgYQotICAgIC8vIGRvdWJs
ZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBhIG5vbi1udW1iZXIuCi0gICAgdm9pZCBlbWl0
RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVy
c01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAKLSAgICAvLyBTZXRzIChJbnQzMk92ZXJm
bG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKS4K
LSAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7Ci0gICAgCi0gICAgLy8gU2V0
cyBOb25OdW1iZXIuCi0gICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYpOwot
I2VuZGlmIC8vIEVOQUJMRShKSVQpCi0KLXByaXZhdGU6Ci0gICAgYm9vbCBoYXNCaXRzKGludCBt
YXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9Ci0g
ICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IG1h
c2s7IH0KLQotICAgIGludCBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7Ci0gICAgdW5zaWduZWQg
bV9zcGVjaWFsRmFzdFBhdGhDb3VudCB7IDAgfTsKLX07Ci0KLWlubGluZSBpbnQgZ2V0UmVzdWx0
UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCi17Ci0gICAgcmV0
dXJuIHByb2ZpbGUtPmJ5dGVjb2RlT2Zmc2V0KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwog
Ci1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgY29u
c3QgSlNDOjpSZXN1bHRQcm9maWxlJik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYg
Ly8gVmFsdWVQcm9maWxlX2gKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzEy
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJv
ZmlsZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5oIgogI2luY2x1ZGUgIkJ5dGVj
b2RlTGl2ZW5lc3NBbmFseXNpcy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC0xNTk4
LDcgKzE1OTksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEJpbmFyCiAK
ICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfYml0b3IgfHwgb3Bjb2RlSUQgPT0gb3BfYml0YW5kIHx8
IG9wY29kZUlEID09IG9wX2JpdHhvciB8fAogICAgICAgICBvcGNvZGVJRCA9PSBvcF9hZGQgfHwg
b3Bjb2RlSUQgPT0gb3BfbXVsIHx8IG9wY29kZUlEID09IG9wX3N1YiB8fCBvcGNvZGVJRCA9PSBv
cF9kaXYpCi0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0eXBlcy50b0ludCgpKTsKKyAg
ICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKFJlc3VsdFByb2ZpbGUodHlwZXMuZmlyc3QoKSwg
dHlwZXMuc2Vjb25kKCkpLmJpdHMoKSk7CiAKICAgICByZXR1cm4gZHN0OwogfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlz
aW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZH
X0pJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3Ry
dWN0b3IuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRlICJDYWxs
TGlua1N0YXR1cy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRpcmVjdEFy
Z3VtZW50cy5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0
T3JHZW5lcmF0b3IuaCIKQEAgLTU2LDYgKzU3LDcgQEAKICNpbmNsdWRlICJTY29wZWRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJX
cml0ZUJhcnJpZXJCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpAQCAtMzM3
MCw0MCArMzM3Miw2MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQoTm9k
CiAKICAgICBBU1NFUlQoIWxlZnRPcGVyYW5kLmlzQ29uc3QoKSB8fCAhcmlnaHRPcGVyYW5kLmlz
Q29uc3QoKSk7CiAKLSAgICBpZiAoIWxlZnRPcGVyYW5kLmlzQ29uc3QoKSkgeworICAgIC8vaWYg
KCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKICAgICAgICAgbGVmdCA9IEpTVmFsdWVPcGVyYW5k
KHRoaXMsIGxlZnRDaGlsZCk7CiAgICAgICAgIGxlZnRSZWdzID0gbGVmdC0+anNWYWx1ZVJlZ3Mo
KTsKLSAgICB9Ci0gICAgaWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgLy99Cisg
ICAgLy9pZiAoIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKICAgICAgICAgcmlnaHQgPSBKU1Zh
bHVlT3BlcmFuZCh0aGlzLCByaWdodENoaWxkKTsKICAgICAgICAgcmlnaHRSZWdzID0gcmlnaHQt
PmpzVmFsdWVSZWdzKCk7Ci0gICAgfQorICAgIC8vfQogCi0gICAgSklUQWRkR2VuZXJhdG9yIGdl
bihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRS
ZWdzLAotICAgICAgICBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7
Ci0gICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIEpJVEFkZElDKiBhZGRJQyA9
IG1faml0LmNvZGVCbG9jaygpLT5hZGRKSVRBZGRJQygpOworICAgIEJveDxKSVRBZGRJQ0dlbmVy
YXRpb25TdGF0ZT4gYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBCb3g8SklUQWRkSUNHZW5lcmF0aW9u
U3RhdGU+OjpjcmVhdGUoKTsKIAotICAgIEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOwot
ICAgIGdlbi5lbmRKdW1wTGlzdCgpLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgIGFkZElDLT5t
X2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRj
aEdQUiwgc2NyYXRjaEZQUik7CiAKLSAgICBnZW4uc2xvd1BhdGhKdW1wTGlzdCgpLmxpbmsoJm1f
aml0KTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9mYXN0UGF0aFN0YXJ0ID0gbV9qaXQu
bGFiZWwoKTsKKyAgICBhZGRJQy0+Z2VuZXJhdGVJbmxpbmUobV9qaXQsICphZGRJQ0dlbmVyYXRp
b25TdGF0ZSk7CisgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fZmFzdFBhdGhFbmQgPSBtX2pp
dC5sYWJlbCgpOwogCi0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7Cisg
ICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4+IHNhdmVQbGFuczsKKyAgICBzaWxlbnRT
cGlsbEFsbFJlZ2lzdGVyc0ltcGwoZmFsc2UsIHNhdmVQbGFucywgcmVzdWx0UmVncy5ncHIoKSk7
CiAKLSAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7Ci0gICAgICAgIGxlZnRSZWdzID0g
cmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+YXNKU1ZhbHVl
KCksIGxlZnRSZWdzKTsKLSAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsK
LSAgICAgICAgcmlnaHRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZhbHVl
KHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgpLCByaWdodFJlZ3MpOwotICAgIH0KKyAgICBhdXRvIGRv
bmUgPSBtX2ppdC5sYWJlbCgpOwogCi0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CiAKLSAgICBzaWxlbnRGaWxsQWxs
UmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOwotICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAg
YWRkU2xvd1BhdGhHZW5lcmF0b3IoWz1dKCkgeworICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+bV9zbG93UGF0aEp1bXBzLmxpbmsoJm1faml0KTsKKyAgICAgICAgYWRkSUNHZW5lcmF0aW9u
U3RhdGUtPm1fc2xvd1BhdGhTdGFydCA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgLy9kYXRh
TG9nKCJzbG93IHBhdGg6IGxoczogIiwgbGVmdFJlZ3MuZ3ByKCksICIgcmhzOiAiLCByaWdodFJl
Z3MuZ3ByKCksICJcbiIpOworCisgICAgICAgIHNpbGVudFNwaWxsKHNhdmVQbGFucyk7CisKKyAg
ICAgICAgYXV0byBpbm5lckxlZnRSZWdzID0gbGVmdFJlZ3M7CisgICAgICAgIGF1dG8gaW5uZXJS
aWdodFJlZ3MgPSByaWdodFJlZ3M7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkp
IHsKKyAgICAgICAgICAgIGlubmVyTGVmdFJlZ3MgPSByZXN1bHRSZWdzOworICAgICAgICAgICAg
bV9qaXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+YXNKU1ZhbHVlKCksIGlubmVyTGVmdFJlZ3MpOwor
ICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAg
IGlubmVyUmlnaHRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAgICAgICAgIG1faml0Lm1vdmVWYWx1
ZShyaWdodENoaWxkLT5hc0pTVmFsdWUoKSwgaW5uZXJSaWdodFJlZ3MpOworICAgICAgICB9CisK
KyAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUsIHJlc3VsdFJlZ3MsIGlubmVy
TGVmdFJlZ3MsIGlubmVyUmlnaHRSZWdzLCBudWxscHRyLCBhZGRJQyk7CisKKyAgICAgICAgc2ls
ZW50RmlsbChzYXZlUGxhbnMpOworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAg
ICAgICBtX2ppdC5qdW1wKCkubGlua1RvKGRvbmUsICZtX2ppdCk7CisKKyAgICAgICAgbV9qaXQu
YWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
KyAgICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKCphZGRJQ0dlbmVyYXRp
b25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICB9KTsKKyAgICB9KTsKIAotICAgIGdl
bi5lbmRKdW1wTGlzdCgpLmxpbmsoJm1faml0KTsKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJl
Z3MsIG5vZGUpOwogICAgIHJldHVybjsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTI4NSw2ICsxMjg1LDEzIEBAIHB1YmxpYzoKIAogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKworICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnBKYWlj
IG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVl
UmVncyBhcmcyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMp
CisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5n
cHIoKSwgYXJnMi5ncHIoKSwgVHJ1c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSwgVHJ1c3RlZElt
bVB0cihhZGRJQykpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRp
b24sIHJlc3VsdC5ncHIoKSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BS
UmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0
ZWRJbW1QdHIodWlkKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MjgsNyArMTUy
OCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAgIHsK
LSAgICAgICAgZW1pdEJpbmFyeVNuaXBwZXQ8SklUQWRkR2VuZXJhdG9yPihvcGVyYXRpb25WYWx1
ZUFkZCk7CisgICAgICAgIGVtaXRBZGRTbmlwcGV0KG9wZXJhdGlvblZhbHVlQWRkKTsKICAgICB9
CiAgICAgCiAgICAgdm9pZCBjb21waWxlU3RyQ2F0KCkKQEAgLTgwNTgsNiArODA1OCw3MCBAQCBw
cml2YXRlOgogICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOwogICAgIH0KIAorICAgIHZv
aWQgZW1pdEFkZFNuaXBwZXQoSl9KSVRPcGVyYXRpb25fRUpKIHNsb3dQYXRoRnVuY3Rpb24pCisg
ICAgeworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOworICAgICAgICAKKyAgICAgICAgTFZh
bHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHJp
Z2h0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDIoKSk7CisKKyAgICAgICAgU25pcHBldE9wZXJh
bmQgbGVmdE9wZXJhbmQobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5yZXN1bHRUeXBl
KCkpOworICAgICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQobV9zdGF0ZS5mb3JOb2Rl
KG5vZGUtPmNoaWxkMigpKS5yZXN1bHRUeXBlKCkpOworICAgICAgICAgICAgCisgICAgICAgIFBh
dGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50NjQpOworICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIobGVmdCk7CisgICAgICAgIHBhdGNo
cG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihyaWdodCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFw
cGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3Rl
cikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJl
cDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgUmVm
UHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9CisgICAgICAg
ICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2ludCk7CisgICAgICAg
IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IDE7CisgICAgICAgIHBhdGNocG9p
bnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IDI7CisgICAgICAgIHBhdGNocG9pbnQtPmNsb2Ji
ZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgU3RhdGUq
IHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigK
KyAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hS
ZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworCisgICAgICAgICAgICAgICAgQm94PEND
YWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMgPQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uKHBhcmFtcyktPmp1bXBzKGppdCk7
CisKKyAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRBZGRHZW5lcmF0b3I+
OjpjcmVhdGUoCisgICAgICAgICAgICAgICAgICAgIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQs
IEpTVmFsdWVSZWdzKHBhcmFtc1swXS5ncHIoKSksCisgICAgICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWdzKHBhcmFtc1sxXS5ncHIoKSksIEpTVmFsdWVSZWdzKHBhcmFtc1syXS5ncHIoKSksCisg
ICAgICAgICAgICAgICAgICAgIHBhcmFtcy5mcFNjcmF0Y2goMCksIHBhcmFtcy5mcFNjcmF0Y2go
MSksIHBhcmFtcy5ncFNjcmF0Y2goMCksCisgICAgICAgICAgICAgICAgICAgIEludmFsaWRGUFJS
ZWcpOworCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVuZEp1bXBM
aXN0OworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aEp1
bXBMaXN0OworICAgICAgICAgICAgICAgIGJvb2wgZGlkR2VuZXJhdGVGYXN0UGF0aCA9IGdlbmVy
YXRvci0+Z2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBMaXN0LCBzbG93UGF0aEp1bXBMaXN0
KTsKKworICAgICAgICAgICAgICAgIGlmIChkaWRHZW5lcmF0ZUZhc3RQYXRoKSB7CisgICAgICAg
ICAgICAgICAgICAgIGVuZEp1bXBMaXN0LmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOworICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExhdGVQYXRoKAorICAgICAgICAg
ICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2go
aml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGogPSBzbG93UGF0aEp1bXBM
aXN0OyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqLmxpbmsoJmppdCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0LCBu
b2RlLT5vcmlnaW4uc2VtYW50aWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
Y2VwdGlvbnMuZ2V0KCksIHNsb3dQYXRoRnVuY3Rpb24sIHBhcmFtc1swXS5ncHIoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3By
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUs
ICZqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAg
ICAgICAgICAgICpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9k
ZS0+b3JpZ2luLnNlbWFudGljLAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5n
ZXQoKSwgc2xvd1BhdGhGdW5jdGlvbiwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCks
CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNldEpTVmFsdWUocGF0Y2hwb2ludCk7
CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmluYXJ5Qml0T3BHZW5lcmF0b3I+CiAg
ICAgdm9pZCBlbWl0QmluYXJ5Qml0T3BTbmlwcGV0KEpfSklUT3BlcmF0aW9uX0VKSiBzbG93UGF0
aEZ1bmN0aW9uKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxI
ZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9D
Q2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5OSw2ICsyMDk5LDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBh
cmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFR3b1N0dWJBcmdz
R1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyPihhcmcxLCBh
cmcyKTsKKyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAg
ICBtb3ZlKGFyZzQsIEdQUkluZm86OmFyZ3VtZW50R1BSNCk7CisgICAgICAgIG1vdmUoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAg
ICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcg
YXJnMSwgVHJ1c3RlZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQs
IEdQUlJlZyBhcmc1KQogICAgIHsKICAgICAgICAgc2V0dXBUaHJlZVN0dWJBcmdzR1BSPEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFI0LCBHUFJJbmZvOjphcmd1bWVu
dEdQUjU+KGFyZzEsIGFyZzQsIGFyZzUpOwpAQCAtMjIxNSw2ICsyMjIzLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJH
IGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJn
Mi50YWdHUFIoKSwgYXJnMyk7CiAjZW5kaWYKICAgICB9CisKKyAgICB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVz
dGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFy
ZzIuZ3ByKCksIGFyZzMsIGFyZzQpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRh
Z0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgYXJnMyk7CisjZW5kaWYK
KyAgICB9CiAgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50cyhKU1ZhbHVlUmVncyBhcmcxKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ckZpeGVkVk1Qb29sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29s
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDYgKzM4NSw4IEBAIFJlZlB0cjxFeGVjdXRhYmxl
TWVtb3J5SGFuZGxlPiBFeGVjdXRhYmwKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CisgICAgLy9NZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSBh
bGxvY2F0b3ItPmN1cnJlbnRTdGF0aXN0aWNzKCk7CisgICAgLy9kYXRhTG9nKCJDdXJyZW50IGV4
ZWN1dGFibGUgbWVtb3J5IGJ5dGVzIGFsbG9jYXRlZDogIiwgc3RhdGlzdGljcy5ieXRlc0FsbG9j
YXRlZCwgIlxuIik7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
Q29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiIAogI2luY2x1ZGUg
IkpJVElubGluZXMuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNB
cnJheS5oIgpAQCAtODQsNiArODUsOCBAQCBKSVQ6OkpJVChWTSogdm0sIENvZGVCbG9jayogY29k
ZUJsb2NrKQogCiBKSVQ6On5KSVQoKQogeworICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2luc3Ry
dWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSkKKyAgICAgICAgZGVsZXRlIGVudHJ5LnZh
bHVlOwogfQogCiAjaWYgRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmgJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDEyICs0MSwxMiBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkNvbXBhY3RKSVRDb2RlTWFwLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIu
aCIKKyNpbmNsdWRlICJKSVRBZGRJQy5oIgogI2luY2x1ZGUgIkpJVERpc2Fzc2VtYmxlci5oIgog
I2luY2x1ZGUgIkpJVElubGluZUNhY2hlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNJbnRlcmZh
Y2VKSVQuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQQ1RvQ29kZU9yaWdpbk1h
cC5oIgotI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJVbnVzZWRQb2ludGVyLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNjUsNiArNjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbzsKIAogICAgIHN0cnVjdCBJbnN0cnVjdGlvbjsKKyAg
ICBzdHJ1Y3QgSklUQWRkSUNHZW5lcmF0aW9uU3RhdGU7CiAgICAgc3RydWN0IE9wZXJhbmRUeXBl
czsKICAgICBzdHJ1Y3QgU2ltcGxlSnVtcFRhYmxlOwogICAgIHN0cnVjdCBTdHJpbmdKdW1wVGFi
bGU7CkBAIC00MzUsNyArNDM2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgY29t
cGlsZUdldEJ5SWRIb3RQYXRoKGNvbnN0IElkZW50aWZpZXIqKTsKIAogICAgICAgICAvLyBBcml0
aG1ldGljIG9wY29kZSBoZWxwZXJzCi0gICAgICAgIHZvaWQgZW1pdFN1YjMyQ29uc3RhbnQoaW50
IGRzdCwgaW50IG9wLCBpbnQzMl90IGNvbnN0YW50LCBSZXN1bHRUeXBlIG9wVHlwZSk7CiAgICAg
ICAgIHZvaWQgZW1pdEJpbmFyeURvdWJsZU9wKE9wY29kZUlELCBpbnQgZHN0LCBpbnQgb3AxLCBp
bnQgb3AyLCBPcGVyYW5kVHlwZXMsIEp1bXBMaXN0JiBub3RJbnQzMk9wMSwgSnVtcExpc3QmIG5v
dEludDMyT3AyLCBib29sIG9wMUlzSW5SZWdpc3RlcnMgPSB0cnVlLCBib29sIG9wMklzSW5SZWdp
c3RlcnMgPSB0cnVlKTsKIAogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKQEAgLTc2NCw2ICs3
NjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkksIGludCwgR1BSUmVnLCBVbmlxdWVkU3RyaW5n
SW1wbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnAsIEpTVmFsdWVSZWdz
LCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIFJlc3VsdFByb2ZpbGUqKTsKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScEphaWMs
IEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIFJlc3VsdFByb2ZpbGUqLCBK
SVRBZGRJQyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiwgR1BSUmVn
LCBHUFJSZWcsIEdQUlJlZyk7CkBAIC05NTMsNiArOTU0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWls
ZGVyOwogCisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24qLCBKSVRBZGRJQyo+IG1faW5zdHJ1
Y3Rpb25Ub0pJVEFkZElDOworICAgICAgICBIYXNoTWFwPEluc3RydWN0aW9uKiwgSklUQWRkSUNH
ZW5lcmF0aW9uU3RhdGUqPiBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsK
KwogICAgICAgICBib29sIG1fY2FuQmVPcHRpbWl6ZWQ7CiAgICAgICAgIGJvb2wgbV9jYW5CZU9w
dGltaXplZE9ySW5saW5lZDsKICAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxpbmc7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCShy
ZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwyMyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgi
CisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBKSVRBZGRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCit2b2lkIEpJVEFkZEdl
bmVyYXRvcjo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIEpJVEFkZElDR2VuZXJh
dGlvblN0YXRlJiBzdGF0ZSkKK3sKKyAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGpp
dC5icmFuY2hJZk5vdEludDMyKG1fbGVmdCkpOworICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5h
cHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCkpOworICAgIHN0YXRlLm1fc2xvd1Bh
dGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1f
cmlnaHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsK
KyAgICBqaXQuYm94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Cit9CisKK2Jvb2wgSklU
QWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0LCBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xv
d1BhdGhKdW1wTGlzdCkKIHsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IEludmFsaWRHUFJS
ZWcpOwogICAgIEFTU0VSVChtX3NjcmF0Y2hHUFIgIT0gbV9sZWZ0LnBheWxvYWRHUFIoKSk7CkBA
IC00MywxMiArNTUsOCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChD
CiAKICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRP
cGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICAKLSAgICBpZiAoIW1fbGVmdE9wZXJhbmQubWln
aHRCZU51bWJlcigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkpIHsKLSAgICAg
ICAgQVNTRVJUKCFtX2RpZEVtaXRGYXN0UGF0aCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBtX2RpZEVtaXRGYXN0UGF0aCA9IHRydWU7CisgICAgaWYgKCFtX2xlZnRPcGVyYW5kLm1p
Z2h0QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWlnaHRCZU51bWJlcigpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8
fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgewogICAgICAgICBKU1ZhbHVlUmVncyB2
YXIgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9yaWdodCA6IG1fbGVmdDsKQEAg
LTU4LDIwICs2NiwyMCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChD
CiAgICAgICAgIC8vIFRyeSB0byBkbyBpbnRWYXIgKyBpbnRDb25zdGFudC4KICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIG5vdEludDMyID0gaml0LmJyYW5jaElmTm90SW50MzIodmFyKTsKIAot
ICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhl
bHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNv
bnN0T3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIHNsb3dQYXRo
SnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCB2
YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0T3ByLmFzQ29uc3RJbnQz
MigpKSwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmJveEludDMyKG1fc2NyYXRjaEdQ
UiwgbV9yZXN1bHQpOwotICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsK
KyAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgIGlmICgh
aml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKG5vdEludDMyKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVHJ5IHRvIGRvIGRvdWJsZVZhciArIGRvdWJs
ZShpbnRDb25zdGFudCkuCiAgICAgICAgIG5vdEludDMyLmxpbmsoJmppdCk7CiAgICAgICAgIGlm
ICghdmFyT3ByLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1
bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIodmFyLCBtX3NjcmF0Y2hHUFIpKTsK
KyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJl
cih2YXIsIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRlc3Ry
dWN0aXZlKHZhciwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIsIG1fc2NyYXRjaEZQUik7CiAKQEAg
LTg5LDIyICs5NywyNCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChD
CiAgICAgICAgIGxlZnROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpOwogICAg
ICAgICByaWdodE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwogCi0gICAg
ICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVy
czo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBt
X3NjcmF0Y2hHUFIpKTsKKworICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJh
bmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1f
bGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQz
MihtX3NjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQo
aml0Lmp1bXAoKSk7CisgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKwog
CiAgICAgICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAg
ICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGxlZnROb3RJbnQpOwotICAgICAgICAgICAgbV9z
bG93UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7Ci0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKKyAgICAg
ICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgbGVmdE5vdEludC5saW5rKCZqaXQp
OwogICAgICAgICBpZiAoIW1fbGVmdE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAg
ICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlciht
X2xlZnQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBl
bmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BSKSk7CiAgICAgICAg
IGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBt
X3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBt
X3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQu
dW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xlZnQsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BS
LCBtX3NjcmF0Y2hGUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgcmlnaHRJc0RvdWJs
ZSA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwpAQCAtMTE0LDcgKzEyNCw3IEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgICAgICByaWdodE5v
dEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmRlZmluaXRlbHlJ
c051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJh
bmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93
UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3Jh
dGNoR1BSKSk7CiAKICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fbGVmdC5wYXls
b2FkR1BSKCksIG1fbGVmdEZQUik7CiAKQEAgLTEzMiw2ICsxNDIsOCBAQCB2b2lkIEpJVEFkZEdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1p
dFNldERvdWJsZShqaXQpOwogICAgICAgICAKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwg
bV9yZXN1bHQpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCShyZXZp
c2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTggQEAKICNpZiBFTkFCTEUoSklUKQog
CiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCitzdHJ1Y3Qg
SklUQWRkSUNHZW5lcmF0aW9uU3RhdGU7CisKIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJs
aWM6CisgICAgSklUQWRkR2VuZXJhdG9yKCkKKyAgICB7IH0KKwogICAgIEpJVEFkZEdlbmVyYXRv
cihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5k
LAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVS
ZWdzIHJpZ2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJS
ZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCkBAIC01MywxMSArNTksMTAgQEAgcHVi
bGljOgogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1f
cmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICB9CiAKLSAgICB2b2lkIGdlbmVyYXRl
RmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CisgICAgdm9pZCBnZW5lcmF0ZUlubGluZShDQ2FsbEhl
bHBlcnMmLCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSYpOworICAgIGJvb2wgZ2VuZXJhdGVGYXN0
UGF0aChDQ2FsbEhlbHBlcnMmLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCk7CiAKLSAgICBib29sIGRp
ZEVtaXRGYXN0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRW1pdEZhc3RQYXRoOyB9Ci0gICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QoKSB7IHJldHVybiBtX2VuZEp1bXBM
aXN0OyB9Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCgpIHsg
cmV0dXJuIG1fc2xvd1BhdGhKdW1wTGlzdDsgfQorICAgIEZ1bmN0aW9uUHRyIGNhbGxGb3JOb25S
ZWdlbmVyYXRpbmdJQygpIGNvbnN0IHsgcmV0dXJuIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZhbHVl
QWRkUHJvZmlsZWQpOyB9CiAKIHByaXZhdGU6CiAgICAgU25pcHBldE9wZXJhbmQgbV9sZWZ0T3Bl
cmFuZDsKQEAgLTcwLDEwICs3NSw2IEBAIHByaXZhdGU6CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQ
UjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwogICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0
UHJvZmlsZTsKLSAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKLQotICAgIEND
YWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0IG1fc2xvd1BhdGhKdW1wTGlzdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRJQy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRJQy5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRJQy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKKworI2luY2x1
ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKKyNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsK
KyAKKyAgICAvKgordm9pZCBKSVRBZGRJQzo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBq
aXQsIEpJVEFkZElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKK3sKKyAgICAvLyBGSVhNRTogYWJz
dHJhY3QgdGhpcyEKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUkluZm86OnJlZ1QyOworCisg
ICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xl
ZnQpKTsKKyAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5vdElu
dDMyKG1fcmlnaHQpKTsKKworICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJy
YW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigpLCBt
X2xlZnQucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSKSk7CisKKyAgICBqaXQuYm94SW50MzIoc2Ny
YXRjaEdQUiwgbV9yZXN1bHQpOworfQorCit2b2lkIEpJVEFkZElDOjpnZW5lcmF0ZU91dE9mTGlu
ZShWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIHsKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
R1BSSW5mbzo6cmVnVDI7CisgICAgICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQUlJl
ZzsKKworICAgICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKG1fbGVmdE9wZXJhbmQsIG1fcmlnaHRP
cGVyYW5kLCBtX3Jlc3VsdCwgbV9sZWZ0LCBtX3JpZ2h0LCBGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJ
bmZvOjpmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBtX3Jlc3VsdFByb2ZpbGUpOwor
ICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICBpZiAoIWdlbi5kaWRF
bWl0RmFzdFBhdGgoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZ2VuLmVuZEp1bXBM
aXN0KCkuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAgICAgCisgICAgICAgIExpbmtCdWZmZXIg
bGlua0J1ZmZlcih2bSwgaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7Cisg
ICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbGlua0J1ZmZlci5saW5rKGdlbi5lbmRKdW1wTGlzdCgpLCBkb25l
TG9jYXRpb24oKSk7CisgICAgICAgIGxpbmtCdWZmZXIubGluayhnZW4uc2xvd1BhdGhKdW1wTGlz
dCgpLCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisKKyAgICAgICAgbV9jb2RlID0gRklOQUxJ
WkVfQ09ERV9GT1IoCisgICAgICAgICAgICBjb2RlQmxvY2ssIGxpbmtCdWZmZXIsICgiJXMiLCAi
Z2VuZXJhdGluZyBhZGQgc25pcHBldCBpbiBiYXNlbGluZSBKSVQiKSk7CisgICAgfQorCisgICAg
eworICAgICAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgYXV0
byBqdW1wID0gaml0Lmp1bXAoKTsKKyAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhIG5vcCBzbGVk
IGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBpbmcgaW50byB0aGUgbWlkZGxlIG9m
IGFuIElDLgorICAgICAgICBib29sIG5lZWRzQnJhbmNoQ29tcGFjdGlvbiA9IGZhbHNlOworICAg
ICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBtX2lubGluZVN0YXJ0LmRhdGFMb2NhdGlv
bigpLCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSwgSklUQ29tcGlsYXRpb25N
dXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9uKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmsoanVtcCwg
Q29kZUxvY2F0aW9uTGFiZWwobV9jb2RlLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7Cisg
ICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJKSVRBZGRJQzogbGlua2luZyBjb25z
dGFudCBqdW1wIHRvIG91dCBvZiBsaW5lIGppdCBhZGQgZ2VuZXJhdG9yIikpOworICAgIH0KKwor
ICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoQ2FsbChzbG93UGF0aENhbGxMb2NhdGlvbigpLCBv
cGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKTsKK30KKwordm9pZCBKSVRBZGRJQzo6ZmluYWxpemVJ
bmxpbmVDb2RlKEpJVEFkZElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlua0J1ZmZlciYgbGlu
a0J1ZmZlcikKK3sKKyAgICBDb2RlTG9jYXRpb25MYWJlbCBzdGFydCA9IGxpbmtCdWZmZXIubG9j
YXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoU3RhcnQpOworICAgIG1faW5saW5lU3RhcnQgPSBzdGFy
dDsKKworICAgIGludDMyX3QgaW5saW5lU2l6ZSA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNl
QmV0d2VlbkNvZGVQdHIoCisgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3Rh
dGUubV9mYXN0UGF0aEVuZCkpOworICAgIEFTU0VSVChpbmxpbmVTaXplID4gMCk7CisgICAgbV9p
bmxpbmVTaXplID0gaW5saW5lU2l6ZTsKKworICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRo
Q2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigK
KyAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRoQ2Fs
bCkpOworICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQgPSBNYWNyb0Fzc2VtYmxl
cjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5s
b2NhdGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhTdGFydCkpOworfQorKi8KKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkSUMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZElDLmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRJQy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKSVRBZGRJQ19oCisjZGVmaW5lIEpJVEFkZElDX2gK
KworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJKSVRBZGRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAi
U25pcHBldE9wZXJhbmQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtCdWZmZXI7
CisKK3N0cnVjdCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSB7CisgICAgTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIG1fZmFzdFBhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9mYXN0
UGF0aEVuZDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9zbG93UGF0aFN0YXJ0OworICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1fc2xvd1BhdGhDYWxsOworICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdCBtX3Nsb3dQYXRoSnVtcHM7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2Vu
ZXJhdG9yVHlwZT4KK2NsYXNzIEpJVE1hdGhJQyB7CitwdWJsaWM6CisgICAgQ29kZUxvY2F0aW9u
TGFiZWwgZG9uZUxvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0
KG1faW5saW5lU2l6ZSk7IH0KKyAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFN0YXJ0TG9j
YXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmxhYmVsQXRPZmZzZXQobV9kZWx0YUZyb21T
dGFydFRvU2xvd1BhdGhTdGFydCk7IH0KKyAgICBDb2RlTG9jYXRpb25DYWxsIHNsb3dQYXRoQ2Fs
bExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5jYWxsQXRPZmZzZXQobV9kZWx0YUZy
b21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24pOyB9CisKKyAgICB2b2lkIGdlbmVyYXRlSW5s
aW5lKENDYWxsSGVscGVycyYgaml0LCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCisg
ICAgeworICAgICAgICBtX2dlbmVyYXRvci5nZW5lcmF0ZUlubGluZShqaXQsIHN0YXRlKTsKKyAg
ICB9CisKKyAgICB2b2lkIGdlbmVyYXRlT3V0T2ZMaW5lKFZNJiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCisgICAgeworICAgICAgICB7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2
bSwgY29kZUJsb2NrKTsKKworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVu
ZEp1bXBMaXN0OyAKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0
aEp1bXBMaXN0OyAKKyAgICAgICAgICAgIGJvb2wgZW1pdHRlZEZhc3RQYXRoID0gbV9nZW5lcmF0
b3IuZ2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBMaXN0LCBzbG93UGF0aEp1bXBMaXN0KTsK
KyAgICAgICAgICAgIGlmICghZW1pdHRlZEZhc3RQYXRoKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAg
ICAgICAKKyAgICAgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcih2bSwgaml0LCBjb2RlQmxv
Y2ssIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7CisgICAgICAgICAgICBpZiAobGlua0J1ZmZlci5k
aWRGYWlsVG9BbGxvY2F0ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgbGlua0J1ZmZlci5saW5rKGVuZEp1bXBMaXN0LCBkb25lTG9jYXRpb24oKSk7CisgICAgICAg
ICAgICBsaW5rQnVmZmVyLmxpbmsoc2xvd1BhdGhKdW1wTGlzdCwgc2xvd1BhdGhTdGFydExvY2F0
aW9uKCkpOworCisgICAgICAgICAgICBtX2NvZGUgPSBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAg
ICAgICAgICAgICBjb2RlQmxvY2ssIGxpbmtCdWZmZXIsICgiJXMiLCAiZ2VuZXJhdGluZyBhZGQg
c25pcHBldCBpbiBiYXNlbGluZSBKSVQiKSk7CisgICAgICAgIH0KKworICAgICAgICB7CisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgICAgIGF1
dG8ganVtcCA9IGppdC5qdW1wKCk7CisgICAgICAgICAgICAvLyBXZSBkb24ndCBuZWVkIGEgbm9w
IHNsZWQgaGVyZSBiZWNhdXNlIG5vYm9keSBzaG91bGQgYmUganVtcGluZyBpbnRvIHRoZSBtaWRk
bGUgb2YgYW4gSUMuCisgICAgICAgICAgICBib29sIG5lZWRzQnJhbmNoQ29tcGFjdGlvbiA9IGZh
bHNlOworICAgICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbV9pbmxpbmVTdGFy
dC5kYXRhTG9jYXRpb24oKSwgaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCksIEpJ
VENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQsIG5lZWRzQnJhbmNoQ29tcGFjdGlvbik7CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVyLmlzVmFsaWQoKSk7CisgICAgICAgICAgICBs
aW5rQnVmZmVyLmxpbmsoanVtcCwgQ29kZUxvY2F0aW9uTGFiZWwobV9jb2RlLmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIs
ICgiSklUTWF0aElDOiBsaW5raW5nIGNvbnN0YW50IGp1bXAgdG8gb3V0IG9mIGxpbmUgaml0IGFk
ZCBnZW5lcmF0b3IiKSk7CisgICAgICAgIH0KKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVw
YXRjaENhbGwoc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgbV9nZW5lcmF0b3IuY2FsbEZvck5vblJl
Z2VuZXJhdGluZ0lDKCkpOworICAgIH0KKworICAgIHZvaWQgZmluYWxpemVJbmxpbmVDb2RlKGNv
bnN0IEpJVEFkZElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlua0J1ZmZlciYgbGlua0J1ZmZl
cikKKyAgICB7CisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHN0YXJ0ID0gbGlua0J1ZmZlci5s
b2NhdGlvbk9mKHN0YXRlLm1fZmFzdFBhdGhTdGFydCk7CisgICAgICAgIG1faW5saW5lU3RhcnQg
PSBzdGFydDsKKworICAgICAgICBpbnQzMl90IGlubGluZVNpemUgPSBNYWNyb0Fzc2VtYmxlcjo6
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIu
bG9jYXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoRW5kKSk7CisgICAgICAgIEFTU0VSVChpbmxpbmVT
aXplID4gMCk7CisgICAgICAgIG1faW5saW5lU2l6ZSA9IGlubGluZVNpemU7CisKKyAgICAgICAg
bV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24gPSBNYWNyb0Fzc2VtYmxlcjo6
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIu
bG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRoQ2FsbCkpOworICAgICAgICBtX2RlbHRhRnJvbVN0
YXJ0VG9TbG93UGF0aFN0YXJ0ID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29k
ZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9z
bG93UGF0aFN0YXJ0KSk7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG1fY29k
ZTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbCBtX2lubGluZVN0YXJ0OworICAgIFJlc3VsdFByb2Zp
bGUqIG1fcmVzdWx0UHJvZmlsZTsKKyAgICBpbnQzMl90IG1faW5saW5lU2l6ZTsKKyAgICBpbnQz
Ml90IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uOworICAgIGludDMyX3Qg
bV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydDsKKworICAgIEdlbmVyYXRvclR5cGUgbV9n
ZW5lcmF0b3I7Cit9OworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJVEFk
ZElDOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNl
bmRpZiAvLyBKSVRBZGRJQ19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFy
aXRobWV0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QXJpdGhtZXRpYy5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAK
ICNpZiBFTkFCTEUoSklUKQogI2luY2x1ZGUgIkpJVC5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9m
aWxlLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKICNp
bmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJKSVRCaXRPckdlbmVyYXRvci5oIgpAQCAtNDgsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKIAorI2luY2x1
ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTY4MCw3ICs2ODMsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaW50IHJlc3Vs
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVz
Ojpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyhSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQpLmxoc1Jlc3VsdFR5cGUoKSwgUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5yaHNSZXN1bHRUeXBlKCkpOwogCiAjaWYgVVNFKEpT
VkFMVUU2NCkKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsK
QEAgLTY5NSwxMCArNjk4LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1Q0OwogICAgIEZQUlJlZyBzY3JhdGNo
RlBSID0gZnBSZWdUMjsKICNlbmRpZgorICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsKKyAg
ICBVTlVTRURfUEFSQU0oc2NyYXRjaEZQUik7CiAKICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAg
ICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7CisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgU25pcHBl
dE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQg
cmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTcxMCwxNCArNzE1LDI2IEBAIHZvaWQg
SklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKIAogICAgIFJFTEVBU0VfQVNTRVJU
KCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkgfHwgIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpOwogCi0g
ICAgaWYgKCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgLy9pZiAoIWxlZnRPcGVyYW5kLmlz
Q29uc3QoKSkKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsK
LSAgICBpZiAoIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgLy9pZiAoIXJpZ2h0T3BlcmFu
ZC5pc0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJl
Z3MpOwogCi0gICAgSklUQWRkR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5k
LCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJl
Z1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICBKSVRBZGRJ
QyogYWRkSUMgPSBtX2NvZGVCbG9jay0+YWRkSklUQWRkSUMoKTsKKyAgICBKSVRBZGRJQ0dlbmVy
YXRpb25TdGF0ZSogYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBuZXcgSklUQWRkSUNHZW5lcmF0aW9u
U3RhdGU7CisKKyAgICBtX2luc3RydWN0aW9uVG9KSVRBZGRJQy5hZGQoY3VycmVudEluc3RydWN0
aW9uLCBhZGRJQyk7CisgICAgbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUu
YWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUNHZW5lcmF0aW9uU3RhdGUpOworCisgICAgYWRk
SUMtPm1fZ2VuZXJhdG9yID0gSklUQWRkR2VuZXJhdG9yKGxlZnRPcGVyYW5kLCByaWdodE9wZXJh
bmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGZwUmVnVDAsIGZwUmVnVDEsIHNj
cmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOwogCisgICAgYWRkSUNHZW5lcmF0
aW9uU3RhdGUtPm1fZmFzdFBhdGhTdGFydCA9IGxhYmVsKCk7CisgICAgYWRkSUMtPmdlbmVyYXRl
SW5saW5lKCp0aGlzLCAqYWRkSUNHZW5lcmF0aW9uU3RhdGUpOworICAgIGFkZElDR2VuZXJhdGlv
blN0YXRlLT5tX2Zhc3RQYXRoRW5kID0gbGFiZWwoKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgYWRkU2xvd0Nhc2UoYWRkSUNHZW5lcmF0aW9u
U3RhdGUtPm1fc2xvd1BhdGhKdW1wcyk7CisKKyAgICAvKgogICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKCp0aGlzKTsKIAogICAgIGlmIChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpIHsKQEAgLTc0MCwx
NiArNzU3LDI3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAg
ICAgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBh
dXRvIGVuZCA9IGxhYmVsKCk7CisKKyAgICBhZGRMaW5rVGFzaygKKyAgICAgICAgWz1dIChMaW5r
QnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICBkYXRhTG9nKCJBZGQgZmFzdCBwYXRo
IHNpemU6ICIsIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVjdXRhYmxlQWRk
cmVzcygpIC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSwgIlxuIik7CisgICAgICAgIH0pOworICAgICAgICAqLwogfQogCiB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0Zv
ckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKIAor
ICAgIEpJVEFkZElDR2VuZXJhdGlvblN0YXRlKiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1faW5z
dHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmdldChjdXJyZW50SW5zdHJ1Y3Rpb24p
OworICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoU3RhcnQgPSBsYWJlbCgpOwor
CiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAg
aW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVz
ID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQp
OworICAgIE9wZXJhbmRUeXBlcyB0eXBlcyhSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJ
bnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLmxoc1Jlc3VsdFR5cGUoKSwgUmVzdWx0UHJvZmlsZTo6
ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5yaHNSZXN1bHRUeXBlKCkp
OwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QwKTsKQEAgLTc2OSwxOCArNzk3LDQxIEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9hZGQoSW5zdHJ1Y3Rpb24qIGMKICAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChv
cDIpKQogICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3Rh
bnRJbnQob3AyKSk7CiAKKyAgICAvL2lmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgLy9pZiAocmlnaHRP
cGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7CisgICAgSklUQWRkSUMqIGFkZElDID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUMu
Z2V0KGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmls
ZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKKyAgICAgICAgcmVz
dWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQo
bV9ieXRlY29kZU9mZnNldCk7CisgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhD
YWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUsIHJl
c3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUsIGFkZElDKTsKKyAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgYWRkTGlu
a1Rhc2soCisgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAg
ICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29kZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtC
dWZmZXIpOworICAgICAgICB9KTsKKworICAgIC8qCiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxp
bmcoKSkgewogICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAgICAgaWYgKHJpZ2h0
T3BlcmFuZC5pc0NvbnN0KCkpCiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MiwgcmlnaHRSZWdzKTsKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1f
Y29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPnJlc3VsdFByb2Zp
bGVGb3JCeXRlY29kZU9mZnNldChtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmln
aHRSZWdzLCByZXN1bHRQcm9maWxlKTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihy
ZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEpJVFNsb3dQYXRoQ2Fs
bCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsK
ICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKICAgICB9CisKKyAgICBhdXRvIGVuZCA9IGxh
YmVsKCk7CisgICAgYWRkTGlua1Rhc2soCisgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1
ZmZlcikgeworICAgICAgICAgICAgZGF0YUxvZygiQWRkIHNsb3cgcGF0aCBzaXplOiAiLCAoY2hh
ciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKGVuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFy
KilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRyZXNzKCksICJcbiIp
OworICAgICAgICB9KTsKKyAgICAgICAgKi8KIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC03ODgsNyArODM5LDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUlu
dChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CkBAIC04MDUs
NyArODU2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogCiAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3Vs
ZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5l
bnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICByZXN1bHRQcm9m
aWxlID0gbV9jb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2J5dGVj
b2RlT2Zmc2V0KTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0
KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBA
IC04NjEsNyArOTEyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJy
ZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAg
IGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBl
cyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6
OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgp
KTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CkBAIC04NzksNyArOTMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVs
KEluc3RydWN0aW9uKiBjdXJyZQogCiAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0
UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZz
ZXQpOworICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVG
b3JCeXRlY29kZU9mZnNldChtX2J5dGVjb2RlT2Zmc2V0KTsKIAogICAgIFNuaXBwZXRPcGVyYW5k
IGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3Bl
cmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC05MzAsNyArOTgxLDcgQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
OwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0
UHJvZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1
bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUu
b3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNW
YWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CkBAIC05NTUsNyArMTAwNiw3
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICAgICAgICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgICAgIGlmIChyaWdo
dE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9m
ZnNldCk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9j
ay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKQEAgLTk2OSw3
ICsxMDIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAg
IGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBv
cDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9w
ZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAg
ICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21J
bnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMCk7CkBAIC05ODcsNyArMTAzOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0
cnVjdGlvbiogY3VycmUKIAogICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxs
cHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2Zp
bGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsK
KyAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0
ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0
T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQo
dHlwZXMuc2Vjb25kKCkpOwpAQCAtMTAyMyw3ICsxMDc0LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX3N1YihJbnN0cnVjdGlvbiogYwogI2VuZGlmCiAKICAgICBpZiAoc2hvdWxkRW1pdFByb2Zp
bGluZygpKSB7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVn
cywgcmVzdWx0UHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0
LCByZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9m
aWxlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29t
bW9uLmgiCiAKQEAgLTEyOSw3ICsxMzAsNyBAQCB2b2lkIEpJVERpdkdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChDCiAgICAgbm90RG91YmxlWmVyby5saW5rKCZqaXQpOwogI2VuZGlmCiAgICAg
aWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgaml0LmFkZDMyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2Zp
bGUtPmFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkpKTsKKyAgICAgICAgaml0Lm9yMzIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6c3BlY2lhbEZhc3RQYXRo
Qml0KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRy
ZXNzT2ZCaXRzKCkpKTsKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwog
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24g
MjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQyNCw2ICs0MjQsMTQgQEAgaW5saW5lIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZQogICAgIHJldHVybiBjYWxsOwogfQogCitpbmxpbmUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwSmFpYyBvcGVy
YXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3Mg
YXJnMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSwgSklUQWRkSUMqIGFkZElDKQorewor
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRy
KHJlc3VsdFByb2ZpbGUpLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgQ2FsbCBjYWxsID0g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVzdWx0
cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOworfQorCiAjaWYgVVNFKEpTVkFMVUU2NCkKIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklU
T3BlcmF0aW9uX0VKWlogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBpbnQz
Ml90IGFyZzMpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxH
ZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKwogbmFtZXNw
YWNlIEpTQyB7CiAKIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxs
SGVscGVycyYgaml0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQXJy
YXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUg
IkRGR0NvbXBpbGF0aW9uTW9kZS5oIgpAQCAtMjI2Nyw3ICsyMjY4LDI1IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AyKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4
ZWMsIG9wMSwgb3AyKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1
bHQpOworICAgIGlmIChyZXN1bHRQcm9maWxlKQorICAgICAgICByZXN1bHRQcm9maWxlLT5kZXRl
Y3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFBy
b2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxl
LCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBv
cDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Fk
ZChleGVjLCBvcDEsIG9wMik7CisgICAgaWYgKHJlc3VsdFByb2ZpbGUpCisgICAgICAgIHJlc3Vs
dFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisKKyAgICBhZGRJQy0+Z2VuZXJh
dGVPdXRPZkxpbmUoKnZtLCBleGVjLT5jb2RlQmxvY2soKSk7CisgICAgLy9leGVjLT5jb2RlQmxv
Y2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsMTAgQEAgc3RydWN0IFJlc3Vs
dFByb2ZpbGU7CiAKIHR5cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIAordGVtcGxhdGUgPHR5
cGVuYW1lIEdlbmVyYXRvclR5cGU+IGNsYXNzIEpJVE1hdGhJQzsKK2NsYXNzIEpJVEFkZEdlbmVy
YXRvcjsKK3R5cGVkZWYgSklUTWF0aElDPEpJVEFkZEdlbmVyYXRvcj4gSklUQWRkSUM7CisKIGV4
dGVybiAiQyIgewogCiB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKQEAgLTgxLDYgKzg1LDcgQEAg
dHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgSWNmOiBJbmxpbmVDYWxsRnJhbWUqCiAgICAg
SWRjOiBjb25zdCBJZGVudGlmaWVyKgogICAgIEo6IEVuY29kZWRKU1ZhbHVlCisgICAgSmFpYzog
SklUQWRkSUMqCiAgICAgSmNwOiBjb25zdCBKU1ZhbHVlKgogICAgIEpzYzogSlNTY29wZSoKICAg
ICBKc2Y6IEpTRnVuY3Rpb24qCkBAIC0xMzQsNiArMTM5LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSAoSklUX09QRVJBVElPTiAqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJB
VElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRf
T1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSlJwKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFJlc3VsdFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSlJwSmFpYykoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxlKiwg
SklUQWRkSUMqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklU
T3BlcmF0aW9uX0VKc3NaKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1Jlbyko
RXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3QqKTsKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKc3NSZW9Kc3MpKEV4ZWNTdGF0
ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKTsKQEAgLTQwOSw2ICs0MTUs
NyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAKIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBSZXN1bHRQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsK
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZp
c2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmls
ZS5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTg5Myw2ICs4OTMsOSBAQCBt
YWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgYnFiIHQxLCB0YWdU
eXBlTnVtYmVyLCAub3AyTm90SW50CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQog
ICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKKyAgICAjbG9h
ZGlzRnJvbUluc3RydWN0aW9uKDQsIHQxKQorICAgICNvcmkgMHgwMDAwMDUwNSwgdDEKKyAgICAj
c3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDEsIDQpCiAgICAgZGlzcGF0Y2goNSkKIAogLm9wMU5vdElu
dDoKQEAgLTkwMiw4ICs5MDUsMTQgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2Vy
T3BlcmF0aQogICAgIGJ0cXogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CiAgICAgYWRkcSB0YWdU
eXBlTnVtYmVyLCB0MQogICAgIGZxMmQgdDEsIGZ0MQorICAgICNsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oNCwgdDIpCisgICAgI29yaSAweDA0MDQsIHQyCisgICAgI3N0b3JlaXNUb0luc3RydWN0aW9u
KHQyLCA0KQogICAgIGptcCAub3AxTm90SW50UmVhZHkKIC5vcDFOb3RJbnRPcDJJbnQ6CisgICAg
I2xvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAgICAjb3JpIDB4MDUwNCwgdDIKKyAgICAj
c3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgY2kyZCB0MSwgZnQxCiAub3AxTm90SW50
UmVhZHk6CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQpAQCAtOTE5LDYgKzkyOCw5
IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICAjIEZpcnN0
IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVseSBu
b3QuCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQogICAgIGJ0cXogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisgICAgI2xvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MykKKyAgICAj
b3JpIDB4MDQwNSwgdDMKKyAgICAjc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDMsIDQpCiAgICAgY2ky
ZCB0MCwgZnQwCiAgICAgYWRkcSB0YWdUeXBlTnVtYmVyLCB0MQogICAgIGZxMmQgdDEsIGZ0MQpA
QCAtOTQ2LDcgKzk1OCwxMCBAQCBlbmQKIF9sbGludF9vcF9hZGQ6CiAgICAgdHJhY2VFeGVjdXRp
b24oKQogICAgIGJpbmFyeU9wKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGJh
ZGRpbyBsZWZ0LCByaWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwg
c2xvdykKKyAgICAgICAgICAgIGJhZGRpbyBsZWZ0LCByaWdodCwgc2xvdworCisgICAgICAgIGVu
ZCwKICAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBhZGRkIGxlZnQsIHJpZ2h0IGVuZCwKICAg
ICAgICAgX3Nsb3dfcGF0aF9hZGQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDIwMzEyMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29y
a2luZyBjb3B5KQpAQCAtMjg2LDYgKzI4NiwxMCBAQCBpZiBKU1ZBTFVFNjQKICAgICAgICAgbG9h
ZHAgb2Zmc2V0ICogOFtQQiwgUEMsIDhdLCBkZXN0CiAgICAgZW5kCiAgICAgCisgICAgbWFjcm8g
c3RvcmVpc1RvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKKyAgICAgICAgc3RvcmVpIHZhbHVl
LCBvZmZzZXQgKiA4W1BCLCBQQywgOF0KKyAgICBlbmQKKwogICAgIG1hY3JvIHN0b3JlcFRvSW5z
dHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKICAgICAgICAgc3RvcmVwIHZhbHVlLCBvZmZzZXQgKiA4
W1BCLCBQQywgOF0KICAgICBlbmQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UmVzdWx0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UmVzdWx0VHlwZS5oCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1Jlc3VsdFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMjMgKzMyLDI2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBzdHJ1Y3QgT3BlcmFu
ZFR5cGVzOwogCi0gICAgICAgIHR5cGVkZWYgY2hhciBUeXBlOwotICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlSW50MzIgPSAxOwotICAgICAgICAKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5
cGUgVHlwZU1heWJlTnVtYmVyID0gMHgwNDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlw
ZU1heWJlU3RyaW5nID0gMHgwODsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJl
TnVsbCAgID0gMHgxMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlQm9vbCAg
ID0gMHgyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlT3RoZXIgID0gMHg0
MDsKKyAgICAgICAgdHlwZWRlZiB1aW50OF90IFR5cGU7CisgICAgICAgIHN0YXRpYyBjb25zdCBU
eXBlIFR5cGVFbXB0eSA9ICAgICAgIDB4MDA7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5
cGVJbnQzMiA9ICAgICAgIDB4MDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXli
ZU51bWJlciA9IDB4MDI7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZVN0cmlu
ZyA9IDB4MDQ7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZUJvb2wgICA9IDB4
MDg7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU90aGVyICA9IDB4MTA7Cisg
ICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU51bGwgICA9IDB4MjA7CisKKyAgICAg
ICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUJpdHMgPSBUeXBlTWF5YmVOdW1iZXIgfCBUeXBlTWF5
YmVTdHJpbmcgfCBUeXBlTWF5YmVCb29sIHwgVHlwZU1heWJlT3RoZXI7CiAKLSAgICAgICAgc3Rh
dGljIGNvbnN0IFR5cGUgVHlwZUJpdHMgPSBUeXBlTWF5YmVOdW1iZXIgfCBUeXBlTWF5YmVTdHJp
bmcgfCBUeXBlTWF5YmVOdWxsIHwgVHlwZU1heWJlQm9vbCB8IFR5cGVNYXliZU90aGVyOworICAg
IHB1YmxpYzoKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1CaXRzTmVlZGVkID0gNjsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydCgoVHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRlZCkgLSAx
KSkgPT0gVHlwZUJpdHMsICJUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MuIik7CiAK
ICAgICAgICAgZXhwbGljaXQgUmVzdWx0VHlwZShUeXBlIHR5cGUpCiAgICAgICAgICAgICA6IG1f
dHlwZSh0eXBlKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgIHB1YmxpYzoKICAgICAgICAg
Ym9vbCBpc0ludDMyKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIG1fdHlw
ZSAmIFR5cGVJbnQzMjsKQEAgLTc5LDExICs4Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuICFtaWdodEJlTnVtYmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHN0YXRpYyBSZXN1bHRUeXBlIG51bGxUeXBlKCkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFJlc3VsdFR5cGUoVHlwZU1heWJlTnVsbCk7Ci0gICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyBSZXN1bHRUeXBlIGJvb2xlYW5UeXBlKCkKICAgICAgICAgewogICAgICAg
ICAgICAgcmV0dXJuIFJlc3VsdFR5cGUoVHlwZU1heWJlQm9vbCk7CkBAIC0xMDgsNiArMTA2LDEx
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gUmVzdWx0
VHlwZShUeXBlTWF5YmVTdHJpbmcpOwogICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIFJlc3Vs
dFR5cGUgbnVsbFR5cGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0VHlw
ZShUeXBlTWF5YmVOdWxsKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIFJl
c3VsdFR5cGUgdW5rbm93blR5cGUoKQogICAgICAgICB7CkBAIC0xNDEsNiArMTQ0LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbnVtYmVyVHlwZUlzSW50MzIoKTsKICAg
ICAgICAgfQogCisgICAgICAgIFR5cGUgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQor
CiAgICAgcHJpdmF0ZToKICAgICAgICAgVHlwZSBtX3R5cGU7CiAgICAgfTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2
aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJ1aWx0
aW5OYW1lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgpAQCAtNTgsNiArNTksOCBAQAogI2lu
Y2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVh
bS5oPgogCisjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogI2Rl
ZmluZSBCRUdJTl9OT19TRVRfUEMoKSBcCkBAIC0zNjMsNyArMzY2LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeQogewogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjb2Rl
QmxvY2stPmJ5dGVjb2RlT2Zmc2V0KHBjKTsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0g
Y29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBSZXN1
bHRQcm9maWxlKiBwcm9maWxlID0gY29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVP
ZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgaWYgKHJlc3VsdC5pc051bWJlcigpKSB7CiAg
ICAgICAgIGlmICghcmVzdWx0LmlzSW50MzIoKSkgewpAQCAtNDA3LDYgKzQxMCwxOSBAQCBTTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfYWRkKQogICAgIEpTVmFsdWUgdjIgPSBPUF9DKDMpLmpzVmFs
dWUoKTsKICAgICBKU1ZhbHVlIHJlc3VsdDsKIAorICAgIC8qCisgICAgZGF0YUxvZygic2xvd19w
YXRoX2FkZFxuIik7CisgICAgZGF0YUxvZygiVjE6ICIsIHJ1bnRpbWVUeXBlQXNTdHJpbmcocnVu
dGltZVR5cGVGb3JWYWx1ZSh2MSkpLCAiXG4iKTsKKyAgICBkYXRhTG9nKCJWMjogIiwgcnVudGlt
ZVR5cGVBc1N0cmluZyhydW50aW1lVHlwZUZvclZhbHVlKHYyKSksICJcbiIpOworICAgIGRhdGFM
b2coIlN0YXRzOiAiLCBwY1s0XS51Lm9wZXJhbmQsICJcbiIpOworICAgIE9wZXJhbmRUeXBlcyB0
eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChwY1s0XS51Lm9wZXJhbmQpOworICAgIFJlc3Vs
dFR5cGUgYSA9IHR5cGVzLmZpcnN0KCk7CisgICAgUmVzdWx0VHlwZSBiID0gdHlwZXMuc2Vjb25k
KCk7CisgICAgZGF0YUxvZygqYml0d2lzZV9jYXN0PHVpbnQ4X3QqPigmYSksICJcbiIpOworICAg
IGRhdGFMb2coKmJpdHdpc2VfY2FzdDx1aW50OF90Kj4oJmIpLCAiXG4iKTsKKyAgICAqLworICAg
IAorCiAgICAgaWYgKHYxLmlzU3RyaW5nKCkgJiYgIXYyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJl
c3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKHYxKSwgdjIudG9TdHJpbmcoZXhlYykpOwog
ICAgIGVsc2UgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283620</attachid>
            <date>2016-07-14 00:50:07 -0700</date>
            <delta_ts>2016-07-15 18:41:20 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>96134</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMxMjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxMiArMTI4MSwxNiBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkExRDM0
NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MjMzQzI4MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5j
cHAgKi87IH07CisJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRBZGRJQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1
NzAwQzVBODM0IC8qIEpJVEFkZElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3Jp
Z2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07
CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1
QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdl
dFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQw
MEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0MDBCQSAvKiBK
U0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENU
b09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIyODM1MUQzNUQ3
MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJv
ZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBBcml0aFByb2Zp
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QTIy
ODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKIAkJNzlCMDBDQkMx
QzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQjgxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5Q29uc3RydWN0b3IuY3BwICovOyB9OwogCQk3OUIwMENCRDFDNkFCMDdFMDA4OEM2NUQg
LyogUHJveHlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUIw
MENCRTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkExQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLWZuby1v
cHRpbWl6ZS1zaWJsaW5nLWNhbGxzIjsgfTsgfTsKQEAgLTM0NzYsMTIgKzM0ODAsMTYgQEAKIAkJ
NzkwNUJCNjcxRDEyMDUwRTAwMTlGRTU3IC8qIElubGluZUFjY2Vzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVBY2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5UmV2b2tlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5
UmV2b2tlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5UmV2b2tlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5MjMzQzI4MUQzNDcxNTcwMEM1QTgzNCAv
KiBKSVRBZGRJQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRB
ZGRJQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5MjMzQzI5MUQzNDcxNTcw
MEM1QTgzNCAvKiBKSVRBZGRJQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
SVRBZGRJQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVD
MDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAw
QkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0Iz
UENUb09yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFE
MzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5Q29uc3Ry
dWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCOTFDNkFCMDdF
MDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MDU3LDYgKzUwNjUsOCBAQAogCQkJCURFNUEwOUZGMUJBM0FDM0Uw
MDNENDQyNCAvKiBJbnRyaW5zaWNFbWl0dGVyLmNwcCAqLywKIAkJCQkxNDI5RDkyRDBFRDIyRDcw
MDBCODk2MTkgLyogSklULmNwcCAqLywKIAkJCQkxNDI5RDkyRTBFRDIyRDcwMDBCODk2MTkgLyog
SklULmggKi8sCisJCQkJNzkyMzNDMjgxRDM0NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCAq
LywKKwkJCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUQWRkSUMuaCAqLywKIAkJCQlG
RTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmNwcCAqLywKIAkJCQlG
RTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmggKi8sCiAJCQkJODZB
OTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0aWMuY3BwICovLApAQCAtNjU1Niw2
ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcwNTEwMDZBNTk3QyAvKiBBcnJheVBy
b2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEwMDZBNTk3QyAvKiBBcnJheVByb2Zp
bGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNw
cCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggKi8s
CiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5jcHAg
Ki8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5o
ICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAvKiBCeXRlY29kZUNvbnZlbnRpb25z
LmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1RUE3MEU4MTlGNUIxMDEwMDk4RjVF
QyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0FyZ3VtZW50UmVnVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxv
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRB
ZGRJQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
QmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAzMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
MDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCkBA
IC03NzU0LDYgKzc3NjcsNyBAQAogCQkJCUE1MTAwN0MxMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0
QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTUwM0ZBMkExODhGMTA1OTAwMTEwRjE0IC8qIEpTR2xvYmFsT2JqZWN0
U2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5QTIyODM2MUQzNUQ3MUYw
MEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMwMTg1
QkZBQ0MwMDdFOTVBRCAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTUxM0U1QzIxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNDQyQ0IyNTFBNkNEQjhDMDA1RDNEN0MgLyogSlNJ
bnB1dHMuanNvbiBpbiBIZWFkZXJzICovLApAQCAtOTI2Myw2ICs5Mjc3LDcgQEAKIAkJCQkwRkVC
M0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZDNTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2Vt
YmxlckFSTTY0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2
NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2
MDAwMzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU2OEM2MzgxQjkwREUwQjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MzIyLDYgKzkzMzcsNyBAQAogCQkJ
CTBGRjcyOUIxMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QjIxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVy
RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOTBDQUMxODlEODJGNjAwMEFFNUYw
IC8qIFByb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzkyMzND
MkExRDM0NzE1NzAwQzVBODM0IC8qIEpJVEFkZElDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RjcyOUIzMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkY3MjlCNDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW5TdGFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlENEMwQzFDM0UxQzExMDA2Q0Q5ODQgLyogRlRMRXhj
ZXB0aW9uVGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIK
KworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKKyNpZiBFTkFCTEUoSklUKQordm9pZCBSZXN1bHRQcm9maWxlOjpl
bWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3Ms
IFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQz
MiA9IGppdC5icmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOworICAgIENDYWxsSGVscGVyczo6SnVt
cCBub3REb3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1v
ZGUpOworICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KKyAgICBl
bWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVt
cCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAgIGVtaXRTZXROb25OdW1iZXIoaml0
KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAgaXNJbnQzMi5saW5rKCZqaXQpOworfQorCit2
b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCit7Cisg
ICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50
MzJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxl
OjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKK30KKwordm9pZCBS
ZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYgaml0KQoreworICAg
IGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51
bWJlciksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNw
YWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHByaW50SW50ZXJu
YWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgUmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkKK3sKKyAg
ICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKKworICAgIGlmICghcHJvZmlsZS5kaWRPYnNl
cnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQoIkludDMyIik7CisgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNl
cnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAi
TmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9
CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2Vw
YXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVO
b25OdW1iZXIoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsKKyAgICAg
ICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5k
aWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIkludDMy
T3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8
IjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3Vu
dCgpKSB7CisgICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsKKyAgICAg
ICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSk7CisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Bcml0aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQXJpdGhQcm9maWxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBBcml0aFByb2ZpbGVfaAorI2RlZmluZSBBcml0aFByb2ZpbGVfaAorCisjaW5jbHVkZSAiR1BS
SW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlICJSZXN1bHRUeXBlLmgi
CisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKyAKK2Ns
YXNzIENDYWxsSGVscGVyczsKKworc3RydWN0IE9ic2VydmVkVHlwZSB7CisgICAgT2JzZXJ2ZWRU
eXBlKHVpbnQ4X3QgYml0cyA9IFR5cGVFbXB0eSkKKyAgICAgICAgOiBtX2JpdHMoYml0cykKKyAg
ICB7IH0KKworICAgIGJvb2wgc2F3SW50MzIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBl
SW50MzI7IH0KKyAgICBib29sIGlzT25seUludDMyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09
IFR5cGVJbnQzMjsgfQorICAgIGJvb2wgc2F3TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRz
ICYgVHlwZU51bWJlcjsgfQorICAgIGJvb2wgaXNPbmx5TnVtYmVyKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRzID09IFR5cGVOdW1iZXI7IH0KKyAgICBib29sIHNhd05vbk51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYml0cyAmIFR5cGVOb25OdW1iZXI7IH0KKyAgICBib29sIGlzT25seU5vbk51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlTm9uTnVtYmVyOyB9CisgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fYml0czsgfQorICAgIHVpbnQ4X3QgYml0cygpIGNv
bnN0IHsgcmV0dXJuIG1fYml0czsgfQorCisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhJbnQzMigpIGNv
bnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBlSW50MzIpOyB9CisgICAgT2Jz
ZXJ2ZWRUeXBlIHdpdGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRz
IHwgVHlwZU51bWJlcik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE5vbk51bWJlcigpIGNvbnN0
IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTm9uTnVtYmVyKTsgfQorICAgIE9i
c2VydmVkVHlwZSB3aXRob3V0Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBl
KG1fYml0cyAmIH5UeXBlTm9uTnVtYmVyKTsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IE9ic2VydmVkVHlwZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBvdGhlci5tX2Jp
dHM7IH0KKworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVFbXB0eSA9IDB4MDsKKyAgICBz
dGF0aWMgY29uc3QgdWludDhfdCBUeXBlSW50MzIgPSAweDE7CisgICAgc3RhdGljIGNvbnN0IHVp
bnQ4X3QgVHlwZU51bWJlciA9IDB4MDI7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZU5v
bk51bWJlciA9IDB4MDQ7CisKK3ByaXZhdGU6CisgICAgdWludDhfdCBtX2JpdHM7Cit9OworCitz
dHJ1Y3QgUmVzdWx0UHJvZmlsZSB7Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBudW1iZXJPZkZsYWdCaXRzID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcmhzUmVz
dWx0VHlwZVNoaWZ0ID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbGhzUmVzdWx0VHlw
ZVNoaWZ0ID0gMTE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc09ic2VydmVkVHlwZVNo
aWZ0ID0gMTc7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGxoc09ic2VydmVkVHlwZVNoaWZ0
ID0gMjA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGJvdHRvbTZCaXRzID0gKDEgPDwgNikg
LSAxOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b20zQml0cyA9ICgxIDw8IDMpIC0g
MTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRzID0g
figoMSA8PCAxNykgfCAoMSA8PCAxOCkgfCAoMSA8PCAxOSkpOworICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBjbGVhckxoc09ic2VydmVkVHlwZUJpdHMgPSB+KCgxIDw8IDIwKSB8ICgxIDw8IDIx
KSB8ICgxIDw8IDIyKSk7CisKKyAgICBzdGF0aWNfYXNzZXJ0KFJlc3VsdFR5cGU6Om51bUJpdHNO
ZWVkZWQgPT0gNiwgIldlIG1ha2UgYSBzdHJvbmcgYXNzdW1wdGlvbiBoZXJlIHRoYXQgUmVzdWx0
VHlwZSBmaXRzIGluIDYgYmlzLiIpOworCitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IHNwZWNpYWxGYXN0UGF0aEJpdCA9IDEgPDwgMjM7CisKKyAgICBSZXN1bHRQcm9maWxlKFJl
c3VsdFR5cGUgbGhzLCBSZXN1bHRUeXBlIHJocykKKyAgICB7CisgICAgICAgIG1fYml0cyA9IChs
aHMuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVTaGlmdCkgfCAocmhzLmJpdHMoKSA8PCByaHNSZXN1
bHRUeXBlU2hpZnQpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaHNSZXN1bHRUeXBlKCkuYml0
cygpID09IGxocy5iaXRzKCkgJiYgcmhzUmVzdWx0VHlwZSgpLmJpdHMoKSA9PSByaHMuYml0cygp
KTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsKKyAg
ICB9CisgICAgUmVzdWx0UHJvZmlsZSgpCisgICAgeyB9CisKKyAgICBzdGF0aWMgUmVzdWx0UHJv
ZmlsZSBmcm9tSW50KHVpbnQzMl90IGJpdHMpCisgICAgeworICAgICAgICBSZXN1bHRQcm9maWxl
IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fYml0cyA9IGJpdHM7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorCisgICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgeworICAgICAgICBOb25O
ZWdaZXJvRG91YmxlID0gMSA8PCAwLAorICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAx
LAorICAgICAgICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAorICAgICAgICBJbnQzMk92ZXJm
bG93ICAgID0gMSA8PCAzLAorICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAorICAg
IH07CisKKyAgICBSZXN1bHRUeXBlIGxoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1
bHRUeXBlKChtX2JpdHMgPj4gbGhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQor
ICAgIFJlc3VsdFR5cGUgcmhzUmVzdWx0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIFJlc3VsdFR5cGUo
KG1fYml0cyA+PiByaHNSZXN1bHRUeXBlU2hpZnQpICYgYm90dG9tNkJpdHMpOyB9CisKKyAgICBP
YnNlcnZlZFR5cGUgbGhzT2JzZXJ2ZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBl
KChtX2JpdHMgPj4gbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpICYgYm90dG9tM0JpdHMpOyB9CisgICAg
T2JzZXJ2ZWRUeXBlIHJoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlw
ZSgobV9iaXRzID4+IHJoc09ic2VydmVkVHlwZVNoaWZ0KSAmIGJvdHRvbTNCaXRzKTsgfQorICAg
IHZvaWQgc2V0TGhzT2JzZXJ2ZWRUeXBlKE9ic2VydmVkVHlwZSB0eXBlKQorICAgIHsKKyAgICAg
ICAgdWludDMyX3QgYml0cyA9IG1fYml0czsKKyAgICAgICAgYml0cyAmPSBjbGVhckxoc09ic2Vy
dmVkVHlwZUJpdHM7CisgICAgICAgIGJpdHMgfD0gdHlwZS5iaXRzKCkgPDwgbGhzT2JzZXJ2ZWRU
eXBlU2hpZnQ7CisgICAgICAgIG1fYml0cyA9IGJpdHM7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGxoc09ic2VydmVkVHlwZSgpID09IHR5cGUpOworICAgIH0KKworICAgIHZvaWQgc2V0UmhzT2Jz
ZXJ2ZWRUeXBlKE9ic2VydmVkVHlwZSB0eXBlKQorICAgIHsgCisgICAgICAgIHVpbnQzMl90IGJp
dHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0gY2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRzOwor
ICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0OworICAg
ICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBSRUxFQVNFX0FTU0VSVChyaHNPYnNlcnZlZFR5
cGUoKSA9PSB0eXBlKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3Vu
dCgpIGNvbnN0CisgICAgeyAKKyAgICAgICAgLy8gRklYTUU6CisgICAgICAgIHJldHVybiBtX2Jp
dHMgJiBzcGVjaWFsRmFzdFBhdGhCaXQgPyBVSU5UX01BWCA6IDA7CisgICAgfQorCisgICAgYm9v
bCBkaWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9E
b3VibGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2
ZURvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1pl
cm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91YmxlKTsg
fQorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMo
Tm9uTnVtYmVyKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25zdCB7
IHJldHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlSW50
NTJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0KKwor
ICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVnWmVy
b0RvdWJsZSk7IH0KKyAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0
KE5lZ1plcm9Eb3VibGUpOyB9CisgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsgc2V0
Qml0KE5vbk51bWJlcik7IH0KKyAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpIHsg
c2V0Qml0KEludDMyT3ZlcmZsb3cpOyB9CisgICAgdm9pZCBzZXRPYnNlcnZlZEludDUyT3ZlcmZs
b3coKSB7IHNldEJpdChJbnQ1Mk92ZXJmbG93KTsgfQorCisgICAgdm9pZCogYWRkcmVzc09mRmxh
Z3MoKSB7IHJldHVybiAmbV9iaXRzOyB9CisgICAgdm9pZCogYWRkcmVzc09mQml0cygpIHsgcmV0
dXJuICZtX2JpdHM7IH0KKworICAgIHZvaWQgZGV0ZWN0TnVtZXJpY25lc3MoSlNWYWx1ZSB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7CisgICAgICAgICAgICBtX2JpdHMg
fD0gSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVn
WmVyb0RvdWJsZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Jp
dHMgfD0gTm9uTnVtYmVyOworICAgIH0KKworICAgIHZvaWQgbGhzU2F3SW50MzIoKSB7IHNldExo
c09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKSk7IH0KKyAgICB2b2lk
IGxoc1Nhd051bWJlcigpIHsgc2V0TGhzT2JzZXJ2ZWRUeXBlKGxoc09ic2VydmVkVHlwZSgpLndp
dGhOdW1iZXIoKSk7IH0KKyAgICB2b2lkIGxoc1Nhd05vbk51bWJlcigpIHsgc2V0TGhzT2JzZXJ2
ZWRUeXBlKGxoc09ic2VydmVkVHlwZSgpLndpdGhOb25OdW1iZXIoKSk7IH0KKyAgICB2b2lkIHJo
c1Nhd0ludDMyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aElu
dDMyKCkpOyB9CisgICAgdm9pZCByaHNTYXdOdW1iZXIoKSB7IHNldFJoc09ic2VydmVkVHlwZShy
aHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNTYXdOb25OdW1i
ZXIoKSB7IHNldFJoc09ic2VydmVkVHlwZShyaHNPYnNlcnZlZFR5cGUoKS53aXRoTm9uTnVtYmVy
KCkpOyB9CisKKyAgICB2b2lkIG9ic2VydmVMSFNBbmRSSFMoSlNWYWx1ZSBsaHMsIEpTVmFsdWUg
cmhzKQorICAgIHsKKyAgICAgICAgaWYgKGxocy5pc051bWJlcigpKSB7CisgICAgICAgICAgICBp
ZiAobGhzLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICBsaHNTYXdJbnQzMigpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxoc1Nhd051bWJlcigpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIGxoc1Nhd05vbk51bWJlcigpOworCisgICAgICAgIGlmIChyaHMuaXNO
dW1iZXIoKSkgeworICAgICAgICAgICAgaWYgKHJocy5pc0ludDMyKCkpCisgICAgICAgICAgICAg
ICAgcmhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByaHNT
YXdOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByaHNTYXdOb25OdW1iZXIo
KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoSklUKSAgICAKKyAgICAvLyBTZXRzIChJbnQzMk92ZXJm
bG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKSBp
ZiBpdCBzZWVzIGEKKyAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNlZXMgYSBu
b24tbnVtYmVyLgorICAgIHZvaWQgZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYs
IEpTVmFsdWVSZWdzLCBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAg
CisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJv
RG91YmxlIHwgTmVnWmVyb0RvdWJsZSkuCisgICAgdm9pZCBlbWl0U2V0RG91YmxlKENDYWxsSGVs
cGVycyYpOworICAgIAorICAgIC8vIFNldHMgTm9uTnVtYmVyLgorICAgIHZvaWQgZW1pdFNldE5v
bk51bWJlcihDQ2FsbEhlbHBlcnMmKTsKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisgICAgdWlu
dDMyX3QgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorCitwcml2YXRlOgorICAgIGJv
b2wgaGFzQml0cyhpbnQgbWFzaykgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgbWFzazsgfQorICAg
IHZvaWQgc2V0Qml0KGludCBtYXNrKSB7IG1fYml0cyB8PSBtYXNrOyB9CisKKyAgICB1aW50MzJf
dCBtX2JpdHMgeyAwIH07IC8vIFdlIHRha2UgY2FyZSB0byB1cGRhdGUgbV9iaXRzIG9ubHkgaW4g
YSBzaW5nbGUgb3BlcmF0aW9uLiBXZSBkb24ndCBldmVyIHN0b3JlIGFuIGluY29uc2lzdGVudCBi
aXQgcmVwcmVzZW50YXRpb24gdG8gaXQuCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFt
ZXNwYWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IEpT
Qzo6UmVzdWx0UHJvZmlsZSYpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEFy
aXRoUHJvZmlsZV9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKIAorI2luY2x1ZGUgIkFy
aXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgogI2luY2x1ZGUg
IkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVVc2VEZWYuaCIKQEAgLTQ1
LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJJbmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiCiAjaW5j
bHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJK
U0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtMzAwMCw2ICszMDAyLDM0IEBAIFN0cnVjdHVyZVN0
dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmYKICAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRk
KGFjY2Vzc1R5cGUpOwogfQogCitKSVRBZGRJQyogQ29kZUJsb2NrOjphZGRKSVRBZGRJQygpCit7
CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9h
ZGRJQ3MuYWRkKCk7Cit9CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBl
cy5oPgorCit2b2lkIENvZGVCbG9jazo6ZHVtcEpJVEFkZElDU3RhdHMoKQoreworICAgIGRvdWJs
ZSBzaXplID0gMC4wOworICAgIGRvdWJsZSBvdXRPZkxpbmUgPSAwLjA7CisgICAgYXV0byBmdW5j
ID0gWyZdIChDb2RlQmxvY2sqIGNvZGVCbG9jaykgLT4gYm9vbCB7CisgICAgICAgIGZvciAoSklU
QWRkSUMqIGFkZElDIDogY29kZUJsb2NrLT5tX2FkZElDcykgeworICAgICAgICAgICAgKytzaXpl
OworICAgICAgICAgICAgaWYgKGFkZElDLT5tX2NvZGUpCisgICAgICAgICAgICAgICAgKytvdXRP
ZkxpbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdm0o
KS0+aGVhcC5mb3JFYWNoQ29kZUJsb2NrKGZ1bmMpOworICAgIGF1dG8gcGlkID0gZ2V0cGlkKCk7
CisgICAgZGF0YUxvZygiUElEOiAiLCBwaWQsICIgQ29kZUJsb2NrIGhhcyBvdXRPZkxpbmUgcmF0
aW86ICIsIG91dE9mTGluZS9zaXplLCAiXG4iKTsKKyAgICBkYXRhTG9nKCJQSUQ6ICIsIHBpZCwg
IiBUb3RhbCBudW0gYWRkIElDczoiLCBzaXplLCAiLiBUb3RhbCBudW0gb3V0IG9mIGxpbmU6ICIs
IG91dE9mTGluZSwgIlxuIik7CisKK30KKwogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6
ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKICAgICBmb3IgKFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7CkBAIC00MzYzLDE0ICs0MzkzLDIz
IEBAIHVuc2lnbmVkIENvZGVCbG9jazo6cmFyZUNhc2VQcm9maWxlQ291bnQKICAgICByZXR1cm4g
MDsKIH0KIAorUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKK30KKwogUmVzdWx0UHJvZmlsZSogQ29kZUJsb2Nr
OjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBpZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jl
c3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0byBp
dGVyYXRvciA9IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZmluZChi
eXRlY29kZU9mZnNldCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fYnl0ZWNvZGVPZmZzZXRUb1Jl
c3VsdFByb2ZpbGVJbmRleE1hcC0+ZW5kKCkpCisgICAgYXV0byBvcGNvZGVJRCA9IHZtKCktPmlu
dGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9mZnNldF0udS5v
cGNvZGUpOworICAgIGJvb2wgaGFzUHJvZmlsZSA9IGZhbHNlOworICAgIGlmIChvcGNvZGVJRCA9
PSBvcF9iaXRvciB8fCBvcGNvZGVJRCA9PSBvcF9iaXRhbmQgfHwgb3Bjb2RlSUQgPT0gb3BfYml0
eG9yIHx8CisgICAgICAgIG9wY29kZUlEID09IG9wX2FkZCB8fCBvcGNvZGVJRCA9PSBvcF9tdWwg
fHwgb3Bjb2RlSUQgPT0gb3Bfc3ViIHx8IG9wY29kZUlEID09IG9wX2RpdikKKyAgICAgICAgaGFz
UHJvZmlsZSA9IHRydWU7CisgICAgaWYgKCFoYXNQcm9maWxlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVlXTsKKyAg
ICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVPZmZz
ZXQgKyA0XTsKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PFJlc3VsdFByb2ZpbGUqPigmaW5zdHJ1
Y3Rpb24tPnUub3BlcmFuZCk7CiB9CiAKIHVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZhc3RD
YXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQpAQCAt
NDM5NSwyNiArNDQzNCw2IEBAIGJvb2wgQ29kZUJsb2NrOjpjb3VsZFRha2VTcGVjaWFsRmFzdENh
c2UKICAgICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6Y291bGRUYWtl
U2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKIH0KIAotUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpl
bnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1bHRQcm9maWxl
KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6
OmVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBp
bnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IHJlc3Vs
dFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBp
ZiAoIXByb2ZpbGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQoUmVzdWx0UHJv
ZmlsZShieXRlY29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVzdWx0UHJvZmls
ZXMubGFzdCgpOwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgpID09ICZt
X3Jlc3VsdFByb2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwotICAgICAgICBp
ZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgICAg
IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6bWFrZV91bmlx
dWU8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAgICAgICAgbV9i
eXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNvZGVPZmZzZXQs
IG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVybiBwcm9maWxl
OwotfQotCiAjaWYgRU5BQkxFKEpJVCkKIERGRzo6Q2FwYWJpbGl0eUxldmVsIENvZGVCbG9jazo6
Y2FwYWJpbGl0eUxldmVsKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOCBAQAog
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBH
ZW5lcmF0b3I+IGNsYXNzIEpJVE1hdGhJQzsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNz
IEpTTW9kdWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFz
cyBQQ1RvQ29kZU9yaWdpbk1hcDsKQEAgLTg4LDYgKzkwLDEwIEBAIGNsYXNzIFR5cGVMb2NhdGlv
bjsKIAogZW51bSBjbGFzcyBBY2Nlc3NUeXBlIDogaW50OF90OwogCitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKwog
dHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdp
bkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9NYXA7CiAKIGVudW0gUmVvcHRpbWl6YXRpb25Nb2Rl
IHsgRG9udENvdW50UmVvcHRpbWl6YXRpb24sIENvdW50UmVvcHRpbWl6YXRpb24gfTsKQEAgLTI0
NSw2ICsyNTEsOCBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1
cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNjZXNzVHlwZSk7CisgICAgSklUQWRkSUMqIGFkZEpJ
VEFkZElDKCk7CisgICAgdm9pZCBkdW1wSklUQWRkSUNTdGF0cygpOwogICAgIEJhZzxTdHJ1Y3R1
cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvQmVnaW4oKSB7IHJldHVybiBtX3N0dWJJbmZv
cy5iZWdpbigpOyB9CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1Yklu
Zm9FbmQoKSB7IHJldHVybiBtX3N0dWJJbmZvcy5lbmQoKTsgfQogICAgIApAQCAtNDQwLDkgKzQ0
OCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlID49IE9wdGlvbnM6OmNvdWxkVGFr
ZVNsb3dDYXNlTWluaW11bUNvdW50KCk7CiAgICAgfQogCi0gICAgUmVzdWx0UHJvZmlsZSogZW5z
dXJlUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIFJlc3VsdFByb2ZpbGUq
IGVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRl
Y29kZU9mZnNldCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpIHsgcmV0
dXJuIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpOyB9CisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CiAgICAgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgdW5zaWduZWQgc3BlY2lhbEZh
c3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGludCBieXRlY29kZU9mZnNldCk7CkBAIC0xMDEzLDYgKzEwMjAsNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdGVyQXRPZmZzZXRM
aXN0PiBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBt
X3N0dWJJbmZvczsKKyAgICBCYWc8SklUQWRkSUM+IG1fYWRkSUNzOwogICAgIEJhZzxCeVZhbElu
Zm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7
CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5v
ZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFy
aXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDMxMjApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNzAgKzMxLDQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBFTkFC
TEUoSklUKQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKLXsK
LSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHJlZ3Ms
IG1vZGUpOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3VibGUgPSBqaXQuYnJhbmNoSWZO
b3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOwotICAgIC8vIEZJWE1FOiBXZSBjb3Vs
ZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KLSAgICBlbWl0U2V0RG91YmxlKGppdCk7Ci0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwotICAgIG5vdERvdWJsZS5saW5rKCZq
aXQpOwotICAgIGVtaXRTZXROb25OdW1iZXIoaml0KTsKLSAgICBkb25lLmxpbmsoJmppdCk7Ci0g
ICAgaXNJbnQzMi5saW5rKCZqaXQpOwotfQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXRE
b3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50MzJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6
OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJv
ZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFk
ZHJlc3NPZkZsYWdzKCkpKTsKLX0KLQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVt
YmVyKENDYWxsSGVscGVycyYgaml0KQotewotICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51bWJlciksIENDYWxsSGVscGVyczo6QWJzb2x1
dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLSNlbmRpZiAvLyBFTkFCTEUoSklUKQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKLQotbmFtZXNwYWNlIFdURiB7Ci0gICAgCi11c2luZyBuYW1l
c3BhY2UgSlNDOwotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3Qg
UmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkKLXsKLSAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAi
IjsKLQotICAgIGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgewotICAgICAgICBv
dXQucHJpbnQoIkludDMyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7Ci0gICAg
ICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOwotICAgICAgICAg
ICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVn
WmVyb0RvdWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIoKSkgewotICAgICAgICAgICAg
b3V0LnByaW50KCJOb25OdW1iZXIiKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7
Ci0gICAgICAgICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZl
SW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ci
KTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgIH0KLSAgICBp
ZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7Ci0gICAgICAgIG91dC5wcmludCgi
IHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsKLSAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lh
bEZhc3RQYXRoQ291bnQoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHJldmlz
aW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2Zp
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDg4ICsyMDksNiBAQCBpbmxpbmUgaW50IGdldFJh
cmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2ZmCiAgICAgcmV0dXJuIHJhcmVDYXNlUHJvZmlsZS0+bV9i
eXRlY29kZU9mZnNldDsKIH0KIAotc3RydWN0IFJlc3VsdFByb2ZpbGUgewotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgY29uc3QgaW50IG51bWJlck9mRmxhZ0JpdHMgPSA1OwotCi1wdWJsaWM6Ci0gICAg
UmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpCi0gICAgICAgIDogbV9ieXRlY29kZU9m
ZnNldEFuZEZsYWdzKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9mRmxhZ0JpdHMpCi0gICAgewot
ICAgICAgICBBU1NFUlQoKChieXRlY29kZU9mZnNldCA8PCBudW1iZXJPZkZsYWdCaXRzKSA+PiBu
dW1iZXJPZkZsYWdCaXRzKSA9PSBieXRlY29kZU9mZnNldCk7Ci0gICAgfQotCi0gICAgZW51bSBP
YnNlcnZlZFJlc3VsdHMgewotICAgICAgICBOb25OZWdaZXJvRG91YmxlID0gMSA8PCAwLAotICAg
ICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAotICAgICAgICBOb25OdW1iZXIgICAgICAg
ID0gMSA8PCAyLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAzLAotICAgICAgICBJ
bnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAotICAgIH07Ci0KLSAgICBpbnQgYnl0ZWNvZGVPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgPj4gbnVtYmVyT2ZG
bGFnQml0czsgfQotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0aENvdW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotCi0gICAgYm9vbCBkaWRPYnNlcnZlTm9u
SW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJv
RG91YmxlIHwgTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZURvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpOyB9Ci0g
ICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOZWdaZXJvRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlk
T2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTnVtYmVyKTsgfQot
ICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpIGNv
bnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0KLQotICAgIHZvaWQgc2V0T2Jz
ZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAg
ICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5lZ1plcm9Eb3VibGUp
OyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsgc2V0Qml0KE5vbk51bWJlcik7
IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpIHsgc2V0Qml0KEludDMyT3Zl
cmZsb3cpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZEludDUyT3ZlcmZsb3coKSB7IHNldEJpdChJ
bnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9pZCogYWRkcmVzc09mRmxhZ3MoKSB7IHJldHVybiAm
bV9ieXRlY29kZU9mZnNldEFuZEZsYWdzOyB9Ci0gICAgdm9pZCogYWRkcmVzc09mU3BlY2lhbEZh
c3RQYXRoQ291bnQoKSB7IHJldHVybiAmbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotICAgIAot
ICAgIHZvaWQgZGV0ZWN0TnVtZXJpY25lc3MoSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IGlmICh2YWx1ZS5pc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh2
YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3Mg
fD0gSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVn
WmVyb0RvdWJsZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0gTm9uTnVtYmVyOwotICAgIH0KLQotI2lmIEVOQUJMRShK
SVQpICAgIAotICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9u
TmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpIGlmIGl0IHNlZXMgYQotICAgIC8vIGRvdWJs
ZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBhIG5vbi1udW1iZXIuCi0gICAgdm9pZCBlbWl0
RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVy
c01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAKLSAgICAvLyBTZXRzIChJbnQzMk92ZXJm
bG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKS4K
LSAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7Ci0gICAgCi0gICAgLy8gU2V0
cyBOb25OdW1iZXIuCi0gICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYpOwot
I2VuZGlmIC8vIEVOQUJMRShKSVQpCi0KLXByaXZhdGU6Ci0gICAgYm9vbCBoYXNCaXRzKGludCBt
YXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9Ci0g
ICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IG1h
c2s7IH0KLQotICAgIGludCBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7Ci0gICAgdW5zaWduZWQg
bV9zcGVjaWFsRmFzdFBhdGhDb3VudCB7IDAgfTsKLX07Ci0KLWlubGluZSBpbnQgZ2V0UmVzdWx0
UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCi17Ci0gICAgcmV0
dXJuIHByb2ZpbGUtPmJ5dGVjb2RlT2Zmc2V0KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwog
Ci1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgY29u
c3QgSlNDOjpSZXN1bHRQcm9maWxlJik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYg
Ly8gVmFsdWVQcm9maWxlX2gKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzEy
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJv
ZmlsZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5oIgogI2luY2x1ZGUgIkJ5dGVj
b2RlTGl2ZW5lc3NBbmFseXNpcy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC0xNTk4
LDcgKzE1OTksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEJpbmFyCiAK
ICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfYml0b3IgfHwgb3Bjb2RlSUQgPT0gb3BfYml0YW5kIHx8
IG9wY29kZUlEID09IG9wX2JpdHhvciB8fAogICAgICAgICBvcGNvZGVJRCA9PSBvcF9hZGQgfHwg
b3Bjb2RlSUQgPT0gb3BfbXVsIHx8IG9wY29kZUlEID09IG9wX3N1YiB8fCBvcGNvZGVJRCA9PSBv
cF9kaXYpCi0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0eXBlcy50b0ludCgpKTsKKyAg
ICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKFJlc3VsdFByb2ZpbGUodHlwZXMuZmlyc3QoKSwg
dHlwZXMuc2Vjb25kKCkpLmJpdHMoKSk7CiAKICAgICByZXR1cm4gZHN0OwogfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlz
aW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZH
X0pJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3Ry
dWN0b3IuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRlICJDYWxs
TGlua1N0YXR1cy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRpcmVjdEFy
Z3VtZW50cy5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0
T3JHZW5lcmF0b3IuaCIKQEAgLTU2LDYgKzU3LDcgQEAKICNpbmNsdWRlICJTY29wZWRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJX
cml0ZUJhcnJpZXJCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpAQCAtMzM3
MCw0MCArMzM3Miw2NCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQoTm9k
CiAKICAgICBBU1NFUlQoIWxlZnRPcGVyYW5kLmlzQ29uc3QoKSB8fCAhcmlnaHRPcGVyYW5kLmlz
Q29uc3QoKSk7CiAKLSAgICBpZiAoIWxlZnRPcGVyYW5kLmlzQ29uc3QoKSkgeworICAgIC8vaWYg
KCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKICAgICAgICAgbGVmdCA9IEpTVmFsdWVPcGVyYW5k
KHRoaXMsIGxlZnRDaGlsZCk7CiAgICAgICAgIGxlZnRSZWdzID0gbGVmdC0+anNWYWx1ZVJlZ3Mo
KTsKLSAgICB9Ci0gICAgaWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgLy99Cisg
ICAgLy9pZiAoIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKICAgICAgICAgcmlnaHQgPSBKU1Zh
bHVlT3BlcmFuZCh0aGlzLCByaWdodENoaWxkKTsKICAgICAgICAgcmlnaHRSZWdzID0gcmlnaHQt
PmpzVmFsdWVSZWdzKCk7CisgICAgLy99CisKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2ppdC5j
b2RlQmxvY2soKS0+YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8SklUQWRkSUNHZW5lcmF0aW9uU3Rh
dGU+IGFkZElDR2VuZXJhdGlvblN0YXRlID0gQm94PEpJVEFkZElDR2VuZXJhdGlvblN0YXRlPjo6
Y3JlYXRlKCk7CisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1faml0LmdyYXBo
KCkuYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+cmVzdWx0UHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4
KTsKKyAgICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQs
IHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgbGVmdEZQUiwg
cmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOworCisgICAg
Ym9vbCBnZW5lcmF0ZWRJbmxpbmUgPSBhZGRJQy0+Z2VuZXJhdGVJbmxpbmUobV9qaXQsICphZGRJ
Q0dlbmVyYXRpb25TdGF0ZSk7CisKKyAgICBWZWN0b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbj4g
c2F2ZVBsYW5zOworICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgc2F2ZVBs
YW5zLCByZXN1bHRSZWdzLmdwcigpKTsKKworICAgIGlmICghZ2VuZXJhdGVkSW5saW5lKSB7Cisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOworICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRS
ZWdzKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKKyAgICAg
ICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICB9CiAKLSAgICBKSVRBZGRHZW5lcmF0b3Ig
Z2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdo
dFJlZ3MsCi0gICAgICAgIGxlZnRGUFIsIHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBS
KTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgYXV0byBkb25lID0gbV9q
aXQubGFiZWwoKTsKIAotICAgIEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOwotICAgIGdl
bi5lbmRKdW1wTGlzdCgpLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKFs9XSgpIHsKKyAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhK
dW1wcy5saW5rKCZtX2ppdCk7CisgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQ
YXRoU3RhcnQgPSBtX2ppdC5sYWJlbCgpOwogCi0gICAgZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5s
aW5rKCZtX2ppdCk7CisgICAgICAgIC8vZGF0YUxvZygic2xvdyBwYXRoOiBsaHM6ICIsIGxlZnRS
ZWdzLmdwcigpLCAiIHJoczogIiwgcmlnaHRSZWdzLmdwcigpLCAiXG4iKTsKIAotICAgIHNpbGVu
dFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOworICAgICAgICBzaWxlbnRTcGlsbChzYXZl
UGxhbnMpOwogCi0gICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkgewotICAgICAgICBsZWZ0
UmVncyA9IHJlc3VsdFJlZ3M7Ci0gICAgICAgIG1faml0Lm1vdmVWYWx1ZShsZWZ0Q2hpbGQtPmFz
SlNWYWx1ZSgpLCBsZWZ0UmVncyk7Ci0gICAgfSBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25z
dCgpKSB7Ci0gICAgICAgIHJpZ2h0UmVncyA9IHJlc3VsdFJlZ3M7Ci0gICAgICAgIG1faml0Lm1v
dmVWYWx1ZShyaWdodENoaWxkLT5hc0pTVmFsdWUoKSwgcmlnaHRSZWdzKTsKLSAgICB9CisgICAg
ICAgIGF1dG8gaW5uZXJMZWZ0UmVncyA9IGxlZnRSZWdzOworICAgICAgICBhdXRvIGlubmVyUmln
aHRSZWdzID0gcmlnaHRSZWdzOworICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7
CisgICAgICAgICAgICBpbm5lckxlZnRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAgICAgICAgIG1f
aml0Lm1vdmVWYWx1ZShsZWZ0Q2hpbGQtPmFzSlNWYWx1ZSgpLCBpbm5lckxlZnRSZWdzKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICBp
bm5lclJpZ2h0UmVncyA9IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUo
cmlnaHRDaGlsZC0+YXNKU1ZhbHVlKCksIGlubmVyUmlnaHRSZWdzKTsKKyAgICAgICAgfQogCi0g
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJlZ3Ms
IHJpZ2h0UmVncyk7CisgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2Fs
bCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplLCByZXN1
bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgbnVsbHB0ciwgYWRkSUMpOwog
Ci0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKLSAgICBtX2ppdC5leGNl
cHRpb25DaGVjaygpOworICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgIG1faml0Lmp1bXAoKS5saW5rVG8oZG9uZSwg
Jm1faml0KTsKKworICAgICAgICBtX2ppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgIFs9XSAo
TGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgIGFkZElDLT5maW5hbGl6
ZUlubGluZUNvZGUoKmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAg
ICAgIH0pOworICAgIH0pOwogCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmbV9qaXQpOwog
ICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0dXJuOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2
aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjg1LDYgKzEyODUsMTMgQEAgcHVibGljOgogCiAK
ICNpZiBVU0UoSlNWQUxVRTY0KQorCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpScEphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQs
IEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJlc3Vs
dFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBUcnVzdGVkSW1tUHRy
KHJlc3VsdFByb2ZpbGUpLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgICAgIHJldHVybiBh
cHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0LmdwcigpKTsKKyAgICB9CisKICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkkgb3Bl
cmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFVuaXF1ZWRT
dHJpbmdJbXBsKiB1aWQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cih1aWQpKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIwMzEy
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTUyOCw3ICsxNTI4LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lk
IGNvbXBpbGVWYWx1ZUFkZCgpCiAgICAgewotICAgICAgICBlbWl0QmluYXJ5U25pcHBldDxKSVRB
ZGRHZW5lcmF0b3I+KG9wZXJhdGlvblZhbHVlQWRkKTsKKyAgICAgICAgZW1pdEFkZFNuaXBwZXQo
b3BlcmF0aW9uVmFsdWVBZGQpOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJDYXQo
KQpAQCAtODA1OCw2ICs4MDU4LDcwIEBAIHByaXZhdGU6CiAgICAgICAgIHNldEpTVmFsdWUocGF0
Y2hwb2ludCk7CiAgICAgfQogCisgICAgdm9pZCBlbWl0QWRkU25pcHBldChKX0pJVE9wZXJhdGlv
bl9FSkogc2xvd1BhdGhGdW5jdGlvbikKKyAgICB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25v
ZGU7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMigp
KTsKKworICAgICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5kIHJp
Z2h0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUoKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9v
dXQucGF0Y2hwb2ludChJbnQ2NCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdp
c3RlcihsZWZ0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKHJpZ2h0
KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVS
ZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVu
ZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOworICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4g
ZXhjZXB0aW9uSGFuZGxlID0KKyAgICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0
aW9ucyhwYXRjaHBvaW50KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0
ZXJzID0gMTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gMjsK
KyAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVn
aXN0ZXJzKCkpOworICAgICAgICBTdGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKKyAgICAgICAg
cGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAg
ICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7
CisKKyAgICAgICAgICAgICAgICBCb3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9u
cyA9CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3Jl
YXRpb24ocGFyYW1zKS0+anVtcHMoaml0KTsKKworICAgICAgICAgICAgICAgIGF1dG8gZ2VuZXJh
dG9yID0gQm94PEpJVEFkZEdlbmVyYXRvcj46OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNWYWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwK
KyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgSlNWYWx1
ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2Ny
YXRjaCgwKSwgcGFyYW1zLmZwU2NyYXRjaCgxKSwgcGFyYW1zLmdwU2NyYXRjaCgwKSwKKyAgICAg
ICAgICAgICAgICAgICAgSW52YWxpZEZQUlJlZyk7CisKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcExpc3Q7CisgICAgICAgICAgICAgICAgYm9vbCBk
aWRHZW5lcmF0ZUZhc3RQYXRoID0gZ2VuZXJhdG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgZW5k
SnVtcExpc3QsIHNsb3dQYXRoSnVtcExpc3QpOworCisgICAgICAgICAgICAgICAgaWYgKGRpZEdl
bmVyYXRlRmFzdFBhdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kSnVtcExpc3QubGluaygm
aml0KTsKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0
LmxhYmVsKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBwYXJh
bXMuYWRkTGF0ZVBhdGgoCisgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVy
cyYgaml0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hS
ZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gaiA9IHNsb3dQYXRoSnVtcExpc3Q7IAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGoubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0
aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51bmF2
YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgc2xvd1BhdGhGdW5jdGlv
biwgcGFyYW1zWzBdLmdwcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjYWxs
T3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwgaml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCisgICAgICAgICAg
ICAgICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBzbG93UGF0aEZ1bmN0aW9uLCBwYXJhbXNb
MF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
c1syXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgc2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCaW5hcnlCaXRPcEdlbmVyYXRvcj4KICAgICB2b2lkIGVtaXRCaW5hcnlCaXRPcFNuaXBwZXQo
Sl9KSVRPcGVyYXRpb25fRUpKIHNsb3dQYXRoRnVuY3Rpb24pCiAgICAgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAyMDMxMjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDk5LDYgKzIwOTksMTQgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7
CisgICAgICAgIHNldHVwVHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjI+KGFyZzEsIGFyZzIpOworICAgICAgICBtb3ZlKGFyZzMsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJndW1lbnRH
UFI0KTsKKyAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0
ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICBz
ZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJnNSk7CkBAIC0y
MjE1LDYgKzIyMjMsMTUgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BS
KCksIGFyZzIucGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBhcmczKTsKICNlbmRpZgogICAg
IH0KKworICAgIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFy
ZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMywgVHJ1c3RlZEltbVB0ciBh
cmc0KQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwgYXJnMywgYXJnNCk7CisjZWxzZQor
ICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcg
YXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpLCBhcmcy
LnRhZ0dQUigpLCBhcmczKTsKKyNlbmRpZgorICAgIH0KICAgICAKICAgICB2b2lkIHNldHVwQXJn
dW1lbnRzKEpTVmFsdWVSZWdzIGFyZzEpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29s
LmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODUsNiAr
Mzg1LDggQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1dGFibAogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICAvL01ldGFBbGxvY2F0b3I6
OlN0YXRpc3RpY3Mgc3RhdGlzdGljcyA9IGFsbG9jYXRvci0+Y3VycmVudFN0YXRpc3RpY3MoKTsK
KyAgICAvL2RhdGFMb2coIkN1cnJlbnQgZXhlY3V0YWJsZSBtZW1vcnkgYnl0ZXMgYWxsb2NhdGVk
OiAiLCBzdGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkLCAiXG4iKTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAyMDMxMjAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgogI2luY2x1
ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVk
ZSAiSklUQWRkSUMuaCIgCiAjaW5jbHVkZSAiSklUSW5saW5lcy5oIgogI2luY2x1ZGUgIkpJVE9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCkBAIC04NCw2ICs4NSw4IEBAIEpJVDo6
SklUKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAKIEpJVDo6fkpJVCgpCiB7CisgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRl
KQorICAgICAgICBkZWxldGUgZW50cnkudmFsdWU7CiB9CiAKICNpZiBFTkFCTEUoREZHX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTIgKzQxLDEy
IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tcGFjdEpJVENvZGVNYXAu
aCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpJVEFkZElDLmgiCiAjaW5j
bHVkZSAiSklURGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJKU0ludGVyZmFjZUpJVC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgog
I2luY2x1ZGUgIlBDVG9Db2RlT3JpZ2luTWFwLmgiCi0jaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgog
I2luY2x1ZGUgIlVudXNlZFBvaW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC02NSw2ICs2
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvOwogCiAg
ICAgc3RydWN0IEluc3RydWN0aW9uOworICAgIHN0cnVjdCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0
ZTsKICAgICBzdHJ1Y3QgT3BlcmFuZFR5cGVzOwogICAgIHN0cnVjdCBTaW1wbGVKdW1wVGFibGU7
CiAgICAgc3RydWN0IFN0cmluZ0p1bXBUYWJsZTsKQEAgLTQzNSw3ICs0MzYsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdm9pZCBjb21waWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRp
ZmllciopOwogCiAgICAgICAgIC8vIEFyaXRobWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAg
dm9pZCBlbWl0U3ViMzJDb25zdGFudChpbnQgZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQs
IFJlc3VsdFR5cGUgb3BUeXBlKTsKICAgICAgICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bj
b2RlSUQsIGludCBkc3QsIGludCBvcDEsIGludCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3Qm
IG5vdEludDMyT3AxLCBKdW1wTGlzdCYgbm90SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVy
cyA9IHRydWUsIGJvb2wgb3AySXNJblJlZ2lzdGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0Uo
SlNWQUxVRTMyXzY0KQpAQCAtNzY0LDYgKzc2NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwg
aW50LCBHUFJSZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BS
UmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVz
dWx0UHJvZmlsZSopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSlJwSmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1Zh
bHVlUmVncywgUmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKik7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVn
LCBHUFJSZWcsIEFycmF5UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBC
eVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbiha
X0pJVE9wZXJhdGlvbl9FSk9KLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKQEAgLTk1Myw2ICs5
NTQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxk
ZXIgbV9wY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXI7CiAKKyAgICAgICAgSGFzaE1hcDxJbnN0cnVj
dGlvbiosIEpJVEFkZElDKj4gbV9pbnN0cnVjdGlvblRvSklUQWRkSUM7CisgICAgICAgIEhhc2hN
YXA8SW5zdHJ1Y3Rpb24qLCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSo+IG1faW5zdHJ1Y3Rpb25U
b0pJVEFkZElDR2VuZXJhdGlvblN0YXRlOworCiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXpl
ZDsKICAgICAgICAgYm9vbCBtX2NhbkJlT3B0aW1pemVkT3JJbmxpbmVkOwogICAgICAgICBib29s
IG1fc2hvdWxkRW1pdFByb2ZpbGluZzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQWRkR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MTEgKzI2LDEwNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVy
YXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiSklUQWRkSUMu
aCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxI
ZWxwZXJzJiBqaXQpCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
K2Jvb2wgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmIGppdCwg
SklUQWRkSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQoreworICAgIC8vIFdlIGRlZmF1bHQgdG8g
Z3Vlc3NpbmcgaW50MzIKKyAgICBPYnNlcnZlZFR5cGUgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0
aEludDMyKCk7CisgICAgT2JzZXJ2ZWRUeXBlIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQz
MigpOworICAgIHN0YXRpYyBkb3VibGUgbnVtSUNzID0gMDsKKyAgICBzdGF0aWMgZG91YmxlIG51
bVNraXBzID0gMDsKKyAgICBudW1JQ3MrKzsKKyAgICBpZiAobV9yZXN1bHRQcm9maWxlKSB7Cisg
ICAgICAgIC8vZGF0YUxvZygic2VlaW5nIHJlc3VsdCBwcm9maWxlOiAiLCAgUmF3UG9pbnRlcigo
dm9pZCopKHVpbnQ2NF90KW1fcmVzdWx0UHJvZmlsZS0+Yml0cygpKSwgIlxuIik7CisgICAgICAg
IGxocyA9IG1fcmVzdWx0UHJvZmlsZS0+bGhzT2JzZXJ2ZWRUeXBlKCk7CisgICAgICAgIGlmIChs
aHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgbGhzID0gbGhzLndpdGhJbnQzMigpOworICAgICAg
ICBlbHNlIGlmIChsaHMuc2F3SW50MzIoKSAmJiBsaHMuc2F3TnVtYmVyKCkpCisgICAgICAgICAg
ICBsaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKworICAgICAgICByaHMgPSBtX3Jl
c3VsdFByb2ZpbGUtPnJoc09ic2VydmVkVHlwZSgpOworICAgICAgICBpZiAocmhzLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJocyA9IHJocy53aXRoSW50MzIoKTsKKyAgICAgICAgZWxzZSBpZiAo
cmhzLnNhd0ludDMyKCkgJiYgcmhzLnNhd051bWJlcigpKQorICAgICAgICAgICAgcmhzID0gT2Jz
ZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7IC8vIEZJWE1FOiBtYXliZSB3ZSBzaG91bGQganVzdCBl
bWl0IHRoZSBmdWxsIHNuaXBwZXQgaGVyZS4KKworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVChs
aHMuaXNPbmx5SW50MzIoKSB8fCBsaHMuaXNPbmx5TnVtYmVyKCkgfHwgbGhzLnNhd05vbk51bWJl
cigpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChyaHMuaXNPbmx5SW50MzIoKSB8fCByaHMuaXNPbmx5
TnVtYmVyKCkgfHwgcmhzLnNhd05vbk51bWJlcigpKTsKKworICAgIGlmIChsaHMuaXNPbmx5Tm9u
TnVtYmVyKCkgfHwgcmhzLmlzT25seU5vbk51bWJlcigpKSB7CisgICAgICAgIGxocyA9IE9ic2Vy
dmVkVHlwZSgpLndpdGhJbnQzMigpOworICAgICAgICByaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRo
SW50MzIoKTsKKyAgICAgICAgbnVtU2tpcHMrKzsKKyAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1
bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOdW1iZXIobV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKKyAg
ICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOdW1iZXIobV9y
aWdodCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIC8vYXV0byBwaWQgPSBnZXRwaWQoKTsKKyAg
ICAgICAgLy9kYXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBTa2lwIHJhdGlvOiAiLCBudW1Ta2lwcy9u
dW1JQ3MsICJcbiIpOworICAgICAgICAvL2RhdGFMb2coIlBJRDogIiwgcGlkLCAiIE51bSBza2lw
czoiLCBudW1Ta2lwcywgIiBudW1JQ3M6IiwgbnVtSUNzLCAiXG4iKTsKKyAgICAgICAgLy8vL2Rh
dGFMb2coIlJldHVybmluZyBmYWxzZSBiZWNhdXNlIHNhdyBvbmx5IE5vbm51bWJlclxuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBsaHMgPSBsaHMud2l0aG91dE5vbk51
bWJlcigpOworICAgIHJocyA9IHJocy53aXRob3V0Tm9uTnVtYmVyKCk7CisKKyAgICBpZiAobGhz
LmlzT25seUludDMyKCkgJiYgcmhzLmlzT25seUludDMyKCkpIHsKKyAgICAgICAgc3RhdGUubV9z
bG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpKTsKKyAgICAg
ICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3Jp
Z2h0KSk7CisgICAgICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaEFk
ZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX2xlZnQu
cGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgaml0LmJveEludDMyKG1fc2Ny
YXRjaEdQUiwgbV9yZXN1bHQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKGxocy5pc09ubHlOdW1iZXIoKSAmJiByaHMuaXNPbmx5TnVtYmVyKCkpIHsKKyAg
ICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIo
bV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFw
cGVuZChqaXQuYnJhbmNoSWZJbnQzMihtX2xlZnQpKTsKKyAgICAgICAgc3RhdGUubV9zbG93UGF0
aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BS
KSk7CisgICAgICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmSW50
MzIobV9yaWdodCkpOworCisgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1f
bGVmdCwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIsIG1fc2NyYXRjaEZQUik7CisgICAgICAgIGpp
dC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1fcmlnaHQsIG1fcmlnaHRGUFIsIG1fc2NyYXRj
aEdQUiwgbV9zY3JhdGNoRlBSKTsKKyAgICB9IGVsc2UgaWYgKGxocy5pc09ubHlJbnQzMigpICYm
IHJocy5pc09ubHlOdW1iZXIoKSkgeworICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBw
ZW5kKGppdC5icmFuY2hJZk5vdEludDMyKG1fbGVmdCkpOworICAgICAgICBzdGF0ZS5tX3Nsb3dQ
YXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hH
UFIpKTsKKyAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZJ
bnQzMihtX3JpZ2h0KSk7CisKKyAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fbGVm
dC5wYXlsb2FkR1BSKCksIG1fbGVmdEZQUik7CisgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRl
c3RydWN0aXZlKG1fcmlnaHQsIG1fcmlnaHRGUFIsIG1fc2NyYXRjaEdQUiwgbV9zY3JhdGNoRlBS
KTsKKyAgICB9IGVsc2UgaWYgKGxocy5pc09ubHlOdW1iZXIoKSAmJiByaHMuaXNPbmx5SW50MzIo
KSkgeworICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5v
dE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRo
SnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZkludDMyKG1fbGVmdCkpOworICAgICAgICBzdGF0ZS5t
X3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpKTsKKwor
ICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUobV9yaWdodC5wYXlsb2FkR1BSKCksIG1f
cmlnaHRGUFIpOworICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xlZnQs
IG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOworICAgIH0gZWxzZQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgaml0LmFkZERvdWJsZSht
X3JpZ2h0RlBSLCBtX2xlZnRGUFIpOworICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCisgICAgICAg
IG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOworCisgICAgaml0LmJveERvdWJs
ZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEpJ
VEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNs
b3dQYXRoSnVtcExpc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BS
UmVnKTsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IG1fbGVmdC5wYXlsb2FkR1BSKCkpOwpA
QCAtNDMsMTIgKzEzNiw4IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KEMKIAogICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdo
dE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIAotICAgIGlmICghbV9sZWZ0T3BlcmFuZC5t
aWdodEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkgewotICAg
ICAgICBBU1NFUlQoIW1fZGlkRW1pdEZhc3RQYXRoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIG1fZGlkRW1pdEZhc3RQYXRoID0gdHJ1ZTsKKyAgICBpZiAoIW1fbGVmdE9wZXJhbmQu
bWlnaHRCZU51bWJlcigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigp
IHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CiAgICAgICAgIEpTVmFsdWVSZWdz
IHZhciA9IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgPyBtX3JpZ2h0IDogbV9sZWZ0OwpA
QCAtNTgsMjAgKzE0NywyMCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aChDCiAgICAgICAgIC8vIFRyeSB0byBkbyBpbnRWYXIgKyBpbnRDb25zdGFudC4KICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wIG5vdEludDMyID0gaml0LmJyYW5jaElmTm90SW50MzIodmFyKTsK
IAotICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2Fs
bEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMy
KGNvbnN0T3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIHNsb3dQ
YXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93
LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0T3ByLmFzQ29uc3RJ
bnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmJveEludDMyKG1fc2NyYXRj
aEdQUiwgbV9yZXN1bHQpOwotICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgp
KTsKKyAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgIGlm
ICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRo
SnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVHJ5IHRvIGRvIGRvdWJsZVZhciArIGRv
dWJsZShpbnRDb25zdGFudCkuCiAgICAgICAgIG5vdEludDMyLmxpbmsoJmppdCk7CiAgICAgICAg
IGlmICghdmFyT3ByLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0
aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIodmFyLCBtX3NjcmF0Y2hHUFIp
KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51
bWJlcih2YXIsIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRl
c3RydWN0aXZlKHZhciwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIsIG1fc2NyYXRjaEZQUik7CiAK
QEAgLTg5LDIyICsxNzgsMjQgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoQwogICAgICAgICBsZWZ0Tm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsK
ICAgICAgICAgcmlnaHROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKIAot
ICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhl
bHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxvYWRHUFIo
KSwgbV9zY3JhdGNoR1BSKSk7CisKKyAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigp
LCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQuYm94
SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Ci0gICAgICAgIG1fZW5kSnVtcExpc3QuYXBw
ZW5kKGppdC5qdW1wKCkpOworICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7
CisKIAogICAgICAgICBpZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewotICAgICAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKLSAgICAgICAgICAg
IG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQocmlnaHROb3RJbnQpOwotICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobGVmdE5vdEludCk7Cisg
ICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIGxlZnROb3RJbnQubGluaygm
aml0KTsKICAgICAgICAgaWYgKCFtX2xlZnRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQot
ICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIobV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3Qu
YXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikpOwogICAg
ICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAg
ICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdo
dCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChq
aXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAg
aml0LnVuYm94RG91YmxlTm9uRGVzdHJ1Y3RpdmUobV9sZWZ0LCBtX2xlZnRGUFIsIG1fc2NyYXRj
aEdQUiwgbV9zY3JhdGNoRlBSKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHJpZ2h0SXNE
b3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKQEAgLTExNCw3ICsyMDUsNyBA
QCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICAgICAgcmln
aHROb3RJbnQubGluaygmaml0KTsKICAgICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5kZWZpbml0
ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAg
c2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1f
c2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShtX2xlZnQu
cGF5bG9hZEdQUigpLCBtX2xlZnRGUFIpOwogCkBAIC0xMzIsNiArMjIzLDggQEAgdm9pZCBKSVRB
ZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBtX3Jlc3VsdFByb2ZpbGUt
PmVtaXRTZXREb3VibGUoaml0KTsKICAgICAgICAgCiAgICAgaml0LmJveERvdWJsZShtX2xlZnRG
UFIsIG1fcmVzdWx0KTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAko
cmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5l
cmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDE4IEBACiAjaWYgRU5BQkxFKEpJ
VCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTbmlwcGV0T3BlcmFuZC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3Ry
dWN0IEpJVEFkZElDR2VuZXJhdGlvblN0YXRlOworCiBjbGFzcyBKSVRBZGRHZW5lcmF0b3Igewog
cHVibGljOgorICAgIEpJVEFkZEdlbmVyYXRvcigpCisgICAgeyB9CisKICAgICBKSVRBZGRHZW5l
cmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3Bl
cmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1Zh
bHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwg
R1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLApAQCAtNTMsMTEgKzU5LDEwIEBA
IHB1YmxpYzoKICAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8
ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQogCi0gICAgdm9pZCBnZW5l
cmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOworICAgIGJvb2wgZ2VuZXJhdGVJbmxpbmUoQ0Nh
bGxIZWxwZXJzJiwgSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUmKTsKKyAgICBib29sIGdlbmVyYXRl
RmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExp
c3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNsb3dQYXRoSnVtcExpc3QpOwogCi0gICAgYm9v
bCBkaWRFbWl0RmFzdFBhdGgoKSBjb25zdCB7IHJldHVybiBtX2RpZEVtaXRGYXN0UGF0aDsgfQot
ICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QmIGVuZEp1bXBMaXN0KCkgeyByZXR1cm4gbV9lbmRK
dW1wTGlzdDsgfQotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNsb3dQYXRoSnVtcExpc3Qo
KSB7IHJldHVybiBtX3Nsb3dQYXRoSnVtcExpc3Q7IH0KKyAgICBGdW5jdGlvblB0ciBjYWxsRm9y
Tm9uUmVnZW5lcmF0aW5nSUMoKSBjb25zdCB7IHJldHVybiBGdW5jdGlvblB0cihvcGVyYXRpb25W
YWx1ZUFkZFByb2ZpbGVkKTsgfQogCiBwcml2YXRlOgogICAgIFNuaXBwZXRPcGVyYW5kIG1fbGVm
dE9wZXJhbmQ7CkBAIC03MCwxMCArNzUsNiBAQCBwcml2YXRlOgogICAgIEdQUlJlZyBtX3NjcmF0
Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKICAgICBSZXN1bHRQcm9maWxlKiBtX3Jl
c3VsdFByb2ZpbGU7Ci0gICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07Ci0KLSAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7Ci0gICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBtX3Nsb3dQYXRoSnVtcExpc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkSUMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkSUMuY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRJQy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSklUQWRkSUMuaCIKKworI2lu
Y2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlND
IHsKKyAKKyAgICAvKgordm9pZCBKSVRBZGRJQzo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJz
JiBqaXQsIEpJVEFkZElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKK3sKKyAgICAvLyBGSVhNRTog
YWJzdHJhY3QgdGhpcyEKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUkluZm86OnJlZ1QyOwor
CisgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMiht
X2xlZnQpKTsKKyAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5v
dEludDMyKG1fcmlnaHQpKTsKKworICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0
LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigp
LCBtX2xlZnQucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSKSk7CisKKyAgICBqaXQuYm94SW50MzIo
c2NyYXRjaEdQUiwgbV9yZXN1bHQpOworfQorCit2b2lkIEpJVEFkZElDOjpnZW5lcmF0ZU91dE9m
TGluZShWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIHsKKyAgICAgICAgQ0Nh
bGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BS
ID0gR1BSSW5mbzo6cmVnVDI7CisgICAgICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQ
UlJlZzsKKworICAgICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKG1fbGVmdE9wZXJhbmQsIG1fcmln
aHRPcGVyYW5kLCBtX3Jlc3VsdCwgbV9sZWZ0LCBtX3JpZ2h0LCBGUFJJbmZvOjpmcFJlZ1QwLCBG
UFJJbmZvOjpmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBtX3Jlc3VsdFByb2ZpbGUp
OworICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICBpZiAoIWdlbi5k
aWRFbWl0RmFzdFBhdGgoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZ2VuLmVuZEp1
bXBMaXN0KCkuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAgICAgCisgICAgICAgIExpbmtCdWZm
ZXIgbGlua0J1ZmZlcih2bSwgaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7
CisgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgbGlua0J1ZmZlci5saW5rKGdlbi5lbmRKdW1wTGlzdCgpLCBk
b25lTG9jYXRpb24oKSk7CisgICAgICAgIGxpbmtCdWZmZXIubGluayhnZW4uc2xvd1BhdGhKdW1w
TGlzdCgpLCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisKKyAgICAgICAgbV9jb2RlID0gRklO
QUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICBjb2RlQmxvY2ssIGxpbmtCdWZmZXIsICgiJXMi
LCAiZ2VuZXJhdGluZyBhZGQgc25pcHBldCBpbiBiYXNlbGluZSBKSVQiKSk7CisgICAgfQorCisg
ICAgeworICAgICAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAg
YXV0byBqdW1wID0gaml0Lmp1bXAoKTsKKyAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhIG5vcCBz
bGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBpbmcgaW50byB0aGUgbWlkZGxl
IG9mIGFuIElDLgorICAgICAgICBib29sIG5lZWRzQnJhbmNoQ29tcGFjdGlvbiA9IGZhbHNlOwor
ICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBtX2lubGluZVN0YXJ0LmRhdGFMb2Nh
dGlvbigpLCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSwgSklUQ29tcGlsYXRp
b25NdXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9uKTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmsoanVt
cCwgQ29kZUxvY2F0aW9uTGFiZWwobV9jb2RlLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7
CisgICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJKSVRBZGRJQzogbGlua2luZyBj
b25zdGFudCBqdW1wIHRvIG91dCBvZiBsaW5lIGppdCBhZGQgZ2VuZXJhdG9yIikpOworICAgIH0K
KworICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoQ2FsbChzbG93UGF0aENhbGxMb2NhdGlvbigp
LCBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKTsKK30KKwordm9pZCBKSVRBZGRJQzo6ZmluYWxp
emVJbmxpbmVDb2RlKEpJVEFkZElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlua0J1ZmZlciYg
bGlua0J1ZmZlcikKK3sKKyAgICBDb2RlTG9jYXRpb25MYWJlbCBzdGFydCA9IGxpbmtCdWZmZXIu
bG9jYXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoU3RhcnQpOworICAgIG1faW5saW5lU3RhcnQgPSBz
dGFydDsKKworICAgIGludDMyX3QgaW5saW5lU2l6ZSA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJl
bmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yo
c3RhdGUubV9mYXN0UGF0aEVuZCkpOworICAgIEFTU0VSVChpbmxpbmVTaXplID4gMCk7CisgICAg
bV9pbmxpbmVTaXplID0gaW5saW5lU2l6ZTsKKworICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQ
YXRoQ2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0
cigKKyAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRo
Q2FsbCkpOworICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQgPSBNYWNyb0Fzc2Vt
Ymxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICBzdGFydCwgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhTdGFydCkpOworfQorKi8KKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRk
SUMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZElDLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZElDLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpJVEFkZElDX2gKKyNkZWZpbmUgSklUQWRkSUNf
aAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1
ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRl
ICJTbmlwcGV0T3BlcmFuZC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgTGlua0J1ZmZl
cjsKKworc3RydWN0IEpJVEFkZElDR2VuZXJhdGlvblN0YXRlIHsKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6TGFiZWwgbV9mYXN0UGF0aFN0YXJ0OworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Zh
c3RQYXRoRW5kOworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX3Nsb3dQYXRoU3RhcnQ7Cisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbV9zbG93UGF0aENhbGw7CisgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wczsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBH
ZW5lcmF0b3JUeXBlPgorY2xhc3MgSklUTWF0aElDIHsKK3B1YmxpYzoKKyAgICBDb2RlTG9jYXRp
b25MYWJlbCBkb25lTG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmxhYmVsQXRPZmZz
ZXQobV9pbmxpbmVTaXplKTsgfQorICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoU3RhcnRM
b2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQubGFiZWxBdE9mZnNldChtX2RlbHRhRnJv
bVN0YXJ0VG9TbG93UGF0aFN0YXJ0KTsgfQorICAgIENvZGVMb2NhdGlvbkNhbGwgc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmNhbGxBdE9mZnNldChtX2RlbHRh
RnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbik7IH0KKworICAgIGJvb2wgZ2VuZXJhdGVJ
bmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIEpJVEFkZElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkK
KyAgICB7CisgICAgICAgIHN0YXRlLm1fZmFzdFBhdGhTdGFydCA9IGppdC5sYWJlbCgpOworICAg
ICAgICBib29sIHJlc3VsdCA9IG1fZ2VuZXJhdG9yLmdlbmVyYXRlSW5saW5lKGppdCwgc3RhdGUp
OworICAgICAgICBzdGF0ZS5tX2Zhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorCisgICAgdm9pZCBnZW5lcmF0ZU91dE9mTGluZShWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrKQorICAgIHsKKyAgICAgICAgeworICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wTGlzdCBlbmRKdW1wTGlzdDsgCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcExpc3Qgc2xvd1BhdGhKdW1wTGlzdDsgCisgICAgICAgICAgICBib29sIGVtaXR0ZWRGYXN0
UGF0aCA9IG1fZ2VuZXJhdG9yLmdlbmVyYXRlRmFzdFBhdGgoaml0LCBlbmRKdW1wTGlzdCwgc2xv
d1BhdGhKdW1wTGlzdCk7CisgICAgICAgICAgICBpZiAoIWVtaXR0ZWRGYXN0UGF0aCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1
bXAoKSk7CisgICAgICAgICAgICAgCisgICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIo
dm0sIGppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICAgICAg
aWYgKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhlbmRKdW1wTGlzdCwgZG9uZUxvY2F0
aW9uKCkpOworICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dQYXRoSnVtcExpc3QsIHNs
b3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKKworICAgICAgICAgICAgbV9jb2RlID0gRklOQUxJWkVf
Q09ERV9GT1IoCisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBsaW5rQnVmZmVyLCAoIiVzIiwg
ImdlbmVyYXRpbmcgYWRkIHNuaXBwZXQgaW4gYmFzZWxpbmUgSklUIikpOworICAgICAgICB9CisK
KyAgICAgICAgeworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7
CisgICAgICAgICAgICBhdXRvIGp1bXAgPSBqaXQuanVtcCgpOworICAgICAgICAgICAgLy8gV2Ug
ZG9uJ3QgbmVlZCBhIG5vcCBzbGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBp
bmcgaW50byB0aGUgbWlkZGxlIG9mIGFuIElDLgorICAgICAgICAgICAgYm9vbCBuZWVkc0JyYW5j
aENvbXBhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihq
aXQsIG1faW5saW5lU3RhcnQuZGF0YUxvY2F0aW9uKCksIGppdC5tX2Fzc2VtYmxlci5idWZmZXIo
KS5jb2RlU2l6ZSgpLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkLCBuZWVkc0JyYW5jaENvbXBh
Y3Rpb24pOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkp
OworICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKG1f
Y29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICAgICAgRklOQUxJWkVf
Q09ERShsaW5rQnVmZmVyLCAoIkpJVE1hdGhJQzogbGlua2luZyBjb25zdGFudCBqdW1wIHRvIG91
dCBvZiBsaW5lIGppdCBhZGQgZ2VuZXJhdG9yIikpOworICAgICAgICB9CisKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OnJlcGF0Y2hDYWxsKHNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG1fZ2VuZXJh
dG9yLmNhbGxGb3JOb25SZWdlbmVyYXRpbmdJQygpKTsKKyAgICB9CisKKyAgICB2b2lkIGZpbmFs
aXplSW5saW5lQ29kZShjb25zdCBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIExpbmtC
dWZmZXImIGxpbmtCdWZmZXIpCisgICAgeworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzdGFy
dCA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoU3RhcnQpOworICAgICAg
ICBtX2lubGluZVN0YXJ0ID0gc3RhcnQ7CisKKyAgICAgICAgaW50MzJfdCBpbmxpbmVTaXplID0g
TWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0
YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9mYXN0UGF0aEVuZCkpOworICAgICAg
ICBBU1NFUlQoaW5saW5lU2l6ZSA+IDApOworICAgICAgICBtX2lubGluZVNpemUgPSBpbmxpbmVT
aXplOworCisgICAgICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uID0g
TWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0
YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9zbG93UGF0aENhbGwpKTsKKyAgICAg
ICAgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCA9IE1hY3JvQXNzZW1ibGVyOjpkaWZm
ZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2Nh
dGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhTdGFydCkpOworICAgIH0KKworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBtX2NvZGU7CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgbV9pbmxpbmVTdGFydDsK
KyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgaW50MzJfdCBtX2lubGlu
ZVNpemU7CisgICAgaW50MzJfdCBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlv
bjsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQ7CisKKyAgICBH
ZW5lcmF0b3JUeXBlIG1fZ2VuZXJhdG9yOworfTsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRk
R2VuZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUQWRkSUNfaApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw5IEBACiAjaWYgRU5BQkxFKEpJVCkKICNpbmNsdWRlICJKSVQuaCIKIAorI2lu
Y2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUg
IkpJVEFkZElDLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklU
Qml0QW5kR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0T3JHZW5lcmF0b3IuaCIKQEAgLTQ4
LDYgKzUwLDcgQEAKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhD
YWxsLmgiCiAKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBA
IC02ODAsNyArNjgzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJy
ZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAg
IGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBl
cyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6
OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgp
KTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CkBAIC02OTUsMTAgKzY5OCwxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9h
ZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUNDsKICAg
ICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0o
c2NyYXRjaEdQUik7CisgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hGUFIpOwogCiAgICAgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9m
aWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICByZXN1bHRQcm9maWxlID0gbV9j
b2RlQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2J5dGVjb2RlT2Zmc2V0
KTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAg
IFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC03MTAsMTQg
KzcxNSwyNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAKICAg
ICBSRUxFQVNFX0FTU0VSVCghbGVmdE9wZXJhbmQuaXNDb25zdCgpIHx8ICFyaWdodE9wZXJhbmQu
aXNDb25zdCgpKTsKIAotICAgIGlmICghbGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgIC8vaWYg
KCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
b3AxLCBsZWZ0UmVncyk7Ci0gICAgaWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgIC8v
aWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMiwgcmlnaHRSZWdzKTsKIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAg
ICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmls
ZSk7CisgICAgSklUQWRkSUMqIGFkZElDID0gbV9jb2RlQmxvY2stPmFkZEpJVEFkZElDKCk7Cisg
ICAgSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUqIGFkZElDR2VuZXJhdGlvblN0YXRlID0gbmV3IEpJ
VEFkZElDR2VuZXJhdGlvblN0YXRlOworCisgICAgbV9pbnN0cnVjdGlvblRvSklUQWRkSUMuYWRk
KGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUMpOworICAgIG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElD
R2VuZXJhdGlvblN0YXRlLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIGFkZElDR2VuZXJhdGlvblN0
YXRlKTsKKworICAgIGFkZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3Bl
cmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBmcFJl
Z1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAor
ICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lQ29kZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZSgqdGhp
cywgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKyAgICBpZiAoIWdlbmVyYXRlZElubGluZUNvZGUp
CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIGFkZFNsb3dDYXNlKGFkZElD
R2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMpOworCisgICAgLyoKICAgICBnZW4uZ2Vu
ZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKICAgICBpZiAoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKSB7
CkBAIC03NDAsMTYgKzc1NywyNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24q
IGN1cnJlCiAgICAgICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwogICAgICAgICB9CiAgICAg
fQorCisgICAgYXV0byBlbmQgPSBsYWJlbCgpOworCisgICAgYWRkTGlua1Rhc2soCisgICAgICAg
IFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgZGF0YUxvZygiQWRk
IGZhc3QgcGF0aCBzaXplOiAiLCAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKGVuZCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhcnQpLmV4
ZWN1dGFibGVBZGRyZXNzKCksICJcbiIpOworICAgICAgICB9KTsKKyAgICAgICAgKi8KIH0KIAog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGxpbmtBbGxT
bG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9m
ZnNldCk7CiAKKyAgICBKSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZSogYWRkSUNHZW5lcmF0aW9uU3Rh
dGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5nZXQoY3VycmVudElu
c3RydWN0aW9uKTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aFN0YXJ0ID0g
bGFiZWwoKTsKKwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUlu
dChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIFJlc3Vs
dFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVz
dWx0VHlwZSgpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJl
Z3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CkBAIC03NjksMTggKzc5Nyw0MSBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjCiAgICAgZWxzZSBpZiAoaXNPcGVyYW5kQ29u
c3RhbnRJbnQob3AyKSkKICAgICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3Bl
cmFuZENvbnN0YW50SW50KG9wMikpOwogCisgICAgLy9pZiAobGVmdE9wZXJhbmQuaXNDb25zdCgp
KQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgIC8v
aWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AyLCByaWdodFJlZ3MpOworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1faW5zdHJ1Y3Rpb25U
b0pJVEFkZElDLmdldChjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgIFJlc3VsdFByb2ZpbGUqIHJl
c3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCisg
ICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOworICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5t
X3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9w
dGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlLCBh
ZGRJQyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwor
ICAgIGFkZExpbmtUYXNrKAorICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
KyAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUoKmFkZElDR2VuZXJhdGlvblN0
YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgfSk7CisKKyAgICAvKgogICAgIGlmIChzaG91bGRF
bWl0UHJvZmlsaW5nKCkpIHsKICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKICAg
ICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgICAg
IGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFBy
b2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0
KTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5y
ZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CiAgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewogICAgICAgICBKSVRT
bG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19w
YXRoX2FkZCk7CiAgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiAgICAgfQorCisgICAgYXV0
byBlbmQgPSBsYWJlbCgpOworICAgIGFkZExpbmtUYXNrKAorICAgICAgICBbPV0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIkFkZCBzbG93IHBhdGggc2l6
ZTogIiwgKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihlbmQpLmV4ZWN1dGFibGVBZGRyZXNz
KCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVz
cygpLCAiXG4iKTsKKyAgICAgICAgfSk7CisgICAgICAgICovCiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNzg4LDcgKzgzOSw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVz
dWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlw
ZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3BlcmFu
ZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRd
LnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDAp
OwpAQCAtODA1LDcgKzg1Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiog
Y3VycmUKIAogICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOwogICAg
IGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2Nv
ZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAg
cmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZz
ZXQobV9ieXRlY29kZU9mZnNldCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0
eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vj
b25kKCkpOwpAQCAtODYxLDcgKzkxMiw3IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVj
dGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAg
ICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5k
VHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRd
LnUub3BlcmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21J
bnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1
bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jl
c3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtODc5LDcgKzkzMCw3IEBAIHZvaWQgSklUOjpl
bWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKIAogICAgIFJlc3VsdFByb2ZpbGUqIHJlc3Vs
dFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAg
ICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5
dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1
bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CiAKICAgICBTbmlw
cGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFu
ZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtOTMwLDcgKzk4MSw3IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICBpbnQgcmVzdWx0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21J
bnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5
cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFu
ZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0
KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtOTU1
LDcgKzEwMDYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiAg
ICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwogICAgICAg
ICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAgICAgICAgICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAgICAgUmVzdWx0UHJv
ZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1f
Ynl0ZWNvZGVPZmZzZXQpOworICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0g
bV9jb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2J5dGVjb2RlT2Zm
c2V0KTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAgIH0gZWxzZSB7
CkBAIC05NjksNyArMTAyMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsK
ICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQg
b3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMg
dHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9m
aWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5
cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtOTg3LDcgKzEwMzgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAKICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICBy
ZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29k
ZU9mZnNldCk7CisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0UHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgU25pcHBldE9w
ZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmln
aHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTEwMjMsNyArMTA3NCw3IEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGMKICNlbmRpZgogCiAgICAgaWYgKHNob3Vs
ZEVtaXRQcm9maWxpbmcoKSkgewotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxl
ID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7Cisg
ICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdz
LCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzEyMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUg
IkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiTWF0aENvbW1vbi5oIgogCkBAIC0xMjksNyArMTMwLDcgQEAgdm9pZCBKSVREaXZHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIG5vdERvdWJsZVplcm8ubGluaygmaml0KTsKICNl
bmRpZgogICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCi0gICAgICAgIGppdC5hZGQzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9y
ZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpKSk7CisgICAgICAg
IGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6OnNwZWNp
YWxGYXN0UGF0aEJpdCksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJv
ZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1f
cmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJ
KHJldmlzaW9uIDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNiArNDI0LDE0IEBAIGlubGluZSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGUKICAgICByZXR1cm4gY2FsbDsKIH0KIAoraW5saW5lIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpS
cEphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpT
VmFsdWVSZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUsIEpJVEFkZElDKiBh
ZGRJQykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1
c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgIENh
bGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBz
ZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKwogI2lmIFVTRShKU1ZB
TFVFNjQpCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihaX0pJVE9wZXJhdGlvbl9FSlpaIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIGludDMyX3Qg
YXJnMiwgaW50MzJfdCBhcmczKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRNdWxHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUTXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgi
CisKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2lu
Y2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIK
ICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIKQEAgLTIyNjUsOSArMjI2NiwzMyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgCiAgICAgSlNWYWx1
ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRk
KGV4ZWMsIG9wMSwgb3AyKTsKKyAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICByZXN1
bHRQcm9maWxlLT5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKKyAgICAgICAgcmVzdWx0UHJv
ZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2Zp
bGUqIHJlc3VsdFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBWTSogdm0gPSAmZXhl
Yy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAg
ICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBK
U1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKICAgICAKICAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKLSAgICByZXN1bHRQcm9maWxlLT5k
ZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIGlmIChyZXN1bHRQcm9maWxlKSB7CisgICAg
ICAgIHJlc3VsdFByb2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMob3AxLCBvcDIpOworICAgICAgICBy
ZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIH0KKworICAgIGFk
ZElDLT5nZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpKTsKKworICAgIGV4
ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklUQWRkSUNTdGF0cygpOworCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDEwIEBA
IHN0cnVjdCBSZXN1bHRQcm9maWxlOwogCiB0eXBlZGVmIEV4ZWNTdGF0ZSBDYWxsRnJhbWU7CiAK
K3RlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3JUeXBlPiBjbGFzcyBKSVRNYXRoSUM7CitjbGFz
cyBKSVRBZGRHZW5lcmF0b3I7Cit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJ
VEFkZElDOworCiBleHRlcm4gIkMiIHsKIAogdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CkBAIC04
MSw2ICs4NSw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIEljZjogSW5saW5lQ2Fs
bEZyYW1lKgogICAgIElkYzogY29uc3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNvZGVkSlNWYWx1
ZQorICAgIEphaWM6IEpJVEFkZElDKgogICAgIEpjcDogY29uc3QgSlNWYWx1ZSoKICAgICBKc2M6
IEpTU2NvcGUqCiAgICAgSnNmOiBKU0Z1bmN0aW9uKgpAQCAtMTM0LDYgKzEzOSw3IEBAIHR5cGVk
ZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpScCkoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxlKik7
Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9F
SkpScEphaWMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVz
dWx0UHJvZmlsZSosIEpJVEFkZElDKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BF
UkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQz
Ml90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0
aW9uX0VKc3NSZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVv
SnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CkBA
IC00MDksNiArNDE1LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhT
dAogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0
aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
TXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lO
VEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdWJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRl
ICJBcml0aFByb2ZpbGUuaCIKKwogI2lmIEVOQUJMRShKSVQpCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHJldmlzaW9u
IDIwMzEyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTExJbnREYXRhLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRl
ICJCeXRlY29kZUNvbnZlbnRpb25zLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVk
ZSAiQ29kZVR5cGUuaCIKQEAgLTIyMyw2ICsyMjQsNDMgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNz
ZXJ0aW9ucyhWTSYgdm0pCiAjZW5kaWYKIAogICAgIEFTU0VSVChTdHJpbmdJbXBsOjpzX2hhc2hG
bGFnOEJpdEJ1ZmZlciA9PSA4KTsKKworICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4
MTIwMDAwOworICAgICAgICBSZXN1bHRQcm9maWxlIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIHJl
c3VsdFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZS5yaHNTYXdJ
bnQzMigpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHRQcm9maWxlLmJpdHMoKSA9PSBi
aXRzKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChiaXRz
KS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJ
bnQzMigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0gMHgyMjAwMDA7
CisgICAgICAgIFJlc3VsdFByb2ZpbGUgcmVzdWx0UHJvZmlsZTsKKyAgICAgICAgcmVzdWx0UHJv
ZmlsZS5saHNTYXdOdW1iZXIoKTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZS5yaHNTYXdJbnQzMigp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHRQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKFJl
c3VsdFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIo
KSk7CisgICAgfQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MjQwMDAwOworICAg
ICAgICBSZXN1bHRQcm9maWxlIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIHJlc3VsdFByb2ZpbGUu
bGhzU2F3TnVtYmVyKCk7CisgICAgICAgIHJlc3VsdFByb2ZpbGUucmhzU2F3TnVtYmVyKCk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3VsdFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVChSZXN1bHRQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2Vy
dmVkVHlwZSgpLmlzT25seU51bWJlcigpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoUmVzdWx0
UHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7
CisgICAgfQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MTQwMDAwOworICAgICAg
ICBSZXN1bHRQcm9maWxlIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIHJlc3VsdFByb2ZpbGUubGhz
U2F3SW50MzIoKTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0UHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRU
eXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKFJlc3VsdFByb2Zp
bGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAg
IH0KIH0KICNpZiBDT01QSUxFUihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtODkz
LDYgKzg5Myw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAg
ICBicWIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKICAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMSwgdDIpCiAgICAgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3cs
IHQyKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MSkKKyAgICBvcmkgMHgxMjAwMDAs
IHQxICMgQm90aCBhcmUgaW50cy4KKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MSwgNCkKICAg
ICBkaXNwYXRjaCg1KQogCiAub3AxTm90SW50OgpAQCAtOTAyLDggKzkwNSwxNCBAQCBtYWNybyBi
aW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgYnRxeiB0MSwgdGFnVHlwZU51
bWJlciwgLnNsb3cKICAgICBhZGRxIHRhZ1R5cGVOdW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQx
CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQorICAgIG9yaSAweDI0MDAwMCwgdDIg
IyBCb3RoIGFyZSBkb3VibGVzLgorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAg
IGptcCAub3AxTm90SW50UmVhZHkKIC5vcDFOb3RJbnRPcDJJbnQ6CisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDQsIHQyKQorICAgIG9yaSAweDIyMDAwMCwgdDIgIyBGaXJzdCBpcyBkb3VibGUs
IHNlY29uZCBpcyBpbnQuCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgY2ky
ZCB0MSwgZnQxCiAub3AxTm90SW50UmVhZHk6CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEs
IHQyKQpAQCAtOTE5LDYgKzkyOCw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdl
ck9wZXJhdGkKICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBz
ZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQy
KQogICAgIGJ0cXogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgbG9hZGlzRnJvbUluc3Ry
dWN0aW9uKDQsIHQzKQorICAgIG9yaSAweDE0MDAwMCwgdDMgIyBGaXJzdCBpcyBpbnQsIHNlY29v
bmQgaXMgZG91YmxlCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDMsIDQpCiAgICAgY2kyZCB0
MCwgZnQwCiAgICAgYWRkcSB0YWdUeXBlTnVtYmVyLCB0MQogICAgIGZxMmQgdDEsIGZ0MQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyLmFzbQkocmV2aXNpb24gMjAzMTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDEw
IEBAIGlmIEpTVkFMVUU2NAogICAgICAgICBsb2FkcCBvZmZzZXQgKiA4W1BCLCBQQywgOF0sIGRl
c3QKICAgICBlbmQKICAgICAKKyAgICBtYWNybyBzdG9yZWlzVG9JbnN0cnVjdGlvbih2YWx1ZSwg
b2Zmc2V0KQorICAgICAgICBzdG9yZWkgdmFsdWUsIG9mZnNldCAqIDhbUEIsIFBDLCA4XQorICAg
IGVuZAorCiAgICAgbWFjcm8gc3RvcmVwVG9JbnN0cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQogICAg
ICAgICBzdG9yZXAgdmFsdWUsIG9mZnNldCAqIDhbUEIsIFBDLCA4XQogICAgIGVuZApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHJldmlzaW9uIDIwMzEy
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0VHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiwyMyArMzIsMjYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToK
ICAgICAgICAgZnJpZW5kIHN0cnVjdCBPcGVyYW5kVHlwZXM7CiAKLSAgICAgICAgdHlwZWRlZiBj
aGFyIFR5cGU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVJbnQzMiA9IDE7Ci0gICAg
ICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDA0Owot
ICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA4OwotICAgICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDEwOwotICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDIwOwotICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQwOworICAgICAgICB0eXBlZGVmIHVpbnQ4X3Qg
VHlwZTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUVtcHR5ID0gICAgICAgMHgwMDsK
KyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUludDMyID0gICAgICAgMHgwMTsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVtYmVyID0gMHgwMjsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IFR5cGUgVHlwZU1heWJlU3RyaW5nID0gMHgwNDsKKyAgICAgICAgc3RhdGljIGNv
bnN0IFR5cGUgVHlwZU1heWJlQm9vbCAgID0gMHgwODsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5
cGUgVHlwZU1heWJlT3RoZXIgID0gMHgxMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlw
ZU1heWJlTnVsbCAgID0gMHgyMDsKKworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlQml0
cyA9IFR5cGVNYXliZU51bWJlciB8IFR5cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZUJvb2wgfCBU
eXBlTWF5YmVPdGhlcjsKIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlQml0cyA9IFR5
cGVNYXliZU51bWJlciB8IFR5cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZU51bGwgfCBUeXBlTWF5
YmVCb29sIHwgVHlwZU1heWJlT3RoZXI7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgY29u
c3QgaW50IG51bUJpdHNOZWVkZWQgPSA2OworICAgICAgICBzdGF0aWNfYXNzZXJ0KChUeXBlQml0
cyAmICgoMSA8PCBudW1CaXRzTmVlZGVkKSAtIDEpKSA9PSBUeXBlQml0cywgIlRoaXMgaXMgbmVj
ZXNzYXJ5IGZvciBjb3JyZWN0bmVzcy4iKTsKIAogICAgICAgICBleHBsaWNpdCBSZXN1bHRUeXBl
KFR5cGUgdHlwZSkKICAgICAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgIHsKICAgICAg
ICAgfQogCi0gICAgcHVibGljOgogICAgICAgICBib29sIGlzSW50MzIoKSBjb25zdAogICAgICAg
ICB7CiAgICAgICAgICAgICByZXR1cm4gbV90eXBlICYgVHlwZUludDMyOwpAQCAtNzksMTEgKzgy
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gIW1pZ2h0QmVOdW1iZXIo
KTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgbnVsbFR5
cGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gUmVzdWx0VHlwZShUeXBlTWF5YmVO
dWxsKTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgYm9v
bGVhblR5cGUoKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gUmVzdWx0VHlwZShUeXBl
TWF5YmVCb29sKTsKQEAgLTEwOCw2ICsxMDYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZVN0cmluZyk7CiAgICAg
ICAgIH0KKworICAgICAgICBzdGF0aWMgUmVzdWx0VHlwZSBudWxsVHlwZSgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZU51bGwpOworICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgUmVzdWx0VHlwZSB1bmtub3duVHlwZSgpCiAgICAg
ICAgIHsKQEAgLTE0MSw2ICsxNDQsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJl
dHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAgICAgICB9CiAKKyAgICAgICAgVHlwZSBiaXRz
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBUeXBl
IG1fdHlwZTsKICAgICB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyMDMxMjApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xv
d1BhdGhzLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNv
bnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQ2FsbEZy
YW1lLmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAj
aW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKKyNpbmNsdWRlICJSZXN1bHRUeXBl
LmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiAjZGVmaW5lIEJFR0lOX05PX1NFVF9QQygpIFwKQEAg
LTM2Myw3ICszNjYsOCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5
CiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAgICB1
bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGNvZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQocGMpOwot
ICAgIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUgPSBjb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2Zp
bGUoYnl0ZWNvZGVPZmZzZXQpOworICAgIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUgPSBjb2RlQmxv
Y2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCk7CisgICAg
QVNTRVJUKHByb2ZpbGUpOwogCiAgICAgaWYgKHJlc3VsdC5pc051bWJlcigpKSB7CiAgICAgICAg
IGlmICghcmVzdWx0LmlzSW50MzIoKSkgewpAQCAtNDA3LDYgKzQxMSwyMyBAQCBTTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfYWRkKQogICAgIEpTVmFsdWUgdjIgPSBPUF9DKDMpLmpzVmFsdWUoKTsK
ICAgICBKU1ZhbHVlIHJlc3VsdDsKIAorICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhl
Yy0+Y29kZUJsb2NrKCktPmJ5dGVjb2RlT2Zmc2V0KHBjKTsKKyAgICBSZXN1bHRQcm9maWxlKiBy
ZXN1bHRQcm9maWxlID0gZXhlYy0+Y29kZUJsb2NrKCktPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29k
ZU9mZnNldChieXRlY29kZU9mZnNldCk7CisgICAgcmVzdWx0UHJvZmlsZS0+b2JzZXJ2ZUxIU0Fu
ZFJIUyh2MSwgdjIpOworCisgICAgLyoKKyAgICBkYXRhTG9nKCJzbG93X3BhdGhfYWRkXG4iKTsK
KyAgICBkYXRhTG9nKCJWMTogIiwgcnVudGltZVR5cGVBc1N0cmluZyhydW50aW1lVHlwZUZvclZh
bHVlKHYxKSksICJcbiIpOworICAgIGRhdGFMb2coIlYyOiAiLCBydW50aW1lVHlwZUFzU3RyaW5n
KHJ1bnRpbWVUeXBlRm9yVmFsdWUodjIpKSwgIlxuIik7CisgICAgZGF0YUxvZygiU3RhdHM6ICIs
IHBjWzRdLnUub3BlcmFuZCwgIlxuIik7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFu
ZFR5cGVzOjpmcm9tSW50KHBjWzRdLnUub3BlcmFuZCk7CisgICAgUmVzdWx0VHlwZSBhID0gdHlw
ZXMuZmlyc3QoKTsKKyAgICBSZXN1bHRUeXBlIGIgPSB0eXBlcy5zZWNvbmQoKTsKKyAgICBkYXRh
TG9nKCpiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KCZhKSwgIlxuIik7CisgICAgZGF0YUxvZygqYml0
d2lzZV9jYXN0PHVpbnQ4X3QqPigmYiksICJcbiIpOworICAgICovCisgICAgCisKICAgICBpZiAo
djEuaXNTdHJpbmcoKSAmJiAhdjIuaXNPYmplY3QoKSkKICAgICAgICAgcmVzdWx0ID0ganNTdHJp
bmcoZXhlYywgYXNTdHJpbmcodjEpLCB2Mi50b1N0cmluZyhleGVjKSk7CiAgICAgZWxzZSBpZiAo
djEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283830</attachid>
            <date>2016-07-15 18:41:20 -0700</date>
            <delta_ts>2016-07-18 21:21:20 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>106745</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMyOTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxNiArMTI4MSwyMCBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkIxRDM0
NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5MkNC
MzQ5MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovOyB9OwogCQk3OTJDQjM0QTFDNEVFRDVDMDBE
MTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9y
aWdpbk1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc5NjQ2NTZBMUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTY0NjU2ODFCOTUyRkYwMDAzMDU5
RUUgLyogR2V0UHV0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQuY3BwICovOyB9OwogCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5N0UwN0E4MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc5OUVGN0M0MUM1NkVEOTYwMDJCMDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5OUVGN0MzMUM1NkVEOTYwMDJC
MDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3OUEyMjgzNTFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QTIyODMzMUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwICovOyB9OworCQk3OUEy
MjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyog
QXJpdGhQcm9maWxlLmggKi87IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94
eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAq
LzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2
QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNl
dHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7
IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3
RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJ
Q0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIx
NThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFC
QTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5j
cHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJp
YWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFy
aWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFu
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNG
QzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDEyICszNDgwLDE2IEBACiAJ
CTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94
eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQg
LyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJ
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1
dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyog
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5
RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09y
aWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFF
MDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyog
UHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlC
MDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA1Nyw2ICs1MDY1LDggQEAKIAkJCQlERTVB
MDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQy
OUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3
MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBK
SVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElD
Rm9yd2FyZHMuaCAqLywKIAkJCQlGRTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmNwcCAqLywKIAkJCQlGRTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmggKi8sCiAJCQkJODZBOTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0
aWMuY3BwICovLApAQCAtNjU1Niw2ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAx
NDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcw
NTEwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEw
MDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUw
NjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcg
LyogQXJpdGhQcm9maWxlLmggKi8sCiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5
dGVjb2RlQmFzaWNCbG9jay5jcHAgKi8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8q
IEJ5dGVjb2RlQmFzaWNCbG9jay5oICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAv
KiBCeXRlY29kZUNvbnZlbnRpb25zLmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1
RUE3MEU4MTlGNUIxMDEwMDk4RjVFQyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0FyZ3VtZW50UmVnVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQz
NDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwMzFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrVXRpbHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRUM4NTA0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jsb2NrV29ya2xp
c3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzc1NCw2ICs3NzY3LDcgQEAKIAkJCQlBNTEwMDdDMTE4
N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDEx
MEYxNCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3OUEyMjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEzRTVDMDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhv
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMyMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ0MkNCMjUx
QTZDREI4QzAwNUQzRDdDIC8qIEpTSW5wdXRzLmpzb24gaW4gSGVhZGVycyAqLywKQEAgLTgxNzks
NiArODE5Myw3IEBACiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmll
clN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAv
KiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFB
QTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk3OUIxNzg4RTFEMzk5QjgwMDBCMUE1
NjcgLyogSklUTWF0aElDRm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJE
Qzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NTEyREJB
MzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njcw
NEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC05MjYz
LDYgKzkyNzgsNyBAQAogCQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2Vt
Ymxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyog
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVCMTM3NTcxQkIxMUVG
OTAwQ0Q1MTAwIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NzlBMjI4MzUxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzI5MDA5QzE3OTc2QzYwMDAzMTcyOTggLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTY4QzYzODFCOTBERTBCMDA0MkJDQjMgLyogTWFjcm9B
c3NlbWJsZXJQcmludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTRBRTA4MTc5NzNCMjYw
MDU2MTJCMSAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3Bw
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFBy
b2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5j
bHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIEVOQUJMRShKSVQp
Cit2b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMm
IGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlKQoreworICAgIEND
YWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIocmVncywgbW9kZSk7
CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5icmFuY2hJZk5vdERvdWJs
ZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8gRklYTUU6IFdlIGNvdWxkIGJlIG1v
cmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUoaml0KTsKKyAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90RG91YmxlLmxpbmsoJmppdCk7Cisg
ICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUubGluaygmaml0KTsKKyAgICBpc0lu
dDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJsZShD
Q2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0UHJvZmlsZTo6SW50NTJP
dmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBSZXN1bHRQcm9maWxlOjpO
b25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09m
Qml0cygpKSk7Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2Fs
bEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihSZXN1bHRQcm9maWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVz
cyhhZGRyZXNzT2ZCaXRzKCkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKKworbmFtZXNwYWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlND
OworCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgUmVzdWx0UHJv
ZmlsZSYgcHJvZmlsZSkKK3sKKyAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKKworICAg
IGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQo
IkludDMyIik7CisgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAgICAg
ICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBv
dXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2VwYXJh
dG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25O
ZWdaZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJs
ZSIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlm
IChwcm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIoKSkgeworICAgICAgICAgICAgb3V0LnByaW50
KCJOb25OdW1iZXIiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQor
ICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7CisgICAgICAg
ICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVy
ZmxvdygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKKyAgICAg
ICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAocHJvZmls
ZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7CisgICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwg
ZmFzdCBwYXRoOiAiKTsKKyAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRo
Q291bnQoKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQXJpdGhQcm9maWxlX2gKKyNkZWZpbmUgQXJpdGhQcm9m
aWxlX2gKKworI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCisj
aW5jbHVkZSAiUmVzdWx0VHlwZS5oIgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisgCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK3N0cnVjdCBPYnNlcnZl
ZFR5cGUgeworICAgIE9ic2VydmVkVHlwZSh1aW50OF90IGJpdHMgPSBUeXBlRW1wdHkpCisgICAg
ICAgIDogbV9iaXRzKGJpdHMpCisgICAgeyB9CisKKyAgICBib29sIHNhd0ludDMyKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRzICYgVHlwZUludDMyOyB9CisgICAgYm9vbCBpc09ubHlJbnQzMigpIGNv
bnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlSW50MzI7IH0KKyAgICBib29sIHNhd051bWJlcigp
IGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVOdW1iZXI7IH0KKyAgICBib29sIGlzT25seU51
bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBz
YXdOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTm9uTnVtYmVyOyB9Cisg
ICAgYm9vbCBpc09ubHlOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU5v
bk51bWJlcjsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2JpdHM7IH0K
KyAgICB1aW50OF90IGJpdHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKworICAgIE9ic2Vy
dmVkVHlwZSB3aXRoSW50MzIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwg
VHlwZUludDMyKTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRoTnVtYmVyKCkgY29uc3QgeyByZXR1
cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVOdW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBl
IHdpdGhOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlw
ZU5vbk51bWJlcik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aG91dE5vbk51bWJlcigpIGNvbnN0
IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgJiB+VHlwZU5vbk51bWJlcik7IH0KKworICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBPYnNlcnZlZFR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX2JpdHMgPT0gb3RoZXIubV9iaXRzOyB9CisKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBU
eXBlRW1wdHkgPSAweDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUludDMyID0gMHgx
OworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVOdW1iZXIgPSAweDAyOworICAgIHN0YXRp
YyBjb25zdCB1aW50OF90IFR5cGVOb25OdW1iZXIgPSAweDA0OworCitwcml2YXRlOgorICAgIHVp
bnQ4X3QgbV9iaXRzOworfTsKKworc3RydWN0IFJlc3VsdFByb2ZpbGUgeworcHJpdmF0ZToKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHJoc1Jlc3VsdFR5cGVTaGlmdCA9IDU7CisgICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9IDExOworICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCByaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE3OworICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBsaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBi
b3R0b202Qml0cyA9ICgxIDw8IDYpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgYm90
dG9tM0JpdHMgPSAoMSA8PCAzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGNsZWFy
UmhzT2JzZXJ2ZWRUeXBlQml0cyA9IH4oKDEgPDwgMTcpIHwgKDEgPDwgMTgpIHwgKDEgPDwgMTkp
KTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRzID0g
figoMSA8PCAyMCkgfCAoMSA8PCAyMSkgfCAoMSA8PCAyMikpOworCisgICAgc3RhdGljX2Fzc2Vy
dChSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25nIGFzc3Vt
cHRpb24gaGVyZSB0aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpcy4iKTsKKworcHVibGljOgor
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzcGVjaWFsRmFzdFBhdGhCaXQgPSAxIDw8IDIzOwor
CisgICAgUmVzdWx0UHJvZmlsZShSZXN1bHRUeXBlIGxocywgUmVzdWx0VHlwZSByaHMpCisgICAg
eworICAgICAgICBtX2JpdHMgPSAobGhzLmJpdHMoKSA8PCBsaHNSZXN1bHRUeXBlU2hpZnQpIHwg
KHJocy5iaXRzKCkgPDwgcmhzUmVzdWx0VHlwZVNoaWZ0KTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQobGhzUmVzdWx0VHlwZSgpLmJpdHMoKSA9PSBsaHMuYml0cygpICYmIHJoc1Jlc3VsdFR5cGUo
KS5iaXRzKCkgPT0gcmhzLmJpdHMoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxoc09ic2Vy
dmVkVHlwZSgpLmlzRW1wdHkoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJoc09ic2VydmVk
VHlwZSgpLmlzRW1wdHkoKSk7CisgICAgfQorICAgIFJlc3VsdFByb2ZpbGUoKQorICAgIHsgfQor
CisgICAgc3RhdGljIFJlc3VsdFByb2ZpbGUgZnJvbUludCh1aW50MzJfdCBiaXRzKQorICAgIHsK
KyAgICAgICAgUmVzdWx0UHJvZmlsZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBi
aXRzOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGVudW0gT2JzZXJ2ZWRS
ZXN1bHRzIHsKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVn
WmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwg
MiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVy
ZmxvdyAgICA9IDEgPDwgNCwKKyAgICB9OworCisgICAgUmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBl
KCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9iaXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlm
dCkgJiBib3R0b202Qml0cyk7IH0KKyAgICBSZXN1bHRUeXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25z
dCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4gcmhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJv
dHRvbTZCaXRzKTsgfQorCisgICAgT2JzZXJ2ZWRUeXBlIGxoc09ic2VydmVkVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAm
IGJvdHRvbTNCaXRzKTsgfQorICAgIE9ic2VydmVkVHlwZSByaHNPYnNlcnZlZFR5cGUoKSBjb25z
dCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+PiByaHNPYnNlcnZlZFR5cGVTaGlmdCkg
JiBib3R0b20zQml0cyk7IH0KKyAgICB2b2lkIHNldExoc09ic2VydmVkVHlwZShPYnNlcnZlZFR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSBtX2JpdHM7CisgICAgICAg
IGJpdHMgJj0gY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRzOworICAgICAgICBiaXRzIHw9IHR5cGUu
Yml0cygpIDw8IGxoc09ic2VydmVkVHlwZVNoaWZ0OworICAgICAgICBtX2JpdHMgPSBiaXRzOwor
ICAgICAgICBSRUxFQVNFX0FTU0VSVChsaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsKKyAgICB9
CisKKyAgICB2b2lkIHNldFJoc09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlwZSkKKyAgICB7
IAorICAgICAgICB1aW50MzJfdCBiaXRzID0gbV9iaXRzOworICAgICAgICBiaXRzICY9IGNsZWFy
UmhzT2JzZXJ2ZWRUeXBlQml0czsKKyAgICAgICAgYml0cyB8PSB0eXBlLmJpdHMoKSA8PCByaHNP
YnNlcnZlZFR5cGVTaGlmdDsKKyAgICAgICAgbV9iaXRzID0gYml0czsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7CisgICAgfQorCisgICAgdW5zaWdu
ZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBjb25zdAorICAgIHsgCisgICAgICAgIC8vIEZJWE1F
OgorICAgICAgICByZXR1cm4gbV9iaXRzICYgc3BlY2lhbEZhc3RQYXRoQml0ID8gVUlOVF9NQVgg
OiAwOworICAgIH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyByZXR1
cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJlcik7
IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5v
bk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZU5v
bk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUp
OyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhh
c0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIoKSBj
b25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVJ
bnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsgfQor
ICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJs
ZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgdm9pZCBzZXRPYnNlcnZlZE5l
Z1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQgc2V0T2Jz
ZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CisgICAgdm9pZCBzZXRPYnNl
cnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQorICAgIHZvaWQg
c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7IH0KKwor
ICAgIHZvaWQqIGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9iaXRzOyB9CisKKyAgICB2b2lk
IGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFs
dWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodmFsdWUuaXNO
dW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92
ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRzIHw9IE5vbk51bWJlcjsKKyAgICB9CisK
KyAgICB2b2lkIGxoc1Nhd0ludDMyKCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhzT2JzZXJ2ZWRU
eXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCBsaHNTYXdOdW1iZXIoKSB7IHNldExoc09i
c2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkpOyB9CisgICAgdm9pZCBs
aHNTYXdOb25OdW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53
aXRoTm9uTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNTYXdJbnQzMigpIHsgc2V0UmhzT2JzZXJ2
ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpKTsgfQorICAgIHZvaWQgcmhzU2F3
TnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJl
cigpKTsgfQorICAgIHZvaWQgcmhzU2F3Tm9uTnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUo
cmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigpKTsgfQorCisgICAgdm9pZCBvYnNlcnZl
TEhTQW5kUkhTKEpTVmFsdWUgbGhzLCBKU1ZhbHVlIHJocykKKyAgICB7CisgICAgICAgIFJlc3Vs
dFByb2ZpbGUgbmV3UHJvZmlsZSA9ICp0aGlzOworICAgICAgICBpZiAobGhzLmlzTnVtYmVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChsaHMuaXNJbnQzMigpKQorICAgICAgICAgICAgICAgIG5ld1By
b2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBu
ZXdQcm9maWxlLmxoc1Nhd051bWJlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5l
d1Byb2ZpbGUubGhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAgaWYgKHJocy5pc051bWJlcigp
KSB7CisgICAgICAgICAgICBpZiAocmhzLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICBuZXdQ
cm9maWxlLnJoc1Nhd0ludDMyKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
bmV3UHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBu
ZXdQcm9maWxlLnJoc1Nhd05vbk51bWJlcigpOworCisgICAgICAgIG1fYml0cyA9IG5ld1Byb2Zp
bGUuYml0cygpOworICAgIH0KKworI2lmIEVOQUJMRShKSVQpICAgIAorICAgIC8vIFNldHMgKElu
dDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9E
b3VibGUpIGlmIGl0IHNlZXMgYQorICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQg
c2VlcyBhIG5vbi1udW1iZXIuCisgICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KTsKKyAgICAKKyAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5v
bk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKS4KKyAgICB2b2lkIGVtaXRTZXREb3VibGUo
Q0NhbGxIZWxwZXJzJik7CisgICAgCisgICAgLy8gU2V0cyBOb25OdW1iZXIuCisgICAgdm9pZCBl
bWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYpOworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisK
KyAgICB1aW50MzJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKK3ByaXZhdGU6
CisgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBtYXNr
OyB9CisgICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9iaXRzIHw9IG1hc2s7IH0KKworICAg
IHVpbnQzMl90IG1fYml0cyB7IDAgfTsgLy8gV2UgdGFrZSBjYXJlIHRvIHVwZGF0ZSBtX2JpdHMg
b25seSBpbiBhIHNpbmdsZSBvcGVyYXRpb24uIFdlIGRvbid0IGV2ZXIgc3RvcmUgYW4gaW5jb25z
aXN0ZW50IGJpdCByZXByZXNlbnRhdGlvbiB0byBpdC4KK307CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwg
Y29uc3QgSlNDOjpSZXN1bHRQcm9maWxlJik7CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5k
aWYgLy8gQXJpdGhQcm9maWxlX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAj
aW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZVVzZURlZi5o
IgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgIklubGluZUNhbGxGcmFtZS5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVkZSAiSklUTWF0aElD
LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtMzAwMCw2ICszMDAyLDU5IEBAIFN0
cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmYKICAgICByZXR1cm4gbV9zdHVi
SW5mb3MuYWRkKGFjY2Vzc1R5cGUpOwogfQogCitKSVRBZGRJQyogQ29kZUJsb2NrOjphZGRKSVRB
ZGRJQygpCit7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBy
ZXR1cm4gbV9hZGRJQ3MuYWRkKCk7Cit9CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg
PHN5cy90eXBlcy5oPgorCit2b2lkIENvZGVCbG9jazo6ZHVtcEpJVEFkZElDU3RhdHMoKQorewor
ICAgIHJldHVybjsKKworICAgIC8qCisgICAgZG91YmxlIHNpemUgPSAwLjA7CisgICAgZG91Ymxl
IG91dE9mTGluZSA9IDAuMDsKKyAgICBhdXRvIGZ1bmMgPSBbJl0gKENvZGVCbG9jayogY29kZUJs
b2NrKSAtPiBib29sIHsKKyAgICAgICAgZm9yIChKSVRBZGRJQyogYWRkSUMgOiBjb2RlQmxvY2st
Pm1fYWRkSUNzKSB7CisgICAgICAgICAgICArK3NpemU7CisgICAgICAgICAgICBpZiAoYWRkSUMt
Pm1fY29kZSkKKyAgICAgICAgICAgICAgICArK291dE9mTGluZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICB2bSgpLT5oZWFwLmZvckVhY2hDb2RlQmxvY2so
ZnVuYyk7CisgICAgYXV0byBwaWQgPSBnZXRwaWQoKTsKKyAgICBkYXRhTG9nKCJQSUQ6ICIsIHBp
ZCwgIiBDb2RlQmxvY2sgaGFzIG91dE9mTGluZSByYXRpbzogIiwgb3V0T2ZMaW5lL3NpemUsICJc
biIpOworICAgIGRhdGFMb2coIlBJRDogIiwgcGlkLCAiIFRvdGFsIG51bSBhZGQgSUNzOiIsIHNp
emUsICIuIFRvdGFsIG51bSBvdXQgb2YgbGluZTogIiwgb3V0T2ZMaW5lLCAiXG4iKTsKKyAgICAq
LworCisgICAgc3RhdGljIGRvdWJsZSBwZWFrU2l6ZSA9IDAuMDsKKyAgICBkb3VibGUgc2l6ZSA9
IDAuMDsKKyAgICBkb3VibGUgbnVtQWRkcyA9IDAuMDsKKyAgICBzaXplX3Qgc21hbGxlc3RTaXpl
ID0gVUlOVF9NQVg7CisgICAgc2l6ZV90IGxhcmdlc3RTaXplID0gMDsKKyAgICBhdXRvIGZ1bmMg
PSBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSAtPiBib29sIHsKKyAgICAgICAgZm9yIChKSVRB
ZGRJQyogYWRkSUMgOiBjb2RlQmxvY2stPm1fYWRkSUNzKSB7CisgICAgICAgICAgICArK251bUFk
ZHM7CisgICAgICAgICAgICBzaXplICs9IGFkZElDLT5jb2RlU2l6ZSgpOworICAgICAgICAgICAg
bGFyZ2VzdFNpemUgPSBzdGQ6Om1heChhZGRJQy0+Y29kZVNpemUoKSwgbGFyZ2VzdFNpemUpOwor
ICAgICAgICAgICAgc21hbGxlc3RTaXplID0gc3RkOjptaW4oYWRkSUMtPmNvZGVTaXplKCksIHNt
YWxsZXN0U2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07Cisg
ICAgdm0oKS0+aGVhcC5mb3JFYWNoQ29kZUJsb2NrKGZ1bmMpOworICAgIHBlYWtTaXplID0gc3Rk
OjptYXgoc2l6ZSwgcGVha1NpemUpOworICAgIGF1dG8gcGlkID0gZ2V0cGlkKCk7CisgICAgZGF0
YUxvZygiUElEOiAiLCBwaWQsICIgQ29kZUJsb2NrIGhhcyBzaXplIHJhdGlvOiAiLCBzaXplL251
bUFkZHMsICJcbiIpOworICAgIGRhdGFMb2coIlBJRDogIiwgcGlkLCAiIFRvdGFsIG51bSBhZGQg
SUNzOiIsIG51bUFkZHMsICIuIFRvdGFsIG51bSBzaXplOiAiLCBzaXplLCAiXG4iKTsKKyAgICBk
YXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBQZWFrIHNpemU6ICIsIHBlYWtTaXplLCAiXG4iKTsKKyAg
ICBkYXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBsYXJnZXN0IHNpemU6IiwgbGFyZ2VzdFNpemUsICIg
U21hbGxlc3Qgc2l6ZToiLCBzbWFsbGVzdFNpemUsICAiXG4iKTsKK30KKwogU3RydWN0dXJlU3R1
YkluZm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsK
ICAgICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7CkBA
IC00MzYzLDE0ICs0NDE4LDMwIEBAIHVuc2lnbmVkIENvZGVCbG9jazo6cmFyZUNhc2VQcm9maWxl
Q291bnQKICAgICByZXR1cm4gMDsKIH0KIAorUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpyZXN1
bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQoreworICAgIENv
bmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIHJlc3VsdFByb2Zp
bGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKK30KKwogUmVzdWx0
UHJvZmlsZSogQ29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBpZiAoIW1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2Zp
bGVJbmRleE1hcC0+ZmluZChieXRlY29kZU9mZnNldCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZW5kKCkpCisgICAgYXV0byBv
cGNvZGVJRCA9IHZtKCktPmludGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVti
eXRlY29kZU9mZnNldF0udS5vcGNvZGUpOworICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKKyAgICBj
YXNlIG9wX2JpdG9yOgorICAgIGNhc2Ugb3BfYml0YW5kOgorICAgIGNhc2Ugb3BfYml0eG9yOgor
ICAgIGNhc2Ugb3BfYWRkOgorICAgIGNhc2Ugb3BfbXVsOgorICAgIGNhc2Ugb3Bfc3ViOgorICAg
IGNhc2Ugb3BfZGl2OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVl
XTsKKyAgICB9CisKKyAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25z
KClbYnl0ZWNvZGVPZmZzZXQgKyA0XTsKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PFJlc3VsdFBy
b2ZpbGUqPigmaW5zdHJ1Y3Rpb24tPnUub3BlcmFuZCk7CiB9CiAKIHVuc2lnbmVkIENvZGVCbG9j
azo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVj
b2RlT2Zmc2V0KQpAQCAtNDM5NSwyNiArNDQ2Niw2IEBAIGJvb2wgQ29kZUJsb2NrOjpjb3VsZFRh
a2VTcGVjaWFsRmFzdENhc2UKICAgICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0
aW9uczo6Y291bGRUYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKIH0KIAotUmVzdWx0UHJvZmls
ZSogQ29kZUJsb2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsK
LSAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1
cmVSZXN1bHRQcm9maWxlKGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9m
aWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYgbG9ja2VyLCBpbnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSog
cHJvZmlsZSA9IHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2Rl
T2Zmc2V0KTsKLSAgICBpZiAoIXByb2ZpbGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5h
cHBlbmQoUmVzdWx0UHJvZmlsZShieXRlY29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0g
Jm1fcmVzdWx0UHJvZmlsZXMubGFzdCgpOwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmls
ZXMubGFzdCgpID09ICZtX3Jlc3VsdFByb2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0g
MV0pOwotICAgICAgICBpZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1h
cCkKLSAgICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9
IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4o
KTsKLSAgICAgICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQo
Ynl0ZWNvZGVPZmZzZXQsIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAg
IHJldHVybiBwcm9maWxlOwotfQotCiAjaWYgRU5BQkxFKEpJVCkKIERGRzo6Q2FwYWJpbGl0eUxl
dmVsIENvZGVCbG9jazo6Y2FwYWJpbGl0eUxldmVsKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDIwMzI5MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkhhbmRsZXJJbmZvLmgiCiAjaW5jbHVkZSAiSW5zdHJ1
Y3Rpb24uaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2Fy
ZHMuaCIKICNpbmNsdWRlICJKSVRXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpAQCAtNzksNiArODAsNyBAQAogbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNz
IEpTTW9kdWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFz
cyBQQ1RvQ29kZU9yaWdpbk1hcDsKQEAgLTg4LDYgKzkwLDggQEAgY2xhc3MgVHlwZUxvY2F0aW9u
OwogCiBlbnVtIGNsYXNzIEFjY2Vzc1R5cGUgOiBpbnQ4X3Q7CiAKK3N0cnVjdCBSZXN1bHRQcm9m
aWxlOworCiB0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qLCBD
b2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBTdHViSW5mb01hcDsKIAogZW51bSBSZW9wdGltaXph
dGlvbk1vZGUgeyBEb250Q291bnRSZW9wdGltaXphdGlvbiwgQ291bnRSZW9wdGltaXphdGlvbiB9
OwpAQCAtMjQ1LDYgKzI0OSw4IEBAIHB1YmxpYzoKICAgICAKICNpZiBFTkFCTEUoSklUKQogICAg
IFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbyhBY2Nlc3NUeXBlKTsKKyAgICBKSVRBZGRJ
QyogYWRkSklUQWRkSUMoKTsKKyAgICB2b2lkIGR1bXBKSVRBZGRJQ1N0YXRzKCk7CiAgICAgQmFn
PFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1YkluZm9CZWdpbigpIHsgcmV0dXJuIG1f
c3R1YkluZm9zLmJlZ2luKCk7IH0KICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRv
ciBzdHViSW5mb0VuZCgpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmVuZCgpOyB9CiAgICAgCkBAIC00
NDAsOSArNDQ2LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdmFsdWUgPj0gT3B0aW9uczo6
Y291bGRUYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKICAgICB9CiAKLSAgICBSZXN1bHRQcm9m
aWxlKiBlbnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCk7Ci0gICAgUmVzdWx0
UHJvZmlsZSogZW5zdXJlUmVzdWx0UHJvZmlsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
aW50IGJ5dGVjb2RlT2Zmc2V0KTsKICAgICB1bnNpZ25lZCBudW1iZXJPZlJlc3VsdFByb2ZpbGVz
KCkgeyByZXR1cm4gbV9yZXN1bHRQcm9maWxlcy5zaXplKCk7IH0KKyAgICBSZXN1bHRQcm9maWxl
KiByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCk7CiAKICAgICB1bnNpZ25lZCBz
cGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgaW50IGJ5dGVjb2RlT2Zmc2V0KTsKQEAgLTEwMTMsNiArMTAxOCw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJB
dE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBCYWc8U3RydWN0dXJlU3R1
YkluZm8+IG1fc3R1YkluZm9zOworICAgIEJhZzxKSVRBZGRJQz4gbV9hZGRJQ3M7CiAgICAgQmFn
PEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwogICAgIEJhZzxDYWxsTGlua0luZm8+IG1fY2FsbExp
bmtJbmZvczsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1Nl
bnRpbmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIw
MzI5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3MCArMzEsNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
I2lmIEVOQUJMRShKSVQpCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVz
cyhDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBt
b2RlKQotewotICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50
MzIocmVncywgbW9kZSk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5i
cmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7Ci0gICAgLy8gRklYTUU6
IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgotICAgIGVtaXRTZXREb3VibGUoaml0KTsK
LSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7Ci0gICAgbm90RG91Ymxl
LmxpbmsoJmppdCk7Ci0gICAgZW1pdFNldE5vbk51bWJlcihqaXQpOwotICAgIGRvbmUubGluaygm
aml0KTsKLSAgICBpc0ludDMyLmxpbmsoJmppdCk7Ci19Ci0KLXZvaWQgUmVzdWx0UHJvZmlsZTo6
ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0
UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBS
ZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRT
ZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJz
OjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotI2VuZGlmIC8vIEVOQUJM
RShKSVQpCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RGIHsKLSAgICAKLXVz
aW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb25zdCBSZXN1bHRQcm9maWxlJiBwcm9maWxlKQotewotICAgIGNvbnN0IGNoYXIqIHNlcGFy
YXRvciA9ICIiOwotCi0gICAgaWYgKCFwcm9maWxlLmRpZE9ic2VydmVOb25JbnQzMigpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiSW50MzIiKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkp
IHsKLSAgICAgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWdaZXJvRG91YmxlIik7Ci0g
ICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2Zp
bGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnByaW50
KCJOb25OZWdaZXJvRG91YmxlIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAg
ICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJlciIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0g
InwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIpOwotICAgICAg
ICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRp
ZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50NTJP
dmVyZmxvdyIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAg
fQotICAgIGlmIChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpIHsKLSAgICAgICAgb3V0
LnByaW50KCIgc3BlY2lhbCBmYXN0IHBhdGg6ICIpOwotICAgICAgICBvdXQucHJpbnQocHJvZmls
ZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdU
RgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUu
aAkocmV2aXNpb24gMjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zh
bHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksODggKzIwOSw2IEBAIGlubGluZSBp
bnQgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmYKICAgICByZXR1cm4gcmFyZUNhc2VQcm9m
aWxlLT5tX2J5dGVjb2RlT2Zmc2V0OwogfQogCi1zdHJ1Y3QgUmVzdWx0UHJvZmlsZSB7Ci1wcml2
YXRlOgotICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtYmVyT2ZGbGFnQml0cyA9IDU7Ci0KLXB1Ymxp
YzoKLSAgICBSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLSAgICAgICAgOiBtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3MoYnl0ZWNvZGVPZmZzZXQgPDwgbnVtYmVyT2ZGbGFnQml0cykK
LSAgICB7Ci0gICAgICAgIEFTU0VSVCgoKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9mRmxhZ0Jp
dHMpID4+IG51bWJlck9mRmxhZ0JpdHMpID09IGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICB9Ci0KLSAg
ICBlbnVtIE9ic2VydmVkUmVzdWx0cyB7Ci0gICAgICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8
IDAsCi0gICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDEsCi0gICAgICAgIE5vbk51bWJl
ciAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIEludDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCi0g
ICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDQsCi0gICAgfTsKLQotICAgIGludCBieXRl
Y29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyA+PiBu
dW1iZXJPZkZsYWdCaXRzOyB9Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0KLSAgICBib29sIGRpZE9i
c2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8
IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJs
ZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1
cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAg
Ym9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1i
ZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJu
IGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KLSAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9p
ZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91Ymxl
KTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVy
b0RvdWJsZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9u
TnVtYmVyKTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQo
SW50MzJPdmVyZmxvdyk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpIHsg
c2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9Ci0KLSAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsg
cmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KLSAgICB2b2lkKiBhZGRyZXNzT2ZT
cGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9
Ci0gICAgCi0gICAgdm9pZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQotICAgIHsK
LSAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRB
bmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3Vi
bGUgfCBOZWdaZXJvRG91YmxlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1iZXI7Ci0gICAgfQotCi0jaWYg
RU5BQkxFKEpJVCkgICAgCi0gICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZs
b3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCi0gICAg
Ly8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KLSAgICB2
b2lkIGVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFn
UmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwotICAgIAotICAgIC8vIFNldHMgKElu
dDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9E
b3VibGUpLgotICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKLSAgICAKLSAg
ICAvLyBTZXRzIE5vbk51bWJlci4KLSAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxw
ZXJzJik7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotcHJpdmF0ZToKLSAgICBib29sIGhhc0Jp
dHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyAmIG1h
c2s7IH0KLSAgICB2b2lkIHNldEJpdChpbnQgbWFzaykgeyBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxh
Z3MgfD0gbWFzazsgfQotCi0gICAgaW50IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFnczsKLSAgICB1
bnNpZ25lZCBtX3NwZWNpYWxGYXN0UGF0aENvdW50IHsgMCB9OwotfTsKLQotaW5saW5lIGludCBn
ZXRSZXN1bHRQcm9maWxlQnl0ZWNvZGVPZmZzZXQoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKLXsK
LSAgICByZXR1cm4gcHJvZmlsZS0+Ynl0ZWNvZGVPZmZzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJl
YW0mLCBjb25zdCBKU0M6OlJlc3VsdFByb2ZpbGUmKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0K
ICNlbmRpZiAvLyBWYWx1ZVByb2ZpbGVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNp
b24gMjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAi
QXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
QEAgLTE1OTgsNyArMTU5OSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
QmluYXIKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9iaXRvciB8fCBvcGNvZGVJRCA9PSBvcF9i
aXRhbmQgfHwgb3Bjb2RlSUQgPT0gb3BfYml0eG9yIHx8CiAgICAgICAgIG9wY29kZUlEID09IG9w
X2FkZCB8fCBvcGNvZGVJRCA9PSBvcF9tdWwgfHwgb3Bjb2RlSUQgPT0gb3Bfc3ViIHx8IG9wY29k
ZUlEID09IG9wX2RpdikKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHR5cGVzLnRvSW50
KCkpOworICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoUmVzdWx0UHJvZmlsZSh0eXBlcy5m
aXJzdCgpLCB0eXBlcy5zZWNvbmQoKSkuYml0cygpKTsKIAogICAgIHJldHVybiBkc3Q7CiB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAkocmV2aXNpb24gMjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQXJy
YXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgogI2luY2x1
ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjAzMjkwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdl
bmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RGlyZWN0QXJndW1lbnRzLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklU
QWRkR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiSklUQml0T3JHZW5lcmF0b3IuaCIKQEAgLTU2LDYgKzU3LDcgQEAKICNpbmNsdWRlICJTY29w
ZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKICNp
bmNsdWRlICJXcml0ZUJhcnJpZXJCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewpAQCAtMzM3OSwzMSArMzM4MSw3OSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFs
dWVBZGQoTm9kCiAgICAgICAgIHJpZ2h0UmVncyA9IHJpZ2h0LT5qc1ZhbHVlUmVncygpOwogICAg
IH0KIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgbGVmdEZQUiwgcmlnaHRG
UFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBhdXRvIHN0YXJ0ID0gbV9qaXQubGFiZWwoKTsKIAotICAgIEFTU0VSVChnZW4u
ZGlkRW1pdEZhc3RQYXRoKCkpOwotICAgIGdlbi5lbmRKdW1wTGlzdCgpLmFwcGVuZChtX2ppdC5q
dW1wKCkpOworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1faml0LmNvZGVCbG9jaygpLT5hZGRKSVRB
ZGRJQygpOworICAgIEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+IGFkZElDR2VuZXJhdGlvblN0
YXRlID0gQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT46OmNyZWF0ZSgpOworICAgIFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2ppdC5ncmFwaCgpLmJhc2VsaW5lQ29kZUJsb2NrRm9y
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChu
b2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CisgICAgYWRkSUMtPm1fZ2VuZXJh
dG9yID0gSklUQWRkR2VuZXJhdG9yKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGxlZnRGUFIsIHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBz
Y3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAotICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCku
bGluaygmbV9qaXQpOworICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lID0gYWRkSUMtPmdlbmVyYXRl
SW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0aW9uU3RhdGUpOwogCi0gICAgc2lsZW50U3BpbGxB
bGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAgaWYgKGdlbmVyYXRlZElubGluZSkgeworICAg
ICAgICBBU1NFUlQoIWFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMuZW1wdHko
KSk7CiAKLSAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7Ci0gICAgICAgIGxlZnRSZWdz
ID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+YXNKU1Zh
bHVlKCksIGxlZnRSZWdzKTsKLSAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkp
IHsKLSAgICAgICAgcmlnaHRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZh
bHVlKHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgpLCByaWdodFJlZ3MpOwotICAgIH0KKyAgICAgICAg
VmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4+IHNhdmVQbGFuczsKKyAgICAgICAgc2lsZW50
U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHJlc3VsdFJlZ3MuZ3ByKCkp
OwogCi0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgICAgIGF1dG8gZG9uZSA9IG1faml0LmxhYmVsKCk7CiAK
LSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOwotICAgIG1faml0LmV4Y2Vw
dGlvbkNoZWNrKCk7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFs9XSgpIHsKKyAgICAg
ICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMubGluaygmbV9qaXQp
OworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhTdGFydCA9IG1f
aml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgIGF1dG8gc2xvd1N0YXJ0ID0gbV9qaXQubGFiZWwo
KTsKKworICAgICAgICAgICAgc2lsZW50U3BpbGwoc2F2ZVBsYW5zKTsKKworICAgICAgICAgICAg
YXV0byBpbm5lckxlZnRSZWdzID0gbGVmdFJlZ3M7CisgICAgICAgICAgICBhdXRvIGlubmVyUmln
aHRSZWdzID0gcmlnaHRSZWdzOworICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3Qo
KSkgeworICAgICAgICAgICAgICAgIGlubmVyTGVmdFJlZ3MgPSByZXN1bHRSZWdzOworICAgICAg
ICAgICAgICAgIG1faml0Lm1vdmVWYWx1ZShsZWZ0Q2hpbGQtPmFzSlNWYWx1ZSgpLCBpbm5lckxl
ZnRSZWdzKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkg
eworICAgICAgICAgICAgICAgIGlubmVyUmlnaHRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5tb3ZlVmFsdWUocmlnaHRDaGlsZC0+YXNKU1ZhbHVlKCksIGlubmVyUmln
aHRSZWdzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlv
blN0YXRlLT5tX3Nob3VsZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAgICAgICBhZGRJQ0dl
bmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlQWRkT3B0aW1pemUsIHJlc3VsdFJlZ3MsIGlubmVyTGVmdFJlZ3MsIGlubmVyUmlnaHRSZWdz
LCBhZGRJQyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0
aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZCwgcmVzdWx0UmVncywgaW5uZXJMZWZ0UmVncywgaW5uZXJSaWdodFJlZ3MpOworCisgICAgICAg
ICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOworICAgICAgICAgICAgbV9qaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmbV9qaXQpOwor
CisgICAgICAgICAgICBhdXRvIHNsb3dFbmQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAg
ICBtX2ppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29k
ZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICAgICAgICAgICAg
ICBhZGRJQy0+bV9jb2RlU2l6ZSArPSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHNsb3dF
bmQpLmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHNs
b3dTdGFydCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkg
eworICAgICAgICAgICAgbGVmdCA9IEpTVmFsdWVPcGVyYW5kKHRoaXMsIGxlZnRDaGlsZCk7Cisg
ICAgICAgICAgICBsZWZ0UmVncyA9IGxlZnQtPmpzVmFsdWVSZWdzKCk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgIHJpZ2h0ID0g
SlNWYWx1ZU9wZXJhbmQodGhpcywgcmlnaHRDaGlsZCk7CisgICAgICAgICAgICByaWdodFJlZ3Mg
PSByaWdodC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpbGVudFNwaWxs
QWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blZhbHVlQWRkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICAgICAgc2ls
ZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKKyAgICAgICAgbV9qaXQuZXhjZXB0aW9u
Q2hlY2soKTsKKyAgICB9CisKKyAgICBhdXRvIGRvbmUgPSBtX2ppdC5sYWJlbCgpOworICAgIG1f
aml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICBh
ZGRJQy0+bV9jb2RlU2l6ZSArPSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKGRvbmUpLmV4
ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0KS5l
eGVjdXRhYmxlQWRkcmVzcygpOworICAgIH0pOwogCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGlu
aygmbV9qaXQpOwogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0
dXJuOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAkocmV2aXNpb24gMjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjg1LDYgKzEyODUsMTMgQEAg
cHVibGljOgogCiAKICNpZiBVU0UoSlNWQUxVRTY0KQorCisgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJl
Z3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBKSVRBZGRJQyog
YWRkSUMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5ncHIoKSk7CisgICAg
fQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIodWlkKSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lv
biAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJGVExUaHVua3Mu
aCIKICNpbmNsdWRlICJGVExXZWlnaHRlZFRhcmdldC5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVy
YXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVy
YXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdE9yR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0
WG9yR2VuZXJhdG9yLmgiCkBAIC0xNTI4LDcgKzE1MjksNyBAQCBwcml2YXRlOgogICAgIAogICAg
IHZvaWQgY29tcGlsZVZhbHVlQWRkKCkKICAgICB7Ci0gICAgICAgIGVtaXRCaW5hcnlTbmlwcGV0
PEpJVEFkZEdlbmVyYXRvcj4ob3BlcmF0aW9uVmFsdWVBZGQpOworICAgICAgICBlbWl0QWRkU25p
cHBldCgpOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQpAQCAtODA1OCw2
ICs4MDU5LDkwIEBAIHByaXZhdGU6CiAgICAgICAgIHNldEpTVmFsdWUocGF0Y2hwb2ludCk7CiAg
ICAgfQogCisgICAgdm9pZCBlbWl0QWRkU25pcHBldCgpCisgICAgeworICAgICAgICBOb2RlKiBu
b2RlID0gbV9ub2RlOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVl
KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShub2Rl
LT5jaGlsZDIoKSk7CisKKyAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQobV9zdGF0
ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5yZXN1bHRUeXBlKCkpOworICAgICAgICBTbmlwcGV0
T3BlcmFuZCByaWdodE9wZXJhbmQobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS5yZXN1
bHRUeXBlKCkpOworICAgICAgICAgICAgCisgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hw
b2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50NjQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBl
bmRTb21lUmVnaXN0ZXIobGVmdCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdp
c3RlcihyaWdodCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVl
UmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBv
aW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRp
b25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9CisgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2lu
dEZvckV4Y2VwdGlvbnMocGF0Y2hwb2ludCk7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2Ny
YXRjaFJlZ2lzdGVycyA9IDE7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lz
dGVycyA9IDI7CisgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3Jv
U2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7
CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0Nh
bGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7
CisgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2Ny
YXRjaChqaXQpOworCisgICAgICAgICAgICAgICAgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+
IGV4Y2VwdGlvbnMgPQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVk
dWxlRXhpdENyZWF0aW9uKHBhcmFtcyktPmp1bXBzKGppdCk7CisKKyAgICAgICAgICAgICAgICBK
SVRBZGRJQyogYWRkSUMgPSBqaXQuY29kZUJsb2NrKCktPmFkZEpJVEFkZElDKCk7CisgICAgICAg
ICAgICAgICAgQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT4gYWRkSUNHZW5lcmF0aW9uU3RhdGUg
PSBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPjo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IHN0YXRlLT5ncmFwaC5iYXNlbGluZUNvZGVC
bG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVP
ZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICAgICAg
ICAgIGFkZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmln
aHRPcGVyYW5kLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAorICAgICAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVncyhwYXJhbXNbMl0u
Z3ByKCkpLCBwYXJhbXMuZnBTY3JhdGNoKDApLAorICAgICAgICAgICAgICAgICAgICBwYXJhbXMu
ZnBTY3JhdGNoKDEpLCBwYXJhbXMuZ3BTY3JhdGNoKDApLCBJbnZhbGlkRlBSUmVnLCByZXN1bHRQ
cm9maWxlKTsKKworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBqaXQubGFiZWwoKTsKKyAg
ICAgICAgICAgICAgICBib29sIGdlbmVyYXRlZElubGluZSA9IGFkZElDLT5nZW5lcmF0ZUlubGlu
ZShqaXQsICphZGRJQ0dlbmVyYXRpb25TdGF0ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZ2Vu
ZXJhdGVkSW5saW5lKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghYWRkSUNHZW5lcmF0
aW9uU3RhdGUtPm1fc2xvd1BhdGhKdW1wcy5lbXB0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAg
YXV0byBkb25lID0gaml0LmxhYmVsKCk7CisgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRM
YXRlUGF0aChbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aEp1bXBz
LmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+bV9zbG93UGF0aFN0YXJ0ID0gaml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gc3RhcnQgPSBqaXQubGFiZWwoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCkKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRl
LT5tX3Nob3VsZFNsb3dQYXRoUmVwYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhbGxPcGVyYXRpb24oKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0
LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4Y2VwdGlvbnMuZ2V0KCksIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIHBhcmFtc1swXS5n
cHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBw
YXJhbXNbMl0uZ3ByKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihhZGRJQykpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRo
Q2FsbCA9IGNhbGwuY2FsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKCpzdGF0ZSwgcGFyYW1zLnVu
YXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGljLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBvcGVyYXRpb25WYWx1
ZUFkZCwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xv
d1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmaml0KTsKKworICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSBqaXQubGFiZWwoKTsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZl
cikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNv
ZGUoKmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhZGRJQy0+bV9jb2RlU2l6ZSArPSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlv
bk9mKGVuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9u
T2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAg
ICpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2lu
LnNlbWFudGljLAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgb3Bl
cmF0aW9uVmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgcGFyYW1zWzJdLmdwcigpKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgYXV0byBlbmQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICBq
aXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAg
ICAgICAgICAgIGFkZElDLT5tX2NvZGVTaXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9u
T2YoZW5kKS5leGVjdXRhYmxlQWRkcmVzcygpIC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25P
ZihzdGFydCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pOworCisgICAgICAgIHNldEpTVmFsdWUocGF0Y2hwb2ludCk7CisgICAgfQorCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQmluYXJ5Qml0T3BHZW5lcmF0b3I+CiAgICAgdm9pZCBlbWl0
QmluYXJ5Qml0T3BTbmlwcGV0KEpfSklUT3BlcmF0aW9uX0VKSiBzbG93UGF0aEZ1bmN0aW9uKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2
aXNpb24gMjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA5OSw2ICsyMDk5LDE0IEBAIHB1YmxpYzoKICAgICAgICAg
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVk
SW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQUkluZm86
OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyPihhcmcxLCBhcmcyKTsKKyAgICAg
ICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtb3ZlKGFyZzQs
IEdQUkluZm86OmFyZ3VtZW50R1BSNCk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lO
TElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgVHJ1c3Rl
ZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1
KQogICAgIHsKICAgICAgICAgc2V0dXBUaHJlZVN0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50
R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFI0LCBHUFJJbmZvOjphcmd1bWVudEdQUjU+KGFyZzEs
IGFyZzQsIGFyZzUpOwpAQCAtMjIwNyw2ICsyMjE1LDE1IEBAIHB1YmxpYzoKICAgICB9CiAjZW5k
aWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVn
cyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSk7
CisjZWxzZQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9E
VU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQ
UigpLCBhcmcyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFRy
dXN0ZWRJbW1QdHIgYXJnMykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIyMTUsNiAr
MjIzMiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShF
QUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJn
Mi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOwogI2VuZGlmCiAgICAgfQorCisg
ICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1ZVJlZ3MgYXJnMSwgSlNW
YWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCisg
ICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczLCBhcmc0KTsKKyNlbHNlCisgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBh
eWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BS
KCksIGFyZzMpOworI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2V0dXBBcmd1bWVudHMo
SlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCShy
ZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1MSw2ICszNTEsOCBA
QCBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiBS
ZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2Nh
dGUoVk0mLCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlv
bkVmZm9ydCBlZmZvcnQpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmxvZ0V4ZWN1dGFibGVBbGxvY2F0
aW9uKCkpIHsKQEAgLTM4NSw2ICszODcsMTQgQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5k
bGU+IEV4ZWN1dGFibAogICAgICAgICB9CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
KyAgICAvKgorICAgIHN0YXRpYyBzaXplX3QgcGVha1NpemUgPSAwOworICAgIGF1dG8gcGlkID0g
Z2V0cGlkKCk7CisgICAgTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxs
b2NhdG9yLT5jdXJyZW50U3RhdGlzdGljcygpOworICAgIGRhdGFMb2coIlBJRDogIiwgcGlkLCAg
IiBDdXJyZW50IGV4ZWN1dGFibGUgbWVtb3J5IGJ5dGVzIGFsbG9jYXRlZDogIiwgc3RhdGlzdGlj
cy5ieXRlc0FsbG9jYXRlZCwgIlxuIik7CisgICAgcGVha1NpemUgPSBzdGQ6Om1heChzdGF0aXN0
aWNzLmJ5dGVzQWxsb2NhdGVkLCBwZWFrU2l6ZSk7CisgICAgZGF0YUxvZygiUElEOiAiLCBwaWQs
ICAiIHBlYWsgZXhlY3V0YWJsZSBtZW1vcnkgYnl0ZXMgYWxsb2NhdGVkOiAiLCBwZWFrU2l6ZSwg
IlxuIik7CisgICAgKi8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMzI5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEyICs0MSwxMiBAQAogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvbXBhY3RKSVRDb2RlTWFwLmgiCiAjaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVREaXNhc3Nl
bWJsZXIuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIgogI2luY2x1ZGUg
IkpTSW50ZXJmYWNlSklULmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUENUb0Nv
ZGVPcmlnaW5NYXAuaCIKLSNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiVW51c2Vk
UG9pbnRlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQzNSw3ICs0MzUsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdm9pZCBjb21waWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRp
ZmllciopOwogCiAgICAgICAgIC8vIEFyaXRobWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAg
dm9pZCBlbWl0U3ViMzJDb25zdGFudChpbnQgZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQs
IFJlc3VsdFR5cGUgb3BUeXBlKTsKICAgICAgICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bj
b2RlSUQsIGludCBkc3QsIGludCBvcDEsIGludCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3Qm
IG5vdEludDMyT3AxLCBKdW1wTGlzdCYgbm90SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVy
cyA9IHRydWUsIGJvb2wgb3AySXNJblJlZ2lzdGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0Uo
SlNWQUxVRTMyXzY0KQpAQCAtNzY0LDYgKzc2Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwg
aW50LCBHUFJSZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BS
UmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVz
dWx0UHJvZmlsZSopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSiwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVn
cyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKUnBKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBS
ZXN1bHRQcm9maWxlKiwgSklUQWRkSUMqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1
ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKSVRBZGRJQyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BS
UmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJ
bmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRP
cGVyYXRpb25fRUpPSiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CkBAIC05NTMsNiArOTU1LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyIG1f
cGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyOwogCisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24q
LCBKSVRBZGRJQyo+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDOworICAgICAgICBIYXNoTWFwPElu
c3RydWN0aW9uKiwgTWF0aElDR2VuZXJhdGlvblN0YXRlPiBtX2luc3RydWN0aW9uVG9KSVRBZGRJ
Q0dlbmVyYXRpb25TdGF0ZTsKKwogICAgICAgICBib29sIG1fY2FuQmVPcHRpbWl6ZWQ7CiAgICAg
ICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZE9ySW5saW5lZDsKICAgICAgICAgYm9vbCBtX3Nob3Vs
ZEVtaXRQcm9maWxpbmc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdl
bmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRB
ZGRHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiw2
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgog
CisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCisjaW5j
bHVkZSAiTGlua0J1ZmZlci5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLXZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYg
aml0KQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Citib29sIEpJ
VEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dl
bmVyYXRpb25TdGF0ZSYgc3RhdGUpCit7CisgICAgLy8gV2UgZGVmYXVsdCB0byBndWVzc2luZyBp
bnQzMgorICAgIE9ic2VydmVkVHlwZSBsaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsK
KyAgICBPYnNlcnZlZFR5cGUgcmhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAg
c3RhdGljIGRvdWJsZSBudW1JQ3MgPSAwOworICAgIHN0YXRpYyBkb3VibGUgbnVtSW50cyA9IDA7
CisgICAgbnVtSUNzKys7CisgICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkgeworICAgICAgICBsaHMg
PSBtX3Jlc3VsdFByb2ZpbGUtPmxoc09ic2VydmVkVHlwZSgpOworICAgICAgICByaHMgPSBtX3Jl
c3VsdFByb2ZpbGUtPnJoc09ic2VydmVkVHlwZSgpOworICAgICAgICBpZiAobGhzLmlzRW1wdHko
KSB8fCByaHMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBsaHMgPSBPYnNlcnZlZFR5cGUoKS53
aXRoSW50MzIoKTsKKyAgICAgICAgICAgIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGxocy5pc09ubHlOb25OdW1iZXIoKSAmJiBy
aHMuaXNPbmx5Tm9uTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgo
bGhzLmlzT25seUludDMyKCkgfHwgbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgJiYgKHJo
cy5pc09ubHlJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSkgeworICAg
ICAgICBzdGF0ZS5tX3Nob3VsZFNsb3dQYXRoUmVwYXRjaCA9IHRydWU7CisKKyAgICAgICAgQVNT
RVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0Nv
bnN0SW50MzIoKSk7CisgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkK
KyAgICAgICAgICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90
SW50MzIobV9sZWZ0KSk7CisgICAgICAgIGlmICghbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMy
KCkpCisgICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdEludDMyKG1fcmlnaHQpKTsKKworICAgICAgICBpZiAobV9sZWZ0T3BlcmFuZC5pc0NvbnN0
SW50MzIoKSB8fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgeworICAgICAgICAgICAg
SlNWYWx1ZVJlZ3MgdmFyID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmlnaHQg
OiBtX2xlZnQ7CisgICAgICAgICAgICBpbnQzMl90IGNvbnN0VmFsdWUgPSBtX2xlZnRPcGVyYW5k
LmlzQ29uc3RJbnQzMigpID8gbV9sZWZ0T3BlcmFuZC5hc0NvbnN0SW50MzIoKSA6IG1fcmlnaHRP
cGVyYW5kLmFzQ29uc3RJbnQzMigpOworICAgICAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBz
LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFyLnBheWxv
YWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdFZhbHVlKSwgbV9zY3JhdGNoR1BSKSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVu
ZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2Fk
R1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUikpOworICAgICAgICBqaXQu
Ym94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7CisgICAgICAgIG51bUludHMrKzsKKyAg
ICAgICAgLy9kYXRhTG9nKCJJQyBhcyBpbnQgcGVyY2VudGFnZTogIiwgbnVtSW50cy9udW1JQ3Ms
ICJcbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0ZS5tX3Nob3Vs
ZFNsb3dQYXRoUmVwYXRjaCA9IHRydWU7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVu
ZEp1bXBMaXN0OworICAgIGJvb2wgcmVzdWx0ID0gZ2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1
bXBMaXN0LCBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMpOworICAgIGlmIChyZXN1bHQpCisgICAgICAg
IGVuZEp1bXBMaXN0LmxpbmsoJmppdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBK
SVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIENDYWxs
SGVscGVyczo6SnVtcExpc3QmIGVuZEp1bXBMaXN0LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBz
bG93UGF0aEp1bXBMaXN0KQogewogICAgIEFTU0VSVChtX3NjcmF0Y2hHUFIgIT0gSW52YWxpZEdQ
UlJlZyk7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQUiAhPSBtX2xlZnQucGF5bG9hZEdQUigpKTsK
QEAgLTQzLDEyICs5OCw4IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KEMKIAogICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdo
dE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIAotICAgIGlmICghbV9sZWZ0T3BlcmFuZC5t
aWdodEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkgewotICAg
ICAgICBBU1NFUlQoIW1fZGlkRW1pdEZhc3RQYXRoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIG1fZGlkRW1pdEZhc3RQYXRoID0gdHJ1ZTsKKyAgICBpZiAoIW1fbGVmdE9wZXJhbmQu
bWlnaHRCZU51bWJlcigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigp
IHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CiAgICAgICAgIEpTVmFsdWVSZWdz
IHZhciA9IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgPyBtX3JpZ2h0IDogbV9sZWZ0OwpA
QCAtNTgsMjAgKzEwOSwyMCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aChDCiAgICAgICAgIC8vIFRyeSB0byBkbyBpbnRWYXIgKyBpbnRDb25zdGFudC4KICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wIG5vdEludDMyID0gaml0LmJyYW5jaElmTm90SW50MzIodmFyKTsK
IAotICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2Fs
bEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMy
KGNvbnN0T3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIHNsb3dQ
YXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93
LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0T3ByLmFzQ29uc3RJ
bnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmJveEludDMyKG1fc2NyYXRj
aEdQUiwgbV9yZXN1bHQpOwotICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgp
KTsKKyAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgIGlm
ICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRo
SnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVHJ5IHRvIGRvIGRvdWJsZVZhciArIGRv
dWJsZShpbnRDb25zdGFudCkuCiAgICAgICAgIG5vdEludDMyLmxpbmsoJmppdCk7CiAgICAgICAg
IGlmICghdmFyT3ByLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0
aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIodmFyLCBtX3NjcmF0Y2hHUFIp
KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51
bWJlcih2YXIsIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRl
c3RydWN0aXZlKHZhciwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIsIG1fc2NyYXRjaEZQUik7CiAK
QEAgLTg5LDIyICsxNDAsMjQgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoQwogICAgICAgICBsZWZ0Tm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsK
ICAgICAgICAgcmlnaHROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKIAot
ICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhl
bHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxvYWRHUFIo
KSwgbV9zY3JhdGNoR1BSKSk7CisKKyAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigp
LCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQuYm94
SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Ci0gICAgICAgIG1fZW5kSnVtcExpc3QuYXBw
ZW5kKGppdC5qdW1wKCkpOworICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7
CisKIAogICAgICAgICBpZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewotICAgICAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKLSAgICAgICAgICAg
IG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQocmlnaHROb3RJbnQpOwotICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobGVmdE5vdEludCk7Cisg
ICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIGxlZnROb3RJbnQubGluaygm
aml0KTsKICAgICAgICAgaWYgKCFtX2xlZnRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQot
ICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIobV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3Qu
YXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikpOwogICAg
ICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAg
ICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdo
dCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChq
aXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAg
aml0LnVuYm94RG91YmxlTm9uRGVzdHJ1Y3RpdmUobV9sZWZ0LCBtX2xlZnRGUFIsIG1fc2NyYXRj
aEdQUiwgbV9zY3JhdGNoRlBSKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHJpZ2h0SXNE
b3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKQEAgLTExNCw3ICsxNjcsNyBA
QCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICAgICAgcmln
aHROb3RJbnQubGluaygmaml0KTsKICAgICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5kZWZpbml0
ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAg
c2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1f
c2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShtX2xlZnQu
cGF5bG9hZEdQUigpLCBtX2xlZnRGUFIpOwogCkBAIC0xMzIsNiArMTg1LDggQEAgdm9pZCBKSVRB
ZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBtX3Jlc3VsdFByb2ZpbGUt
PmVtaXRTZXREb3VibGUoaml0KTsKICAgICAgICAgCiAgICAgaml0LmJveERvdWJsZShtX2xlZnRG
UFIsIG1fcmVzdWx0KTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAko
cmV2aXNpb24gMjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5l
cmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDE4IEBACiAjaWYgRU5BQkxFKEpJ
VCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTbmlwcGV0T3BlcmFuZC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3Ry
dWN0IE1hdGhJQ0dlbmVyYXRpb25TdGF0ZTsKKwogY2xhc3MgSklUQWRkR2VuZXJhdG9yIHsKIHB1
YmxpYzoKKyAgICBKSVRBZGRHZW5lcmF0b3IoKQorICAgIHsgfQorCiAgICAgSklUQWRkR2VuZXJh
dG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJh
bmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1
ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQ
UlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKQEAgLTUzLDExICs1OSw4IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFt
X3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQogCi0gICAgdm9pZCBnZW5lcmF0
ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwotCi0gICAgYm9vbCBkaWRFbWl0RmFzdFBhdGgoKSBj
b25zdCB7IHJldHVybiBtX2RpZEVtaXRGYXN0UGF0aDsgfQotICAgIENDYWxsSGVscGVyczo6SnVt
cExpc3QmIGVuZEp1bXBMaXN0KCkgeyByZXR1cm4gbV9lbmRKdW1wTGlzdDsgfQotICAgIENDYWxs
SGVscGVyczo6SnVtcExpc3QmIHNsb3dQYXRoSnVtcExpc3QoKSB7IHJldHVybiBtX3Nsb3dQYXRo
SnVtcExpc3Q7IH0KKyAgICBib29sIGdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYsIE1hdGhJ
Q0dlbmVyYXRpb25TdGF0ZSYpOworICAgIGJvb2wgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBl
cnMmLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCk7CiAKIHByaXZhdGU6CiAgICAgU25pcHBldE9wZXJh
bmQgbV9sZWZ0T3BlcmFuZDsKQEAgLTcwLDEwICs3Myw2IEBAIHByaXZhdGU6CiAgICAgR1BSUmVn
IG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwogICAgIFJlc3VsdFByb2Zp
bGUqIG1fcmVzdWx0UHJvZmlsZTsKLSAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2Ug
fTsKLQotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKLSAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wTGlzdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFy
aXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAjaWYgRU5BQkxF
KEpJVCkKICNpbmNsdWRlICJKSVQuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpJ
VEFkZEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkpJVEJpdE9yR2VuZXJhdG9yLmgiCkBAIC00OCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUmVz
dWx0VHlwZS5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogCisjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNjgwLDcgKzY4Myw3IEBAIHZvaWQgSklU
OjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQo
Y3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVz
KFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCku
bGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtNjk1LDEw
ICs2OTgsMTQgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAg
IEdQUlJlZyBzY3JhdGNoR1BSID0gcmVnVDQ7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJl
Z1QyOwogI2VuZGlmCisgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hHUFIpOworICAgIFVOVVNFRF9Q
QVJBTShzY3JhdGNoRlBSKTsKIAogICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyOwotICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFBy
b2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0
KTsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIHJlc3VsdFByb2Zp
bGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fYnl0ZWNv
ZGVPZmZzZXQpOworICAgICAgICBBU1NFUlQocmVzdWx0UHJvZmlsZSk7CisgICAgfQogCiAgICAg
U25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9w
ZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTcxMCw0NiArNzE3LDUxIEBA
IHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKIAogICAgIFJFTEVBU0Vf
QVNTRVJUKCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkgfHwgIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkp
OwogCisgICAgYXV0byBzdGFydCA9IGxhYmVsKCk7CisKICAgICBpZiAoIWxlZnRPcGVyYW5kLmlz
Q29uc3QoKSkKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsK
ICAgICBpZiAoIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCi0gICAgSklUQWRkR2VuZXJhdG9yIGdlbihsZWZ0
T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAot
ICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQ
cm9maWxlKTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2NvZGVCbG9jay0+YWRkSklUQWRkSUMo
KTsKIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKKyAgICBtX2luc3RydWN0aW9u
VG9KSVRBZGRJQy5hZGQoY3VycmVudEluc3RydWN0aW9uLCBhZGRJQyk7CisgICAgTWF0aElDR2Vu
ZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFk
ZElDR2VuZXJhdGlvblN0YXRlLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIE1hdGhJQ0dlbmVyYXRp
b25TdGF0ZSgpKS5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICBpZiAoZ2VuLmRpZEVtaXRGYXN0UGF0
aCgpKSB7Ci0gICAgICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxpbmsodGhpcyk7Ci0gICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKLSAgICAgICAgCi0gICAg
ICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXBMaXN0KCkpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgQVNTRVJU
KGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHRQcm9m
aWxlKSB7Ci0gICAgICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAg
ICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgICAg
ICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKyAgICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBK
SVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncywgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQ
UiwgcmVzdWx0UHJvZmlsZSk7CisKKyAgICBib29sIGdlbmVyYXRlZElubGluZUNvZGUgPSBhZGRJ
Qy0+Z2VuZXJhdGVJbmxpbmUoKnRoaXMsIGFkZElDR2VuZXJhdGlvblN0YXRlKTsKKyAgICBpZiAo
IWdlbmVyYXRlZElubGluZUNvZGUpIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3Qo
KSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Cisg
ICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisKKyAgICAgICAgaWYgKHJlc3VsdFByb2Zp
bGUpCiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwotICAgICAg
ICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICAgICAgc2xvd1Bh
dGhDYWxsLmNhbGwoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJlZ3Ms
IHJpZ2h0UmVncyk7CisgICAgfSBlbHNlCisgICAgICAgIGFkZFNsb3dDYXNlKGFkZElDR2VuZXJh
dGlvblN0YXRlLm1fc2xvd1BhdGhKdW1wcyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihy
ZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIGF1dG8gZW5kID0gbGFiZWwoKTsKKyAgICBhZGRMaW5r
VGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgYWRkSUMtPm1fY29k
ZVNpemUgKz0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihlbmQpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRk
cmVzcygpOworICAgIH0pOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIpCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nh
c2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKIAorICAgIE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRp
b25TdGF0ZS5maW5kKGN1cnJlbnRJbnN0cnVjdGlvbiktPnZhbHVlOworICAgIGFkZElDR2VuZXJh
dGlvblN0YXRlLm1fc2xvd1BhdGhTdGFydCA9IGxhYmVsKCk7CisKICAgICBpbnQgcmVzdWx0ID0g
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9u
WzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZy
b21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgT3BlcmFuZFR5cGVz
IHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAt
NzY5LDE4ICs3ODEsMzEgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiog
YwogICAgIGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpCiAgICAgICAgIHJpZ2h0
T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDIpKTsKIAorICAg
IGF1dG8gc3RhcnQgPSBsYWJlbCgpOworCisgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkK
KyAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgaWYgKHJp
Z2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3Ay
LCByaWdodFJlZ3MpOworCisgICAgSklUQWRkSUMqIGFkZElDID0gbV9pbnN0cnVjdGlvblRvSklU
QWRkSUMuZ2V0KGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxp
bmcoKSkgewotICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKLSAgICAgICAgaWYgKHJpZ2h0
T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MiwgcmlnaHRSZWdzKTsKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1f
Y29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOwotICAgICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxl
ZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwotICAgICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgSklU
U2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3df
cGF0aF9hZGQpOwotICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwotICAgIH0KKyAgICAgICAg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5yZXN1bHRQcm9maWxl
Rm9yQnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIEFTU0VSVChyZXN1
bHRQcm9maWxlKTsKKyAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLm1fc2hvdWxkU2xv
d1BhdGhSZXBhdGNoKQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0
aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZSwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSwgYWRkSUMpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRo
Q2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVn
cywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgfSBlbHNlCisgICAg
ICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdz
LCBhZGRJQyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3Mp
OworICAgIGF1dG8gZW5kID0gbGFiZWwoKTsKKworICAgIGFkZExpbmtUYXNrKFs9XSAoTGlua0J1
ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElD
R2VuZXJhdGlvblN0YXRlID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUu
ZmluZChjdXJyZW50SW5zdHJ1Y3Rpb24pLT52YWx1ZTsKKyAgICAgICAgYWRkSUMtPmZpbmFsaXpl
SW5saW5lQ29kZShhZGRJQ0dlbmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgIGFk
ZElDLT5tX2NvZGVTaXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVj
dXRhYmxlQWRkcmVzcygpIC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC03ODgsNyArODEzLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUlu
dChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CkBAIC04MDUs
NyArODMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogCiAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3Vs
ZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5l
bnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICByZXN1bHRQcm9m
aWxlID0gbV9jb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2J5dGVj
b2RlT2Zmc2V0KTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0
KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBA
IC04NjEsNyArODg2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJy
ZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAg
IGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBl
cyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6
OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgp
KTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CkBAIC04NzksNyArOTA0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVs
KEluc3RydWN0aW9uKiBjdXJyZQogCiAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0
UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZz
ZXQpOworICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVG
b3JCeXRlY29kZU9mZnNldChtX2J5dGVjb2RlT2Zmc2V0KTsKIAogICAgIFNuaXBwZXRPcGVyYW5k
IGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3Bl
cmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC05MzAsNyArOTU1LDcgQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
OwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoUmVzdWx0
UHJvZmlsZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1
bHRUeXBlKCksIFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUu
b3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNW
YWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CkBAIC05NTUsNyArOTgwLDcg
QEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgICAgICAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAgICAgaWYgKHJpZ2h0
T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAgICAgICAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3Vs
dFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zm
c2V0KTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2Nr
LT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9ieXRlY29kZU9mZnNldCk7CiAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewpAQCAtOTY5LDcg
Kzk5NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBp
bnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3Ax
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVy
YW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAg
T3BlcmFuZFR5cGVzIHR5cGVzKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBSZXN1bHRQcm9maWxlOjpmcm9tSW50
KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDApOwpAQCAtOTg3LDcgKzEwMTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1
Y3Rpb24qIGN1cnJlCiAKICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0
cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICByZXN1bHRQcm9maWxl
ID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7Cisg
ICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9w
ZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5
cGVzLnNlY29uZCgpKTsKQEAgLTEwMjMsNyArMTA0OCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9zdWIoSW5zdHJ1Y3Rpb24qIGMKICNlbmRpZgogCiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxp
bmcoKSkgewotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxv
Y2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIFJlc3Vs
dFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Ms
IHJlc3VsdFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwg
cmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklURGl2R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzI5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmls
ZS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWF0aENvbW1v
bi5oIgogCkBAIC0xMjksNyArMTMwLDcgQEAgdm9pZCBKSVREaXZHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoQwogICAgIG5vdERvdWJsZVplcm8ubGluaygmaml0KTsKICNlbmRpZgogICAgIGlm
IChtX3Jlc3VsdFByb2ZpbGUpCi0gICAgICAgIGppdC5hZGQzMihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxl
LT5hZGRyZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpKSk7CisgICAgICAgIGppdC5vcjMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6OnNwZWNpYWxGYXN0UGF0aEJp
dCksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVz
c09mQml0cygpKSk7CiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDIw
MzI5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MTYsNyArNDE2LDE1IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb24pOwogfQogCi1pbmxpbmUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBK
U1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBK
U1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQoreworICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7Cisg
ICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlvbiwgSlNWYWx1
ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKHJlc3VsdFByb2ZpbGUpKTsKICAgICBDYWxsIGNh
bGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CkBAIC00MjQsNiAr
NDMyLDIyIEBAIGlubGluZSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGUKICAgICBy
ZXR1cm4gY2FsbDsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnBKYWljIG9wZXJhdGlvbiwgSlNWYWx1
ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIocmVzdWx0UHJvZmls
ZSksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7Cisg
ICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1Zh
bHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFk
ZElDKiBhZGRJQykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJn
MiwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAg
ICByZXR1cm4gY2FsbDsKK30KKwogI2lmIFVTRShKU1ZBTFVFNjQpCiBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSlpa
IG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIGludDMyX3QgYXJnMiwgaW50MzJfdCBhcmczKQogewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEpJVEFkZElDX2gKKyNkZWZpbmUgSklUQWRkSUNfaAorCisjaWYgRU5BQkxF
KEpJVCkKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVEFkZEdlbmVy
YXRvci5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJTbmlwcGV0T3BlcmFu
ZC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgTGlua0J1ZmZlcjsKKworc3RydWN0IE1h
dGhJQ0dlbmVyYXRpb25TdGF0ZSB7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZmFzdFBh
dGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9mYXN0UGF0aEVuZDsKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9zbG93UGF0aFN0YXJ0OworICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIG1fc2xvd1BhdGhDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBtX3Ns
b3dQYXRoSnVtcHM7CisgICAgYm9vbCBtX3Nob3VsZFNsb3dQYXRoUmVwYXRjaDsKK307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3JUeXBlPgorY2xhc3MgSklUTWF0aElDIHsKK3B1Ymxp
YzoKKyAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lTG9jYXRpb24oKSB7IHJldHVybiBtX2lubGlu
ZVN0YXJ0LmxhYmVsQXRPZmZzZXQobV9pbmxpbmVTaXplKTsgfQorICAgIENvZGVMb2NhdGlvbkxh
YmVsIHNsb3dQYXRoU3RhcnRMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQubGFiZWxB
dE9mZnNldChtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0KTsgfQorICAgIENvZGVMb2Nh
dGlvbkNhbGwgc2xvd1BhdGhDYWxsTG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmNh
bGxBdE9mZnNldChtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbik7IH0KKwor
ICAgIGJvb2wgZ2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRp
b25TdGF0ZSYgc3RhdGUpCisgICAgeworICAgICAgICBzdGF0ZS5tX2Zhc3RQYXRoU3RhcnQgPSBq
aXQubGFiZWwoKTsKKyAgICAgICAgYm9vbCByZXN1bHQgPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUlu
bGluZShqaXQsIHN0YXRlKTsKKyAgICAgICAgc3RhdGUubV9mYXN0UGF0aEVuZCA9IGppdC5sYWJl
bCgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHZvaWQgZ2VuZXJhdGVP
dXRPZkxpbmUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgRnVuY3Rpb25QdHIgY2FsbFJl
cGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgLy8gV2UgcmV3aXJlIHRvIHRoZSBhbHRlcm5hdGUg
cmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBjYW4gYWxsb2NhdGUgdGhlIG91dCBvZiBs
aW5lIHBhdGgKKyAgICAgICAgLy8gYmVjYXVzZSBpZiB3ZSBmYWlsIGFsbG9jYXRpbmcgdGhlIG91
dCBvZiBsaW5lIHBhdGgsIHdlIGRvbid0IHdhbnQgdG8gdHJ5IHRvIGFsbG9jYXRlIGl0CisgICAg
ICAgIC8vIGFnYWluLiBJdCdzIG5vdCBpbXBvcnRhbnQgZW5vdWdoIHRvIHdhcnJhbnQgdGhhdC4K
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hDYWxsKHNsb3dQYXRoQ2FsbExvY2F0aW9u
KCksIGNhbGxSZXBsYWNlbWVudCk7CisKKyAgICAgICAgeworICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wTGlzdCBlbmRKdW1wTGlzdDsgCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd1BhdGhKdW1wTGlzdDsgCisgICAgICAgICAgICBib29sIGVtaXR0ZWRGYXN0UGF0aCA9
IG1fZ2VuZXJhdG9yLmdlbmVyYXRlRmFzdFBhdGgoaml0LCBlbmRKdW1wTGlzdCwgc2xvd1BhdGhK
dW1wTGlzdCk7CisgICAgICAgICAgICBpZiAoIWVtaXR0ZWRGYXN0UGF0aCkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7
CisgICAgICAgICAgICAgCisgICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sIGpp
dCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICAgICAgaWYgKGxp
bmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhlbmRKdW1wTGlzdCwgZG9uZUxvY2F0aW9uKCkp
OworICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dQYXRoSnVtcExpc3QsIHNsb3dQYXRo
U3RhcnRMb2NhdGlvbigpKTsKKworICAgICAgICAgICAgbV9jb2RlID0gRklOQUxJWkVfQ09ERV9G
T1IoCisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBsaW5rQnVmZmVyLCAoIkpJVE1hdGhJQzog
Z2VuZXJhdGluZyBvdXQgb2YgbGluZSBJQyBzbmlwcGV0IikpOworICAgICAgICB9CisKKyAgICAg
ICAgeworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisgICAg
ICAgICAgICBhdXRvIGp1bXAgPSBqaXQuanVtcCgpOworICAgICAgICAgICAgLy8gV2UgZG9uJ3Qg
bmVlZCBhIG5vcCBzbGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBpbmcgaW50
byB0aGUgbWlkZGxlIG9mIGFuIElDLgorICAgICAgICAgICAgYm9vbCBuZWVkc0JyYW5jaENvbXBh
Y3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIG1f
aW5saW5lU3RhcnQuZGF0YUxvY2F0aW9uKCksIGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2Rl
U2l6ZSgpLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkLCBuZWVkc0JyYW5jaENvbXBhY3Rpb24p
OworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOworICAg
ICAgICAgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKG1fY29kZS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICAgICAgRklOQUxJWkVfQ09ERShs
aW5rQnVmZmVyLCAoIkpJVE1hdGhJQzogbGlua2luZyBjb25zdGFudCBqdW1wIHRvIG91dCBvZiBs
aW5lIGppdCBhZGQgZ2VuZXJhdG9yIikpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBm
aW5hbGl6ZUlubGluZUNvZGUoY29uc3QgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlu
a0J1ZmZlciYgbGlua0J1ZmZlcikKKyAgICB7CisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHN0
YXJ0ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLm1fZmFzdFBhdGhTdGFydCk7CisgICAg
ICAgIG1faW5saW5lU3RhcnQgPSBzdGFydDsKKworICAgICAgICBpbnQzMl90IGlubGluZVNpemUg
PSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAg
c3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoRW5kKSk7CisgICAg
ICAgIEFTU0VSVChpbmxpbmVTaXplID4gMCk7CisgICAgICAgIG1faW5saW5lU2l6ZSA9IGlubGlu
ZVNpemU7CisKKyAgICAgICAgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24g
PSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAg
c3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRoQ2FsbCkpOworICAg
ICAgICBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0ID0gTWFjcm9Bc3NlbWJsZXI6OmRp
ZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2Yoc3RhdGUubV9zbG93UGF0aFN0YXJ0KSk7CisgICAgfQorCisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIG1fY29kZTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbCBtX2lubGluZVN0YXJ0
OworICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKKyAgICBpbnQzMl90IG1faW5s
aW5lU2l6ZTsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0
aW9uOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydDsKKworICAg
IHNpemVfdCBtX2NvZGVTaXplIHsgMCB9OworCisgICAgc2l6ZV90IGNvZGVTaXplKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2NvZGVTaXplICsgbV9jb2RlLnNpemUoKTsKKyAgICB9CisKKyAg
ICBHZW5lcmF0b3JUeXBlIG1fZ2VuZXJhdG9yOworfTsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklU
QWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUQWRkSUNfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgSklUTWF0aElDRm9yd2FyZHNfaAorI2RlZmluZSBKSVRNYXRoSUNG
b3J3YXJkc19oCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsKKwordGVtcGxh
dGUgPHR5cGVuYW1lIEdlbmVyYXRvcj4gY2xhc3MgSklUTWF0aElDOworY2xhc3MgSklUQWRkR2Vu
ZXJhdG9yOworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJVEFkZElDOwor
Cit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAv
LyBKSVRNYXRoSUNGb3J3YXJkc19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE11bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDggQEAKIAogI2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIK
KwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYgaml0KQpAQCAtMTQ5LDE4ICsxNTEsMTggQEAgdm9pZCBKSVRNdWxH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBqaXQubW92ZURvdWJsZVRvNjQo
bV9sZWZ0RlBSLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXAgbm90TmVnYXRpdmVaZXJvID0gaml0LmJyYW5jaDY0KENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQobmVn
YXRpdmVaZXJvQml0cykpOwogCi0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29s
dXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAg
aml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6TmVnWmVy
b0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+
YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0
Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKLSAgICAgICAg
aml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVn
WmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmls
ZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJz
OjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAog
ICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAg
ICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0Y2hH
UFIpOwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMigweDdmZiksIG1fc2Ny
YXRjaEdQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub0ludDUyT3ZlcmZsb3cgPSBq
aXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbk9yRXF1YWwsIG1fc2NyYXRjaEdQUiwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMHg0MzEpKTsKIAotICAgICAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwg
Q0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZG
bGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJl
c3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVz
cyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAgICAgICBub0ludDUyT3Zl
cmZsb3cubGluaygmaml0KTsKIAogICAgICAgICBkb25lLmxpbmsoJmppdCk7CkBAIC0xNzEsMTgg
KzE3MywxOCBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAg
ICAgIG5vdE5lZ2F0aXZlWmVyby5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90
RXF1YWwsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
MCkpKTsKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxI
ZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQudGFnR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKG5lZ2F0aXZlWmVyb0JpdHMgPj4gMzIpKSk7CiAKLSAgICAgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxh
Z3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
bV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5r
KCZqaXQpOwotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3Vi
bGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJl
c3NPZkJpdHMoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQUigpLCBtX3Nj
cmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUy
IC0gMzIpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJ
bW0zMigweDdmZiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBu
b0ludDUyT3ZlcmZsb3cgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbk9yRXF1
YWwsIG1fc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMHg0MzEpKTsKICAg
ICAgICAgCi0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3Vs
dFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyht
X3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mQml0
cygpKSk7CiAKICAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQobm9JbnQ1Mk92ZXJmbG93KTsK
ICAgICAgICAgaWYgKG1fc2NyYXRjaEdQUiA9PSBtX3Jlc3VsdC50YWdHUFIoKSB8fCBtX3NjcmF0
Y2hHUFIgPT0gbV9yZXN1bHQucGF5bG9hZEdQUigpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxl
LmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQ
YXRocy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5oIgpAQCAtMjI0NywyNyArMjI0
OCwxMDMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdAogICAgIHJl
dHVybiBqc1N0cmluZyhleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KS5zdHJpbmco
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKQorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9m
aWxlZEFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAgICAgCisgICAgZXhlYy0+
Y29kZUJsb2NrKCktPmR1bXBKSVRBZGRJQ1N0YXRzKCk7CisKICAgICBKU1ZhbHVlIG9wMSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKTsKICAgICAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRk
KGV4ZWMsIG9wMSwgb3AyKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHByb2ZpbGVkQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmls
ZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKKworICAgIEFTU0VSVChyZXN1bHRQcm9maWxlKTsKKyAgICByZXN1bHRQcm9maWxl
LT5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKKworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNB
ZGQoZXhlYywgb3AxLCBvcDIpOworICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNz
KHJlc3VsdCk7CisKKyAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsK
KworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAg
cmV0dXJuIHVucHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7Cit9CisK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3RQcm9maWxl
ZE5vdE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSosIEpJVEFkZElDKikKK3sK
KyAgICByZXR1cm4gdW5wcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsK
K30KKwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKIHsKKyAgICBy
ZXR1cm4gcHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgcmVzdWx0UHJv
ZmlsZSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVB
ZGRQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJv
ZmlsZSwgSklUQWRkSUMqIGFkZElDKQorewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogICAgIAogICAgIEpTVmFs
dWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgQVNTRVJUKHJlc3VsdFByb2ZpbGUp
OworICAgIHJlc3VsdFByb2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMob3AxLCBvcDIpOworICAgIGF1
dG8gbm9uT3B0aW1pemVWYXJpYW50ID0gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vbk9wdGlt
aXplOworICAgIGFkZElDLT5nZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygp
LCBub25PcHRpbWl6ZVZhcmlhbnQpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQo
ZXhlYywgb3AxLCBvcDIpOwogICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJl
c3VsdCk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vbk9wdGlt
aXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSwgSklUQWRkSUMq
KQoreworICAgIHJldHVybiBwcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3Ay
LCByZXN1bHRQcm9maWxlKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUFkZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqIGFkZElDKQorewor
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGV4ZWMpOworCisgICAgYXV0byBub25PcHRpbWl6ZVZhcmlhbnQgPSBvcGVyYXRpb25W
YWx1ZUFkZE5vbk9wdGltaXplOworICAgIGFkZElDLT5nZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4
ZWMtPmNvZGVCbG9jaygpLCBub25PcHRpbWl6ZVZhcmlhbnQpOworCisgICAgZXhlYy0+Y29kZUJs
b2NrKCktPmR1bXBKSVRBZGRJQ1N0YXRzKCk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBv
cDEsIG9wMikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlQWRkTm9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopCit7CisgICAgVk0qIHZt
ID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7
CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7CisKKyAgICBleGVjLT5j
b2RlQmxvY2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBB
cnJheVByb2ZpbGU7CiBjbGFzcyBDYWxsTGlua0luZm87CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFz
cyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRHZW5lcmF0b3I7CiBjbGFzcyBKU0FycmF5OwogY2xh
c3MgSlNGdW5jdGlvbjsKIGNsYXNzIEpTTGV4aWNhbEVudmlyb25tZW50OwpAQCAtNTgsNiArNTks
OSBAQCBzdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1l
OwogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yVHlwZT4gY2xhc3MgSklUTWF0aElDOwor
dHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKwogZXh0ZXJuICJD
IiB7CiAKIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwpAQCAtODEsNiArODUsNyBAQCB0eXBlZGVm
IGNoYXIqIFVudXNlZFB0cjsKICAgICBJY2Y6IElubGluZUNhbGxGcmFtZSoKICAgICBJZGM6IGNv
bnN0IElkZW50aWZpZXIqCiAgICAgSjogRW5jb2RlZEpTVmFsdWUKKyAgICBKYWljOiBKSVRBZGRJ
QyoKICAgICBKY3A6IGNvbnN0IEpTVmFsdWUqCiAgICAgSnNjOiBKU1Njb3BlKgogICAgIEpzZjog
SlNGdW5jdGlvbioKQEAgLTEzNCw2ICsxMzksOCBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChK
SVRfT1BFUkFUSU9OICpKCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpK
X0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJ
T04gKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklU
X09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmlsZSopOwordHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKUnBKYWljKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFJlc3VsdFByb2ZpbGUqLCBKSVRBZGRJ
QyopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRp
b25fRUpKSmFpYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBK
SVRBZGRJQyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRP
cGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShF
eGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRl
KiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopOwpAQCAtNDA4LDcgKzQxNSwx
MiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5lCiBKU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3RhdGUqLCBpbnQzMl90KTsK
IAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlQWRkTm90UHJvZmlsZWROb3RPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiwgSklU
QWRkSUMqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqLCBKSVRBZGRJQyopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqLCBKSVRBZGRJQyopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRPcHRp
bWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJ
QyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVNdWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
U3ViKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3ViR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzI5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVy
YXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisKICNpZiBFTkFCTEUoSklUKQog
CiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dERhdGEuY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvZGVUeXBlLmgiCkBAIC0yMjMsNiArMjI0LDQ3IEBAIHZv
aWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogI2VuZGlmCiAKICAgICBBU1NFUlQo
U3RyaW5nSW1wbDo6c19oYXNoRmxhZzhCaXRCdWZmZXIgPT0gOCk7CisKKyAgICB7CisgICAgICAg
IHVpbnQzMl90IGJpdHMgPSAweDEyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOwor
ICAgICAgICBSZXN1bHRQcm9maWxlIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIHJlc3VsdFByb2Zp
bGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZS5yaHNTYXdJbnQzMigpOwor
ICAgICAgICBBU1NFUlQocmVzdWx0UHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFT
U0VSVChSZXN1bHRQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25s
eUludDMyKCkpOworICAgICAgICBBU1NFUlQoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChiaXRzKS5y
aHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1
aW50MzJfdCBiaXRzID0gMHgyMjAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAg
ICAgICAgUmVzdWx0UHJvZmlsZSByZXN1bHRQcm9maWxlOworICAgICAgICByZXN1bHRQcm9maWxl
Lmxoc1Nhd051bWJlcigpOworICAgICAgICByZXN1bHRQcm9maWxlLnJoc1Nhd0ludDMyKCk7Cisg
ICAgICAgIEFTU0VSVChyZXN1bHRQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNT
RVJUKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5
TnVtYmVyKCkpOworICAgICAgICBBU1NFUlQoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChiaXRzKS5y
aHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1
aW50MzJfdCBiaXRzID0gMHgyNDAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAg
ICAgICAgUmVzdWx0UHJvZmlsZSByZXN1bHRQcm9maWxlOworICAgICAgICByZXN1bHRQcm9maWxl
Lmxoc1Nhd051bWJlcigpOworICAgICAgICByZXN1bHRQcm9maWxlLnJoc1Nhd051bWJlcigpOwor
ICAgICAgICBBU1NFUlQocmVzdWx0UHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFT
U0VSVChSZXN1bHRQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25s
eU51bWJlcigpKTsKKyAgICAgICAgQVNTRVJUKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoYml0cyku
cmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgIH0KKyAgICB7CisgICAgICAg
IHVpbnQzMl90IGJpdHMgPSAweDE0MDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOwor
ICAgICAgICBSZXN1bHRQcm9maWxlIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIHJlc3VsdFByb2Zp
bGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgcmVzdWx0UHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsK
KyAgICAgICAgQVNTRVJUKHJlc3VsdFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBB
U1NFUlQoUmVzdWx0UHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09u
bHlJbnQzMigpKTsKKyAgICAgICAgQVNTRVJUKFJlc3VsdFByb2ZpbGU6OmZyb21JbnQoYml0cyku
cmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgIH0KIH0KICNpZiBDT01QSUxF
UihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShy
ZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtODkzLDYgKzg5Myw5IEBAIG1hY3Jv
IGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBicWIgdDEsIHRhZ1R5cGVO
dW1iZXIsIC5vcDJOb3RJbnQKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAg
aW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQorICAgIGxvYWRpc0Zy
b21JbnN0cnVjdGlvbig0LCB0MSkKKyAgICBvcmkgMHgxMjAwMDAsIHQxICMgQm90aCBhcmUgaW50
cy4KKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MSwgNCkKICAgICBkaXNwYXRjaCg1KQogCiAu
b3AxTm90SW50OgpAQCAtOTAyLDggKzkwNSwxNCBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3Jl
KGludGVnZXJPcGVyYXRpCiAgICAgYnRxeiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKICAgICBh
ZGRxIHRhZ1R5cGVOdW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQxCisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDQsIHQyKQorICAgIG9yaSAweDI0MDAwMCwgdDIgIyBCb3RoIGFyZSBkb3VibGVz
LgorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGptcCAub3AxTm90SW50UmVh
ZHkKIC5vcDFOb3RJbnRPcDJJbnQ6CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQor
ICAgIG9yaSAweDIyMDAwMCwgdDIgIyBGaXJzdCBpcyBkb3VibGUsIHNlY29uZCBpcyBpbnQuCisg
ICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgY2kyZCB0MSwgZnQxCiAub3AxTm90
SW50UmVhZHk6CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQpAQCAtOTE5LDYgKzky
OCw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICAjIEZp
cnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVs
eSBub3QuCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQogICAgIGJ0cXogdDEsIHRh
Z1R5cGVOdW1iZXIsIC5zbG93CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQzKQorICAg
IG9yaSAweDE0MDAwMCwgdDMgIyBGaXJzdCBpcyBpbnQsIHNlY29vbmQgaXMgZG91YmxlCisgICAg
c3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDMsIDQpCiAgICAgY2kyZCB0MCwgZnQwCiAgICAgYWRkcSB0
YWdUeXBlTnVtYmVyLCB0MQogICAgIGZxMmQgdDEsIGZ0MQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24g
MjAzMjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDEwIEBAIGlmIEpTVkFMVUU2NAog
ICAgICAgICBsb2FkcCBvZmZzZXQgKiA4W1BCLCBQQywgOF0sIGRlc3QKICAgICBlbmQKICAgICAK
KyAgICBtYWNybyBzdG9yZWlzVG9JbnN0cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQorICAgICAgICBz
dG9yZWkgdmFsdWUsIG9mZnNldCAqIDhbUEIsIFBDLCA4XQorICAgIGVuZAorCiAgICAgbWFjcm8g
c3RvcmVwVG9JbnN0cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQogICAgICAgICBzdG9yZXAgdmFsdWUs
IG9mZnNldCAqIDhbUEIsIFBDLCA4XQogICAgIGVuZApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHJldmlzaW9uIDIwMzI5MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMyAr
MzIsMjYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIHN0
cnVjdCBPcGVyYW5kVHlwZXM7CiAKLSAgICAgICAgdHlwZWRlZiBjaGFyIFR5cGU7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBUeXBlIFR5cGVJbnQzMiA9IDE7Ci0gICAgICAgIAotICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDA0OwotICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA4OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlTWF5YmVOdWxsICAgPSAweDEwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBl
TWF5YmVCb29sICAgPSAweDIwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVP
dGhlciAgPSAweDQwOworICAgICAgICB0eXBlZGVmIHVpbnQ4X3QgVHlwZTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IFR5cGUgVHlwZUVtcHR5ID0gICAgICAgMHgwMDsKKyAgICAgICAgc3RhdGljIGNv
bnN0IFR5cGUgVHlwZUludDMyID0gICAgICAgMHgwMTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5
cGUgVHlwZU1heWJlTnVtYmVyID0gMHgwMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlw
ZU1heWJlU3RyaW5nID0gMHgwNDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJl
Qm9vbCAgID0gMHgwODsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlT3RoZXIg
ID0gMHgxMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVsbCAgID0gMHgy
MDsKKworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlQml0cyA9IFR5cGVNYXliZU51bWJl
ciB8IFR5cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsKIAot
ICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlQml0cyA9IFR5cGVNYXliZU51bWJlciB8IFR5
cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZU51bGwgfCBUeXBlTWF5YmVCb29sIHwgVHlwZU1heWJl
T3RoZXI7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bUJpdHNOZWVk
ZWQgPSA2OworICAgICAgICBzdGF0aWNfYXNzZXJ0KChUeXBlQml0cyAmICgoMSA8PCBudW1CaXRz
TmVlZGVkKSAtIDEpKSA9PSBUeXBlQml0cywgIlRoaXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0
bmVzcy4iKTsKIAogICAgICAgICBleHBsaWNpdCBSZXN1bHRUeXBlKFR5cGUgdHlwZSkKICAgICAg
ICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgcHVibGlj
OgogICAgICAgICBib29sIGlzSW50MzIoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gbV90eXBlICYgVHlwZUludDMyOwpAQCAtNzksMTEgKzgyLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICByZXR1cm4gIW1pZ2h0QmVOdW1iZXIoKTsKICAgICAgICAgfQogICAg
ICAgICAKLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgbnVsbFR5cGUoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gUmVzdWx0VHlwZShUeXBlTWF5YmVOdWxsKTsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgYm9vbGVhblR5cGUoKQogICAgICAg
ICB7CiAgICAgICAgICAgICByZXR1cm4gUmVzdWx0VHlwZShUeXBlTWF5YmVCb29sKTsKQEAgLTEw
OCw2ICsxMDYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJl
dHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZVN0cmluZyk7CiAgICAgICAgIH0KKworICAgICAgICBz
dGF0aWMgUmVzdWx0VHlwZSBudWxsVHlwZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBSZXN1bHRUeXBlKFR5cGVNYXliZU51bGwpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBzdGF0aWMgUmVzdWx0VHlwZSB1bmtub3duVHlwZSgpCiAgICAgICAgIHsKQEAgLTE0MSw2ICsx
NDQsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBudW1iZXJUeXBlSXNJ
bnQzMigpOwogICAgICAgICB9CiAKKyAgICAgICAgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBUeXBlIG1fdHlwZTsKICAgICB9OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwCShyZXZpc2lvbiAyMDMyOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAKKyNpbmNs
dWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5j
bHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCkBAIC01OCw2ICs1
OSw4IEBACiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmlu
Z1ByaW50U3RyZWFtLmg+CiAKKyNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCisKIG5hbWVzcGFjZSBK
U0MgewogCiAjZGVmaW5lIEJFR0lOX05PX1NFVF9QQygpIFwKQEAgLTM2Myw3ICszNjYsOCBAQCBz
dGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiB7CiAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAgICB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldCA9IGNvZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQocGMpOwotICAgIFJlc3VsdFByb2ZpbGUq
IHByb2ZpbGUgPSBjb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUoYnl0ZWNvZGVPZmZzZXQp
OworICAgIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUgPSBjb2RlQmxvY2stPnJlc3VsdFByb2ZpbGVG
b3JCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCk7CisgICAgQVNTRVJUKHByb2ZpbGUpOwog
CiAgICAgaWYgKHJlc3VsdC5pc051bWJlcigpKSB7CiAgICAgICAgIGlmICghcmVzdWx0LmlzSW50
MzIoKSkgewpAQCAtNDA3LDYgKzQxMSwyNSBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfYWRk
KQogICAgIEpTVmFsdWUgdjIgPSBPUF9DKDMpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHJlc3Vs
dDsKIAorICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+Y29kZUJsb2NrKCktPmJ5
dGVjb2RlT2Zmc2V0KHBjKTsKKyAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gZXhl
Yy0+Y29kZUJsb2NrKCktPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChieXRlY29kZU9m
ZnNldCk7CisgICAgcmVzdWx0UHJvZmlsZS0+b2JzZXJ2ZUxIU0FuZFJIUyh2MSwgdjIpOworCisg
ICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBKSVRBZGRJQ1N0YXRzKCk7CisKKyAgICAvKgorICAg
IGRhdGFMb2coInNsb3dfcGF0aF9hZGRcbiIpOworICAgIGRhdGFMb2coIlYxOiAiLCBydW50aW1l
VHlwZUFzU3RyaW5nKHJ1bnRpbWVUeXBlRm9yVmFsdWUodjEpKSwgIlxuIik7CisgICAgZGF0YUxv
ZygiVjI6ICIsIHJ1bnRpbWVUeXBlQXNTdHJpbmcocnVudGltZVR5cGVGb3JWYWx1ZSh2MikpLCAi
XG4iKTsKKyAgICBkYXRhTG9nKCJTdGF0czogIiwgcGNbNF0udS5vcGVyYW5kLCAiXG4iKTsKKyAg
ICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQocGNbNF0udS5vcGVy
YW5kKTsKKyAgICBSZXN1bHRUeXBlIGEgPSB0eXBlcy5maXJzdCgpOworICAgIFJlc3VsdFR5cGUg
YiA9IHR5cGVzLnNlY29uZCgpOworICAgIGRhdGFMb2coKmJpdHdpc2VfY2FzdDx1aW50OF90Kj4o
JmEpLCAiXG4iKTsKKyAgICBkYXRhTG9nKCpiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KCZiKSwgIlxu
Iik7CisgICAgKi8KKyAgICAKKwogICAgIGlmICh2MS5pc1N0cmluZygpICYmICF2Mi5pc09iamVj
dCgpKQogICAgICAgICByZXN1bHQgPSBqc1N0cmluZyhleGVjLCBhc1N0cmluZyh2MSksIHYyLnRv
U3RyaW5nKGV4ZWMpKTsKICAgICBlbHNlIGlmICh2MS5pc051bWJlcigpICYmIHYyLmlzTnVtYmVy
KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElD
Rm9yd2FyZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSklUTWF0aElDRm9yd2FyZHNf
aAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KSVRNYXRoSUNGb3J3YXJkc19oCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSklUTWF0aElDRm9yd2FyZHMuaD4KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283975</attachid>
            <date>2016-07-18 21:21:20 -0700</date>
            <delta_ts>2016-07-19 00:24:44 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>139121</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMzNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxNiArMTI4MSwyMCBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkIxRDM0
NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5MkNC
MzQ5MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovOyB9OwogCQk3OTJDQjM0QTFDNEVFRDVDMDBE
MTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9y
aWdpbk1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc5NjQ2NTZBMUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTY0NjU2ODFCOTUyRkYwMDAzMDU5
RUUgLyogR2V0UHV0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQuY3BwICovOyB9OwogCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5N0UwN0E4MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc5OUVGN0M0MUM1NkVEOTYwMDJCMDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5OUVGN0MzMUM1NkVEOTYwMDJC
MDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3OUEyMjgzNTFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QTIyODMzMUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwICovOyB9OworCQk3OUEy
MjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyog
QXJpdGhQcm9maWxlLmggKi87IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94
eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAq
LzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2
QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNl
dHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7
IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3
RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJ
Q0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIx
NThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFC
QTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5j
cHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJp
YWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFy
aWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFu
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNG
QzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDEyICszNDgwLDE2IEBACiAJ
CTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94
eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQg
LyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJ
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1
dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyog
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5
RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09y
aWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFF
MDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyog
UHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlC
MDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA1Nyw2ICs1MDY1LDggQEAKIAkJCQlERTVB
MDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQy
OUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3
MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBK
SVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElD
Rm9yd2FyZHMuaCAqLywKIAkJCQlGRTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmNwcCAqLywKIAkJCQlGRTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmggKi8sCiAJCQkJODZBOTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0
aWMuY3BwICovLApAQCAtNjU1Niw2ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAx
NDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcw
NTEwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEw
MDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUw
NjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcg
LyogQXJpdGhQcm9maWxlLmggKi8sCiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5
dGVjb2RlQmFzaWNCbG9jay5jcHAgKi8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8q
IEJ5dGVjb2RlQmFzaWNCbG9jay5oICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAv
KiBCeXRlY29kZUNvbnZlbnRpb25zLmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1
RUE3MEU4MTlGNUIxMDEwMDk4RjVFQyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0FyZ3VtZW50UmVnVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQz
NDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwMzFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrVXRpbHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRUM4NTA0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jsb2NrV29ya2xp
c3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzc1NCw2ICs3NzY3LDcgQEAKIAkJCQlBNTEwMDdDMTE4
N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDEx
MEYxNCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3OUEyMjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEzRTVDMDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhv
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMyMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ0MkNCMjUx
QTZDREI4QzAwNUQzRDdDIC8qIEpTSW5wdXRzLmpzb24gaW4gSGVhZGVycyAqLywKQEAgLTgxNzks
NiArODE5Myw3IEBACiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmll
clN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAv
KiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFB
QTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk3OUIxNzg4RTFEMzk5QjgwMDBCMUE1
NjcgLyogSklUTWF0aElDRm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJE
Qzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NTEyREJB
MzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njcw
NEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC05MjYz
LDYgKzkyNzgsNyBAQAogCQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2Vt
Ymxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyog
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVCMTM3NTcxQkIxMUVG
OTAwQ0Q1MTAwIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NzlBMjI4MzUxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzI5MDA5QzE3OTc2QzYwMDAzMTcyOTggLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTY4QzYzODFCOTBERTBCMDA0MkJDQjMgLyogTWFjcm9B
c3NlbWJsZXJQcmludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTRBRTA4MTc5NzNCMjYw
MDU2MTJCMSAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3Bw
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFBy
b2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5j
bHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIEVOQUJMRShKSVQp
Cit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYg
aml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7CisgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsK
KyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91Ymxl
S25vd25Ob3RJbnQzMihyZWdzLCBtb2RlKTsKKyAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9y
ZSBwcmVjaXNlIGhlcmUuCisgICAgZW1pdFNldERvdWJsZShqaXQpOworICAgIENDYWxsSGVscGVy
czo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKKyAgICBub3REb3VibGUubGluaygmaml0KTsKKyAg
ICBlbWl0U2V0Tm9uTnVtYmVyKGppdCk7CisgICAgZG9uZS5saW5rKCZqaXQpOworICAgIGlzSW50
MzIubGluaygmaml0KTsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0Nh
bGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJm
bG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgQXJpdGhQcm9maWxlOjpOb25OZWda
ZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mQml0cygp
KSk7Cit9CisKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVy
cyYgaml0KQoreworICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRo
UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVz
c09mQml0cygpKSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKK25hbWVzcGFjZSBXVEYgeworICAgIAordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEFyaXRoUHJvZmlsZSYgcHJv
ZmlsZSkKK3sKKyAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKKworICAgIGlmICghcHJv
ZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQoIkludDMyIik7
CisgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAocHJv
ZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQo
c2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwi
OworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91
YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIpOworICAg
ICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxl
LmRpZE9ic2VydmVOb25OdW1iZXIoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJOb25OdW1i
ZXIiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBp
ZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7CisgICAgICAgICAgICBvdXQu
cHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAg
ICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7
CisgICAgICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAocHJvZmlsZS5zcGVjaWFs
RmFzdFBhdGhDb3VudCgpKSB7CisgICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFzdCBwYXRo
OiAiKTsKKyAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSk7
CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMjI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQXJpdGhQcm9maWxlX2gKKyNkZWZpbmUgQXJpdGhQcm9maWxlX2gKKwor
I2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCisjaW5jbHVkZSAi
UmVzdWx0VHlwZS5oIgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisgCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK3N0cnVjdCBPYnNlcnZlZFR5cGUgewor
ICAgIE9ic2VydmVkVHlwZSh1aW50OF90IGJpdHMgPSBUeXBlRW1wdHkpCisgICAgICAgIDogbV9i
aXRzKGJpdHMpCisgICAgeyB9CisKKyAgICBib29sIHNhd0ludDMyKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRzICYgVHlwZUludDMyOyB9CisgICAgYm9vbCBpc09ubHlJbnQzMigpIGNvbnN0IHsgcmV0
dXJuIG1fYml0cyA9PSBUeXBlSW50MzI7IH0KKyAgICBib29sIHNhd051bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYml0cyAmIFR5cGVOdW1iZXI7IH0KKyAgICBib29sIGlzT25seU51bWJlcigpIGNv
bnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBzYXdOb25OdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTm9uTnVtYmVyOyB9CisgICAgYm9vbCBp
c09ubHlOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU5vbk51bWJlcjsg
fQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2JpdHM7IH0KKyAgICB1aW50
OF90IGJpdHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKworICAgIE9ic2VydmVkVHlwZSB3
aXRoSW50MzIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlwZUludDMy
KTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRoTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2
ZWRUeXBlKG1fYml0cyB8IFR5cGVOdW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhOb25O
dW1iZXIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlwZU5vbk51bWJl
cik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aG91dE5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJu
IE9ic2VydmVkVHlwZShtX2JpdHMgJiB+VHlwZU5vbk51bWJlcik7IH0KKworICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBPYnNlcnZlZFR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
PT0gb3RoZXIubV9iaXRzOyB9CisKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlRW1wdHkg
PSAweDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUludDMyID0gMHgxOworICAgIHN0
YXRpYyBjb25zdCB1aW50OF90IFR5cGVOdW1iZXIgPSAweDAyOworICAgIHN0YXRpYyBjb25zdCB1
aW50OF90IFR5cGVOb25OdW1iZXIgPSAweDA0OworCitwcml2YXRlOgorICAgIHVpbnQ4X3QgbV9i
aXRzOworfTsKKworc3RydWN0IEFyaXRoUHJvZmlsZSB7Citwcml2YXRlOgorICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBudW1iZXJPZkZsYWdCaXRzID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3QgcmhzUmVzdWx0VHlwZVNoaWZ0ID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bGhzUmVzdWx0VHlwZVNoaWZ0ID0gMTE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc09i
c2VydmVkVHlwZVNoaWZ0ID0gMTc7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGxoc09ic2Vy
dmVkVHlwZVNoaWZ0ID0gMjA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGJvdHRvbTZCaXRz
ID0gKDEgPDwgNikgLSAxOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b20zQml0cyA9
ICgxIDw8IDMpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJSaHNPYnNlcnZl
ZFR5cGVCaXRzID0gfigoMSA8PCAxNykgfCAoMSA8PCAxOCkgfCAoMSA8PCAxOSkpOworICAgIHN0
YXRpYyBjb25zdCB1aW50MzJfdCBjbGVhckxoc09ic2VydmVkVHlwZUJpdHMgPSB+KCgxIDw8IDIw
KSB8ICgxIDw8IDIxKSB8ICgxIDw8IDIyKSk7CisKKyAgICBzdGF0aWNfYXNzZXJ0KFJlc3VsdFR5
cGU6Om51bUJpdHNOZWVkZWQgPT0gNiwgIldlIG1ha2UgYSBzdHJvbmcgYXNzdW1wdGlvbiBoZXJl
IHRoYXQgUmVzdWx0VHlwZSBmaXRzIGluIDYgYmlzLiIpOworCitwdWJsaWM6CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHNwZWNpYWxGYXN0UGF0aEJpdCA9IDEgPDwgMjM7CisKKyAgICBBcml0
aFByb2ZpbGUoUmVzdWx0VHlwZSBsaHMsIFJlc3VsdFR5cGUgcmhzKQorICAgIHsKKyAgICAgICAg
bV9iaXRzID0gKGxocy5iaXRzKCkgPDwgbGhzUmVzdWx0VHlwZVNoaWZ0KSB8IChyaHMuYml0cygp
IDw8IHJoc1Jlc3VsdFR5cGVTaGlmdCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxoc1Jlc3Vs
dFR5cGUoKS5iaXRzKCkgPT0gbGhzLmJpdHMoKSAmJiByaHNSZXN1bHRUeXBlKCkuYml0cygpID09
IHJocy5iaXRzKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaHNPYnNlcnZlZFR5cGUoKS5p
c0VtcHR5KCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChyaHNPYnNlcnZlZFR5cGUoKS5pc0Vt
cHR5KCkpOworICAgIH0KKyAgICBBcml0aFByb2ZpbGUoKQorICAgIHsgfQorCisgICAgc3RhdGlj
IEFyaXRoUHJvZmlsZSBmcm9tSW50KHVpbnQzMl90IGJpdHMpCisgICAgeworICAgICAgICBBcml0
aFByb2ZpbGUgcmVzdWx0OworICAgICAgICByZXN1bHQubV9iaXRzID0gYml0czsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBlbnVtIE9ic2VydmVkUmVzdWx0cyB7CisgICAg
ICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8IDAsCisgICAgICAgIE5lZ1plcm9Eb3VibGUgICAg
PSAxIDw8IDEsCisgICAgICAgIE5vbk51bWJlciAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIElu
dDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCisgICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8
IDQsCisgICAgfTsKKworICAgIFJlc3VsdFR5cGUgbGhzUmVzdWx0VHlwZSgpIGNvbnN0IHsgcmV0
dXJuIFJlc3VsdFR5cGUoKG1fYml0cyA+PiBsaHNSZXN1bHRUeXBlU2hpZnQpICYgYm90dG9tNkJp
dHMpOyB9CisgICAgUmVzdWx0VHlwZSByaHNSZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVz
dWx0VHlwZSgobV9iaXRzID4+IHJoc1Jlc3VsdFR5cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0K
KworICAgIE9ic2VydmVkVHlwZSBsaHNPYnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNl
cnZlZFR5cGUoKG1fYml0cyA+PiBsaHNPYnNlcnZlZFR5cGVTaGlmdCkgJiBib3R0b20zQml0cyk7
IH0KKyAgICBPYnNlcnZlZFR5cGUgcmhzT2JzZXJ2ZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gT2Jz
ZXJ2ZWRUeXBlKChtX2JpdHMgPj4gcmhzT2JzZXJ2ZWRUeXBlU2hpZnQpICYgYm90dG9tM0JpdHMp
OyB9CisgICAgdm9pZCBzZXRMaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAg
eworICAgICAgICB1aW50MzJfdCBiaXRzID0gbV9iaXRzOworICAgICAgICBiaXRzICY9IGNsZWFy
TGhzT2JzZXJ2ZWRUeXBlQml0czsKKyAgICAgICAgYml0cyB8PSB0eXBlLmJpdHMoKSA8PCBsaHNP
YnNlcnZlZFR5cGVTaGlmdDsKKyAgICAgICAgbV9iaXRzID0gYml0czsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7CisgICAgfQorCisgICAgdm9pZCBz
ZXRSaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAgeyAKKyAgICAgICAgdWlu
dDMyX3QgYml0cyA9IG1fYml0czsKKyAgICAgICAgYml0cyAmPSBjbGVhclJoc09ic2VydmVkVHlw
ZUJpdHM7CisgICAgICAgIGJpdHMgfD0gdHlwZS5iaXRzKCkgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hp
ZnQ7CisgICAgICAgIG1fYml0cyA9IGJpdHM7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJoc09i
c2VydmVkVHlwZSgpID09IHR5cGUpOworICAgIH0KKworICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0
UGF0aENvdW50KCkgY29uc3QKKyAgICB7IAorICAgICAgICAvLyBGSVhNRToKKyAgICAgICAgcmV0
dXJuIG1fYml0cyAmIHNwZWNpYWxGYXN0UGF0aEJpdCA/IFVJTlRfTUFYIDogMDsKKyAgICB9CisK
KyAgICBib29sIGRpZE9ic2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9u
TmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9CisgICAgYm9vbCBk
aWRPYnNlcnZlRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91Ymxl
IHwgTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9E
b3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4g
aGFzQml0cyhOb25OdW1iZXIpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygp
IGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KKyAgICBib29sIGRpZE9i
c2VydmVJbnQ1Mk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93
KTsgfQorCisgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChO
b25OZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkg
eyBzZXRCaXQoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVy
KCkgeyBzZXRCaXQoTm9uTnVtYmVyKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJm
bG93KCkgeyBzZXRCaXQoSW50MzJPdmVyZmxvdyk7IH0KKyAgICB2b2lkIHNldE9ic2VydmVkSW50
NTJPdmVyZmxvdygpIHsgc2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkKiBhZGRy
ZXNzT2ZCaXRzKCkgeyByZXR1cm4gJm1fYml0czsgfQorCisgICAgdm9pZCBkZXRlY3ROdW1lcmlj
bmVzcyhKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG1fYml0cyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5l
Z1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIG1fYml0cyB8PSBOb25OdW1iZXI7CisgICAgfQorCisgICAgdm9pZCBsaHNT
YXdJbnQzMigpIHsgc2V0TGhzT2JzZXJ2ZWRUeXBlKGxoc09ic2VydmVkVHlwZSgpLndpdGhJbnQz
MigpKTsgfQorICAgIHZvaWQgbGhzU2F3TnVtYmVyKCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhz
T2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJlcigpKTsgfQorICAgIHZvaWQgbGhzU2F3Tm9uTnVtYmVy
KCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigp
KTsgfQorICAgIHZvaWQgcmhzU2F3SW50MzIoKSB7IHNldFJoc09ic2VydmVkVHlwZShyaHNPYnNl
cnZlZFR5cGUoKS53aXRoSW50MzIoKSk7IH0KKyAgICB2b2lkIHJoc1Nhd051bWJlcigpIHsgc2V0
UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhOdW1iZXIoKSk7IH0KKyAgICB2
b2lkIHJoc1Nhd05vbk51bWJlcigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlw
ZSgpLndpdGhOb25OdW1iZXIoKSk7IH0KKworICAgIHZvaWQgb2JzZXJ2ZUxIU0FuZFJIUyhKU1Zh
bHVlIGxocywgSlNWYWx1ZSByaHMpCisgICAgeworICAgICAgICBBcml0aFByb2ZpbGUgbmV3UHJv
ZmlsZSA9ICp0aGlzOworICAgICAgICBpZiAobGhzLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAg
IGlmIChsaHMuaXNJbnQzMigpKQorICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUubGhzU2F3SW50
MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdQcm9maWxlLmxoc1Nh
d051bWJlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5ld1Byb2ZpbGUubGhzU2F3
Tm9uTnVtYmVyKCk7CisKKyAgICAgICAgaWYgKHJocy5pc051bWJlcigpKSB7CisgICAgICAgICAg
ICBpZiAocmhzLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICBuZXdQcm9maWxlLnJoc1Nhd0lu
dDMyKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3UHJvZmlsZS5yaHNT
YXdOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBuZXdQcm9maWxlLnJoc1Nh
d05vbk51bWJlcigpOworCisgICAgICAgIG1fYml0cyA9IG5ld1Byb2ZpbGUuYml0cygpOworICAg
IH0KKworI2lmIEVOQUJMRShKSVQpICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpIGlmIGl0IHNl
ZXMgYQorICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBhIG5vbi1udW1i
ZXIuCisgICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1
ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICAv
LyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlKS4KKyAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7
CisgICAgCisgICAgLy8gU2V0cyBOb25OdW1iZXIuCisgICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVy
KENDYWxsSGVscGVycyYpOworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyAgICB1aW50MzJfdCBi
aXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBoYXNC
aXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBtYXNrOyB9CisgICAgdm9pZCBz
ZXRCaXQoaW50IG1hc2spIHsgbV9iaXRzIHw9IG1hc2s7IH0KKworICAgIHVpbnQzMl90IG1fYml0
cyB7IDAgfTsgLy8gV2UgdGFrZSBjYXJlIHRvIHVwZGF0ZSBtX2JpdHMgb25seSBpbiBhIHNpbmds
ZSBvcGVyYXRpb24uIFdlIGRvbid0IGV2ZXIgc3RvcmUgYW4gaW5jb25zaXN0ZW50IGJpdCByZXBy
ZXNlbnRhdGlvbiB0byBpdC4KK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2Ug
V1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgY29uc3QgSlNDOjpBcml0
aFByb2ZpbGUmKTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBBcml0aFByb2Zp
bGVfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2Zp
bGUuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRlICJCeXRlY29k
ZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlVXNlRGVmLmgiCkBAIC00NSw2ICs0Niw3
IEBACiAjaW5jbHVkZSAiSW5saW5lQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIu
aCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJK
U0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTGV4aWNh
bEVudmlyb25tZW50LmgiCkBAIC03NjcsNyArNzY5LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBS
YXJlQ2FzZVByb2ZpbGUoUHJpbgogICAgIG91dC5wcmludChuYW1lLCBwcm9maWxlLT5tX2NvdW50
ZXIpOwogfQogCi12b2lkIENvZGVCbG9jazo6ZHVtcFJlc3VsdFByb2ZpbGUoUHJpbnRTdHJlYW0m
IG91dCwgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZykK
K3ZvaWQgQ29kZUJsb2NrOjpkdW1wQXJpdGhQcm9maWxlKFByaW50U3RyZWFtJiBvdXQsIEFyaXRo
UHJvZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZykKIHsKICAgICBpZiAo
IXByb2ZpbGUpCiAgICAgICAgIHJldHVybjsKQEAgLTE3NjcsNyArMTc2OSw3IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgZHVtcFJhcmVDYXNlUHJvZmlsZShvdXQsICJyYXJl
IGNhc2U6ICIsIHJhcmVDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2F0aW9uKSwgaGFz
UHJpbnRlZFByb2ZpbGluZyk7CiAgICAgewogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOwotICAgICAgICBkdW1wUmVzdWx0UHJvZmlsZShvdXQsIHJlc3VsdFByb2Zp
bGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGlu
Zyk7CisgICAgICAgIGR1bXBBcml0aFByb2ZpbGUob3V0LCBhcml0aFByb2ZpbGVGb3JCeXRlY29k
ZU9mZnNldChsb2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIH0KICAgICAKICNp
ZiBFTkFCTEUoREZHX0pJVCkKQEAgLTMwMDAsNiArMzAwMiw1OSBAQCBTdHJ1Y3R1cmVTdHViSW5m
byogQ29kZUJsb2NrOjphZGRTdHViSW5mCiAgICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZChhY2Nl
c3NUeXBlKTsKIH0KIAorSklUQWRkSUMqIENvZGVCbG9jazo6YWRkSklUQWRkSUMoKQoreworICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1fYWRkSUNz
LmFkZCgpOworfQorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
Kwordm9pZCBDb2RlQmxvY2s6OmR1bXBKSVRBZGRJQ1N0YXRzKCkKK3sKKyAgICByZXR1cm47CisK
KyAgICAvKgorICAgIGRvdWJsZSBzaXplID0gMC4wOworICAgIGRvdWJsZSBvdXRPZkxpbmUgPSAw
LjA7CisgICAgYXV0byBmdW5jID0gWyZdIChDb2RlQmxvY2sqIGNvZGVCbG9jaykgLT4gYm9vbCB7
CisgICAgICAgIGZvciAoSklUQWRkSUMqIGFkZElDIDogY29kZUJsb2NrLT5tX2FkZElDcykgewor
ICAgICAgICAgICAgKytzaXplOworICAgICAgICAgICAgaWYgKGFkZElDLT5tX2NvZGUpCisgICAg
ICAgICAgICAgICAgKytvdXRPZkxpbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH07CisgICAgdm0oKS0+aGVhcC5mb3JFYWNoQ29kZUJsb2NrKGZ1bmMpOworICAgIGF1
dG8gcGlkID0gZ2V0cGlkKCk7CisgICAgZGF0YUxvZygiUElEOiAiLCBwaWQsICIgQ29kZUJsb2Nr
IGhhcyBvdXRPZkxpbmUgcmF0aW86ICIsIG91dE9mTGluZS9zaXplLCAiXG4iKTsKKyAgICBkYXRh
TG9nKCJQSUQ6ICIsIHBpZCwgIiBUb3RhbCBudW0gYWRkIElDczoiLCBzaXplLCAiLiBUb3RhbCBu
dW0gb3V0IG9mIGxpbmU6ICIsIG91dE9mTGluZSwgIlxuIik7CisgICAgKi8KKworICAgIHN0YXRp
YyBkb3VibGUgcGVha1NpemUgPSAwLjA7CisgICAgZG91YmxlIHNpemUgPSAwLjA7CisgICAgZG91
YmxlIG51bUFkZHMgPSAwLjA7CisgICAgc2l6ZV90IHNtYWxsZXN0U2l6ZSA9IFVJTlRfTUFYOwor
ICAgIHNpemVfdCBsYXJnZXN0U2l6ZSA9IDA7CisgICAgYXV0byBmdW5jID0gWyZdIChDb2RlQmxv
Y2sqIGNvZGVCbG9jaykgLT4gYm9vbCB7CisgICAgICAgIGZvciAoSklUQWRkSUMqIGFkZElDIDog
Y29kZUJsb2NrLT5tX2FkZElDcykgeworICAgICAgICAgICAgKytudW1BZGRzOworICAgICAgICAg
ICAgc2l6ZSArPSBhZGRJQy0+Y29kZVNpemUoKTsKKyAgICAgICAgICAgIGxhcmdlc3RTaXplID0g
c3RkOjptYXgoYWRkSUMtPmNvZGVTaXplKCksIGxhcmdlc3RTaXplKTsKKyAgICAgICAgICAgIHNt
YWxsZXN0U2l6ZSA9IHN0ZDo6bWluKGFkZElDLT5jb2RlU2l6ZSgpLCBzbWFsbGVzdFNpemUpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIHZtKCktPmhlYXAu
Zm9yRWFjaENvZGVCbG9jayhmdW5jKTsKKyAgICBwZWFrU2l6ZSA9IHN0ZDo6bWF4KHNpemUsIHBl
YWtTaXplKTsKKyAgICBhdXRvIHBpZCA9IGdldHBpZCgpOworICAgIGRhdGFMb2coIlBJRDogIiwg
cGlkLCAiIENvZGVCbG9jayBoYXMgc2l6ZSByYXRpbzogIiwgc2l6ZS9udW1BZGRzLCAiXG4iKTsK
KyAgICBkYXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBUb3RhbCBudW0gYWRkIElDczoiLCBudW1BZGRz
LCAiLiBUb3RhbCBudW0gc2l6ZTogIiwgc2l6ZSwgIlxuIik7CisgICAgZGF0YUxvZygiUElEOiAi
LCBwaWQsICIgUGVhayBzaXplOiAiLCBwZWFrU2l6ZSwgIlxuIik7CisgICAgZGF0YUxvZygiUElE
OiAiLCBwaWQsICIgbGFyZ2VzdCBzaXplOiIsIGxhcmdlc3RTaXplLCAiIFNtYWxsZXN0IHNpemU6
Iiwgc21hbGxlc3RTaXplLCAgIlxuIik7Cit9CisKIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxv
Y2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7CiAgICAgZm9yIChTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBtX3N0dWJJbmZvcykgewpAQCAtMzA0NiwxMSArMzEw
MSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpyZXNldEpJVERhdGEoKQogICAgIC8vIFdlIGNhbiBjbGVh
ciB0aGlzIGJlY2F1c2UgdGhlIERGRydzIHF1ZXJpZXMgdG8gdGhlc2UgZGF0YSBzdHJ1Y3R1cmVz
IGFyZSBndWFyZGVkIGJ5IHdoZXRoZXIKICAgICAvLyB0aGVyZSBpcyBKSVQgY29kZS4KICAgICBt
X3JhcmVDYXNlUHJvZmlsZXMuY2xlYXIoKTsKLSAgICAKLSAgICAvLyBXZSBjYW4gY2xlYXIgdGhl
c2UgYmVjYXVzZSB0aGUgREZHIG9ubHkgYWNjZXNzZXMgbWVtYmVycyBvZiB0aGlzIGRhdGEgc3Ry
dWN0dXJlIHdoZW4KLSAgICAvLyBob2xkaW5nIHRoZSBsb2NrIG9yIGFmdGVyIHF1ZXJ5aW5nIHdo
ZXRoZXIgd2UgaGF2ZSBKSVQgY29kZS4KLSAgICBtX3Jlc3VsdFByb2ZpbGVzLmNsZWFyKCk7Ci0g
ICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwID0gbnVsbHB0cjsKIH0K
ICNlbmRpZgogCkBAIC0zMjgwLDcgKzMzMzAsNiBAQCB2b2lkIENvZGVCbG9jazo6c2hyaW5rVG9G
aXQoU2hyaW5rTW9kZSBzCiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsK
IAogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwotICAgIG1fcmVzdWx0UHJv
ZmlsZXMuc2hyaW5rVG9GaXQoKTsKICAgICAKICAgICBpZiAoc2hyaW5rTW9kZSA9PSBFYXJseVNo
cmluaykgewogICAgICAgICBtX2NvbnN0YW50UmVnaXN0ZXJzLnNocmlua1RvRml0KCk7CkBAIC00
MTU2LDExICs0MjA1LDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wVmFsdWVQcm9maWxlcygpCiAg
ICAgICAgIFJhcmVDYXNlUHJvZmlsZSogcHJvZmlsZSA9IHJhcmVDYXNlUHJvZmlsZShpKTsKICAg
ICAgICAgZGF0YUxvZ0YoIiAgIGJjID0gJWQ6ICV1XG4iLCBwcm9maWxlLT5tX2J5dGVjb2RlT2Zm
c2V0LCBwcm9maWxlLT5tX2NvdW50ZXIpOwogICAgIH0KLSAgICBkYXRhTG9nKCJSZXN1bHRQcm9m
aWxlIGZvciAiLCAqdGhpcywgIjpcbiIpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1iZXJPZlJlc3VsdFByb2ZpbGVzKCk7ICsraSkgewotICAgICAgICBjb25zdCBSZXN1bHRQcm9m
aWxlJiBwcm9maWxlID0gKnJlc3VsdFByb2ZpbGUoaSk7CisgICAgLyogRklYTUU6CisgICAgZGF0
YUxvZygiQXJpdGhQcm9maWxlIGZvciAiLCAqdGhpcywgIjpcbiIpOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1iZXJPZkFyaXRoUHJvZmlsZXMoKTsgKytpKSB7CisgICAgICAgIGNv
bnN0IEFyaXRoUHJvZmlsZSYgcHJvZmlsZSA9ICphcml0aFByb2ZpbGUoaSk7CiAgICAgICAgIGRh
dGFMb2coIiAgIGJjID0gIiwgcHJvZmlsZS5ieXRlY29kZU9mZnNldCgpLCAiOiAiLCBwcm9maWxl
LCAiXG4iKTsKICAgICB9CisgICAgKi8KIH0KICNlbmRpZiAvLyBFTkFCTEUoVkVSQk9TRV9WQUxV
RV9QUk9GSUxFKQogCkBAIC00MzYzLDE0ICs0NDE0LDQ2IEBAIHVuc2lnbmVkIENvZGVCbG9jazo6
cmFyZUNhc2VQcm9maWxlQ291bnQKICAgICByZXR1cm4gMDsKIH0KIAotUmVzdWx0UHJvZmlsZSog
Q29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRoUHJvZmlsZSogQ29kZUJsb2Nr
Ojphcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiB7Ci0g
ICAgaWYgKCFtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXApCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2J5dGVjb2RlT2Zmc2V0VG9S
ZXN1bHRQcm9maWxlSW5kZXhNYXAtPmZpbmQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmIChpdGVy
YXRvciA9PSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmVuZCgpKQor
ICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1
Y3Rpb25zKClbYnl0ZWNvZGVPZmZzZXRdLnUub3Bjb2RlKTsKKyAgICBzd2l0Y2ggKG9wY29kZUlE
KSB7CisgICAgY2FzZSBvcF9iaXRvcjoKKyAgICBjYXNlIG9wX2JpdGFuZDoKKyAgICBjYXNlIG9w
X2JpdHhvcjoKKyAgICBjYXNlIG9wX2FkZDoKKyAgICBjYXNlIG9wX211bDoKKyAgICBjYXNlIG9w
X3N1YjoKKyAgICBjYXNlIG9wX2RpdjoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuICZtX3Jlc3VsdFByb2ZpbGVzW2l0ZXJh
dG9yLT52YWx1ZV07CisgICAgfQorCisgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gJmlu
c3RydWN0aW9ucygpW2J5dGVjb2RlT2Zmc2V0ICsgNF07CisgICAgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxBcml0aFByb2ZpbGUqPigmaW5zdHJ1Y3Rpb24tPnUub3BlcmFuZCk7Cit9CisKK0FyaXRoUHJv
ZmlsZSYgQ29kZUJsb2NrOjphcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiogcGMpCit7Cisg
ICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAgQVNTRVJUKHBjID49IGluc3RydWN0
aW9ucygpLmJlZ2luKCkgJiYgcGMgPCBpbnN0cnVjdGlvbnMoKS5lbmQoKSk7CisgICAgICAgIGF1
dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNv
ZGUpOworICAgICAgICBzd2l0Y2ggKG9wY29kZUlEKSB7CisgICAgICAgIGNhc2Ugb3BfYml0b3I6
CisgICAgICAgIGNhc2Ugb3BfYml0YW5kOgorICAgICAgICBjYXNlIG9wX2JpdHhvcjoKKyAgICAg
ICAgY2FzZSBvcF9hZGQ6CisgICAgICAgIGNhc2Ugb3BfbXVsOgorICAgICAgICBjYXNlIG9wX3N1
YjoKKyAgICAgICAgY2FzZSBvcF9kaXY6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuICpiaXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxlKj4oJnBjWzRdLnUub3Bl
cmFuZCk7CiB9CiAKIHVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNv
dW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQpAQCAtNDM3OSw5ICs0NDYy
LDkgQEAgdW5zaWduZWQgQ29kZUJsb2NrOjpzcGVjaWFsRmFzdENhc2VQcm9maQogICAgIHJldHVy
biBzcGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5
dGVjb2RlT2Zmc2V0KTsKIH0KIAotdW5zaWduZWQgQ29kZUJsb2NrOjpzcGVjaWFsRmFzdENhc2VQ
cm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBs
b2NrZXIsIGludCBieXRlY29kZU9mZnNldCkKK3Vuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZh
c3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxl
ID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQp
OworICAgIEFyaXRoUHJvZmlsZSogcHJvZmlsZSA9IGFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KGJ5dGVjb2RlT2Zmc2V0KTsKICAgICBpZiAoIXByb2ZpbGUpCiAgICAgICAgIHJldHVybiAw
OwogICAgIHJldHVybiBwcm9maWxlLT5zcGVjaWFsRmFzdFBhdGhDb3VudCgpOwpAQCAtNDM5NSwy
NiArNDQ3OCw2IEBAIGJvb2wgQ29kZUJsb2NrOjpjb3VsZFRha2VTcGVjaWFsRmFzdENhc2UKICAg
ICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6Y291bGRUYWtlU2xvd0Nh
c2VNaW5pbXVtQ291bnQoKTsKIH0KIAotUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjplbnN1cmVS
ZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1bHRQcm9maWxlKGxvY2tl
ciwgYnl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3Vy
ZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBpbnQgYnl0
ZWNvZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IHJlc3VsdFByb2Zp
bGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoIXBy
b2ZpbGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQoUmVzdWx0UHJvZmlsZShi
eXRlY29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVzdWx0UHJvZmlsZXMubGFz
dCgpOwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgpID09ICZtX3Jlc3Vs
dFByb2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwotICAgICAgICBpZiAoIW1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgICAgIG1fYnl0
ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0
ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAgICAgICAgbV9ieXRlY29k
ZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNvZGVPZmZzZXQsIG1fcmVz
dWx0UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVybiBwcm9maWxlOwotfQot
CiAjaWYgRU5BQkxFKEpJVCkKIERGRzo6Q2FwYWJpbGl0eUxldmVsIENvZGVCbG9jazo6Y2FwYWJp
bGl0eUxldmVsKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1
ZGUgIkhhbmRsZXJJbmZvLmgiCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJK
SVRDb2RlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJKSVRX
cml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgpAQCAtNzksNiArODAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNT
dGF0ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTTW9kdWxlRW52aXJvbm1lbnQ7
CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBQQ1RvQ29kZU9yaWdpbk1hcDsK
QEAgLTg4LDYgKzkwLDggQEAgY2xhc3MgVHlwZUxvY2F0aW9uOwogCiBlbnVtIGNsYXNzIEFjY2Vz
c1R5cGUgOiBpbnQ4X3Q7CiAKK3N0cnVjdCBBcml0aFByb2ZpbGU7CisKIHR5cGVkZWYgSGFzaE1h
cDxDb2RlT3JpZ2luLCBTdHJ1Y3R1cmVTdHViSW5mbyosIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhh
c2g+IFN0dWJJbmZvTWFwOwogCiBlbnVtIFJlb3B0aW1pemF0aW9uTW9kZSB7IERvbnRDb3VudFJl
b3B0aW1pemF0aW9uLCBDb3VudFJlb3B0aW1pemF0aW9uIH07CkBAIC0yNDUsNiArMjQ5LDggQEAg
cHVibGljOgogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFk
ZFN0dWJJbmZvKEFjY2Vzc1R5cGUpOworICAgIEpJVEFkZElDKiBhZGRKSVRBZGRJQygpOworICAg
IHZvaWQgZHVtcEpJVEFkZElDU3RhdHMoKTsKICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+Ojpp
dGVyYXRvciBzdHViSW5mb0JlZ2luKCkgeyByZXR1cm4gbV9zdHViSW5mb3MuYmVnaW4oKTsgfQog
ICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvRW5kKCkgeyByZXR1
cm4gbV9zdHViSW5mb3MuZW5kKCk7IH0KICAgICAKQEAgLTQ0MCwxMCArNDQ2LDggQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gdmFsdWUgPj0gT3B0aW9uczo6Y291bGRUYWtlU2xvd0Nhc2VNaW5p
bXVtQ291bnQoKTsKICAgICB9CiAKLSAgICBSZXN1bHRQcm9maWxlKiBlbnN1cmVSZXN1bHRQcm9m
aWxlKGludCBieXRlY29kZU9mZnNldCk7Ci0gICAgUmVzdWx0UHJvZmlsZSogZW5zdXJlUmVzdWx0
UHJvZmlsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgaW50IGJ5dGVjb2RlT2Zmc2V0KTsK
LSAgICB1bnNpZ25lZCBudW1iZXJPZlJlc3VsdFByb2ZpbGVzKCkgeyByZXR1cm4gbV9yZXN1bHRQ
cm9maWxlcy5zaXplKCk7IH0KLSAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlRm9yQnl0
ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNl
dCk7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQg
Ynl0ZWNvZGVPZmZzZXQpOworICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlRm9yUEMoSW5z
dHJ1Y3Rpb24qKTsKIAogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZv
ckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVP
ZmZzZXQpOwogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVj
b2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CkBAIC05NTcsNyArOTYxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGR1bXBWYWx1ZVByb2ZpbGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3Ry
dWN0aW9uKiYsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHZvaWQgZHVtcEFycmF5
UHJvZmlsaW5nKFByaW50U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgYm9vbCYgaGFzUHJp
bnRlZFByb2ZpbGluZyk7CiAgICAgdm9pZCBkdW1wUmFyZUNhc2VQcm9maWxlKFByaW50U3RyZWFt
JiwgY29uc3QgY2hhciogbmFtZSwgUmFyZUNhc2VQcm9maWxlKiwgYm9vbCYgaGFzUHJpbnRlZFBy
b2ZpbGluZyk7Ci0gICAgdm9pZCBkdW1wUmVzdWx0UHJvZmlsZShQcmludFN0cmVhbSYsIFJlc3Vs
dFByb2ZpbGUqLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICB2b2lkIGR1bXBBcml0
aFByb2ZpbGUoUHJpbnRTdHJlYW0mLCBBcml0aFByb2ZpbGUqLCBib29sJiBoYXNQcmludGVkUHJv
ZmlsaW5nKTsKIAogICAgIGJvb2wgc2hvdWxkVmlzaXRTdHJvbmdseSgpOwogICAgIGJvb2wgc2hv
dWxkSmV0dGlzb25EdWVUb1dlYWtSZWZlcmVuY2UoKTsKQEAgLTEwMTMsNiArMTAxNyw3IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9m
ZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBCYWc8U3RydWN0dXJlU3R1Yklu
Zm8+IG1fc3R1YkluZm9zOworICAgIEJhZzxKSVRBZGRJQz4gbV9hZGRJQ3M7CiAgICAgQmFnPEJ5
VmFsSW5mbz4gbV9ieVZhbEluZm9zOwogICAgIEJhZzxDYWxsTGlua0luZm8+IG1fY2FsbExpbmtJ
bmZvczsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1NlbnRp
bmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CkBAIC0xMDI5LDkgKzEwMzQs
NiBAQCBwcml2YXRlOgogICAgIFJlZkNvdW50ZWRBcnJheTxWYWx1ZVByb2ZpbGU+IG1fYXJndW1l
bnRWYWx1ZVByb2ZpbGVzOwogICAgIFJlZkNvdW50ZWRBcnJheTxWYWx1ZVByb2ZpbGU+IG1fdmFs
dWVQcm9maWxlczsKICAgICBTZWdtZW50ZWRWZWN0b3I8UmFyZUNhc2VQcm9maWxlLCA4PiBtX3Jh
cmVDYXNlUHJvZmlsZXM7Ci0gICAgU2VnbWVudGVkVmVjdG9yPFJlc3VsdFByb2ZpbGUsIDg+IG1f
cmVzdWx0UHJvZmlsZXM7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCB1bnNpZ25lZCwg
SW50SGFzaDx1bnNpZ25lZD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5z
aWduZWQ+PiBCeXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxCeXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwPiBtX2J5dGVj
b2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA7CiAgICAgUmVmQ291bnRlZEFycmF5PEFy
cmF5QWxsb2NhdGlvblByb2ZpbGU+IG1fYXJyYXlBbGxvY2F0aW9uUHJvZmlsZXM7CiAgICAgQXJy
YXlQcm9maWxlVmVjdG9yIG1fYXJyYXlQcm9maWxlczsKICAgICBSZWZDb3VudGVkQXJyYXk8T2Jq
ZWN0QWxsb2NhdGlvblByb2ZpbGU+IG1fb2JqZWN0QWxsb2NhdGlvblByb2ZpbGVzOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkK
IAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTY1LDgg
KzY2LDggQEAgdm9pZCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UgogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBjYXNlIFJlc3VsdFByb2ZpbGVSZWFkeTog
ewotICAgICAgICB1LnJlc3VsdFByb2ZpbGUtPmVtaXREZXRlY3ROdW1lcmljbmVzcyhqaXQsIHJl
Z3MsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgY2FzZSBBcml0aFByb2ZpbGVSZWFkeTog
eworICAgICAgICB1LmFyaXRoUHJvZmlsZS0+ZW1pdERldGVjdE51bWVyaWNuZXNzKGppdCwgcmVn
cywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0gfQogICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1
ZVByb2ZpbGVLZXk7Ci1zdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKK3N0cnVjdCBBcml0aFByb2ZpbGU7
CiBzdHJ1Y3QgVmFsdWVQcm9maWxlOwogCiBjbGFzcyBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlIHsKQEAgLTU5LDExICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tpbmQgPSBO
b25lOwogICAgIH0KICAgICAKLSAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFJlc3Vs
dFByb2ZpbGUqIHByb2ZpbGUpCisgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZShBcml0
aFByb2ZpbGUqIHByb2ZpbGUpCiAgICAgewogICAgICAgICBpZiAocHJvZmlsZSkgewotICAgICAg
ICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OwotICAgICAgICAgICAgdS5yZXN1bHRQ
cm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgICAgIG1fa2luZCA9IEFyaXRoUHJvZmlsZVJlYWR5
OworICAgICAgICAgICAgdS5hcml0aFByb2ZpbGUgPSBwcm9maWxlOwogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQpAQCAtNzksMTQgKzc5LDE0IEBAIHBy
aXZhdGU6CiAgICAgZW51bSBLaW5kIHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCi0g
ICAgICAgIFJlc3VsdFByb2ZpbGVSZWFkeSwKKyAgICAgICAgQXJpdGhQcm9maWxlUmVhZHksCiAg
ICAgICAgIExhenlPcGVyYW5kCiAgICAgfTsKICAgICAKICAgICBLaW5kIG1fa2luZDsKICAgICB1
bmlvbiB7CiAgICAgICAgIFZhbHVlUHJvZmlsZSogcHJvZmlsZTsKLSAgICAgICAgUmVzdWx0UHJv
ZmlsZSogcmVzdWx0UHJvZmlsZTsKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGU7
CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKICAg
ICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMzM1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3MCArMzEsNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVO
QUJMRShKSVQpCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2Fs
bEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlKQot
ewotICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIocmVn
cywgbW9kZSk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5icmFuY2hJ
Zk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7Ci0gICAgLy8gRklYTUU6IFdlIGNv
dWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgotICAgIGVtaXRTZXREb3VibGUoaml0KTsKLSAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7Ci0gICAgbm90RG91YmxlLmxpbmso
JmppdCk7Ci0gICAgZW1pdFNldE5vbk51bWJlcihqaXQpOwotICAgIGRvbmUubGluaygmaml0KTsK
LSAgICBpc0ludDMyLmxpbmsoJmppdCk7Ci19Ci0KLXZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNl
dERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0UHJvZmls
ZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBSZXN1bHRQ
cm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
YWRkcmVzc09mRmxhZ3MoKSkpOwotfQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25O
dW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJzOjpBYnNv
bHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotI2VuZGlmIC8vIEVOQUJMRShKSVQp
Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RGIHsKLSAgICAKLXVzaW5nIG5h
bWVzcGFjZSBKU0M7Ci0KLXZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb25z
dCBSZXN1bHRQcm9maWxlJiBwcm9maWxlKQotewotICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9
ICIiOwotCi0gICAgaWYgKCFwcm9maWxlLmRpZE9ic2VydmVOb25JbnQzMigpKSB7Ci0gICAgICAg
IG91dC5wcmludCgiSW50MzIiKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAg
ICAgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWdaZXJvRG91YmxlIik7Ci0gICAgICAg
ICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlk
T2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJOb25O
ZWdaZXJvRG91YmxlIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgICAg
ICBvdXQucHJpbnQoIk5vbk51bWJlciIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkp
IHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIpOwotICAgICAgICAgICAg
c2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2Vy
dmVJbnQ1Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxv
dyIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgfQotICAg
IGlmIChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpIHsKLSAgICAgICAgb3V0LnByaW50
KCIgc3BlY2lhbCBmYXN0IHBhdGg6ICIpOwotICAgICAgICBvdXQucHJpbnQocHJvZmlsZS5zcGVj
aWFsRmFzdFBhdGhDb3VudCgpKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2
aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJv
ZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksODggKzIwOSw2IEBAIGlubGluZSBpbnQgZ2V0
UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmYKICAgICByZXR1cm4gcmFyZUNhc2VQcm9maWxlLT5t
X2J5dGVjb2RlT2Zmc2V0OwogfQogCi1zdHJ1Y3QgUmVzdWx0UHJvZmlsZSB7Ci1wcml2YXRlOgot
ICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtYmVyT2ZGbGFnQml0cyA9IDU7Ci0KLXB1YmxpYzoKLSAg
ICBSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLSAgICAgICAgOiBtX2J5dGVjb2Rl
T2Zmc2V0QW5kRmxhZ3MoYnl0ZWNvZGVPZmZzZXQgPDwgbnVtYmVyT2ZGbGFnQml0cykKLSAgICB7
Ci0gICAgICAgIEFTU0VSVCgoKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9mRmxhZ0JpdHMpID4+
IG51bWJlck9mRmxhZ0JpdHMpID09IGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICB9Ci0KLSAgICBlbnVt
IE9ic2VydmVkUmVzdWx0cyB7Ci0gICAgICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8IDAsCi0g
ICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDEsCi0gICAgICAgIE5vbk51bWJlciAgICAg
ICAgPSAxIDw8IDIsCi0gICAgICAgIEludDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCi0gICAgICAg
IEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDQsCi0gICAgfTsKLQotICAgIGludCBieXRlY29kZU9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyA+PiBudW1iZXJP
ZkZsYWdCaXRzOyB9Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBjb25zdCB7
IHJldHVybiBtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0KLSAgICBib29sIGRpZE9ic2VydmVO
b25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1pl
cm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlRG91YmxlKCkgY29u
c3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSk7IH0K
LSAgICBib29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFz
Qml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1plcm9Eb3Vi
bGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBk
aWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1iZXIpOyB9
Ci0gICAgYm9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoSW50MzJPdmVyZmxvdyk7IH0KLSAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9pZCBzZXRP
YnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91YmxlKTsgfQot
ICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVyb0RvdWJs
ZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9uTnVtYmVy
KTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQoSW50MzJP
dmVyZmxvdyk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpIHsgc2V0Qml0
KEludDUyT3ZlcmZsb3cpOyB9Ci0KLSAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsgcmV0dXJu
ICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KLSAgICB2b2lkKiBhZGRyZXNzT2ZTcGVjaWFs
RmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0gICAg
Ci0gICAgdm9pZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KHZhbHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFn
cyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBO
ZWdaZXJvRG91YmxlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIG1f
Ynl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1iZXI7Ci0gICAgfQotCi0jaWYgRU5BQkxF
KEpJVCkgICAgCi0gICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBO
b25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCi0gICAgLy8gZG91
YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KLSAgICB2b2lkIGVt
aXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0
ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwotICAgIAotICAgIC8vIFNldHMgKEludDMyT3Zl
cmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUp
LgotICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKLSAgICAKLSAgICAvLyBT
ZXRzIE5vbk51bWJlci4KLSAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7
Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotcHJpdmF0ZToKLSAgICBib29sIGhhc0JpdHMoaW50
IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyAmIG1hc2s7IH0K
LSAgICB2b2lkIHNldEJpdChpbnQgbWFzaykgeyBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0g
bWFzazsgfQotCi0gICAgaW50IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFnczsKLSAgICB1bnNpZ25l
ZCBtX3NwZWNpYWxGYXN0UGF0aENvdW50IHsgMCB9OwotfTsKLQotaW5saW5lIGludCBnZXRSZXN1
bHRQcm9maWxlQnl0ZWNvZGVPZmZzZXQoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKLXsKLSAgICBy
ZXR1cm4gcHJvZmlsZS0+Ynl0ZWNvZGVPZmZzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlND
CiAKLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBj
b25zdCBKU0M6OlJlc3VsdFByb2ZpbGUmKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KICNlbmRp
ZiAvLyBWYWx1ZVByb2ZpbGVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAz
MzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiQnl0
ZWNvZGVMaXZlbmVzc0FuYWx5c2lzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTE1
OTgsNyArMTU5OSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0QmluYXIK
IAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9iaXRvciB8fCBvcGNvZGVJRCA9PSBvcF9iaXRhbmQg
fHwgb3Bjb2RlSUQgPT0gb3BfYml0eG9yIHx8CiAgICAgICAgIG9wY29kZUlEID09IG9wX2FkZCB8
fCBvcGNvZGVJRCA9PSBvcF9tdWwgfHwgb3Bjb2RlSUQgPT0gb3Bfc3ViIHx8IG9wY29kZUlEID09
IG9wX2RpdikKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHR5cGVzLnRvSW50KCkpOwor
ICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoQXJpdGhQcm9maWxlKHR5cGVzLmZpcnN0KCks
IHR5cGVzLnNlY29uZCgpKS5iaXRzKCkpOwogCiAgICAgcmV0dXJuIGRzdDsKIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZp
c2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERG
R19KSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0
cnVjdG9yLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQ2Fs
bExpbmtTdGF0dXMuaCIKQEAgLTkxMCwyOSArOTExLDI4IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICByZXR1cm4gbm9kZTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7Ci0g
ICAgICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1Rv
cC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2Vy
LCBtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAg
ICAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtX2lubGluZVN0YWNrVG9wLT5t
X3Byb2ZpbGVkQmxvY2stPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fY3VycmVudElu
ZGV4KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUpIHsKICAgICAgICAgICAgICAgICBz
d2l0Y2ggKG5vZGUtPm9wKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgogICAg
ICAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUFk
ZDoKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3Vi
bGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZURv
dWJsZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5
SGF2ZURvdWJsZVJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFBy
b2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjYXNlIEFy
aXRoTXVsOiB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNl
cnZlSW50NTJPdmVyZmxvdygpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxl
LT5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQ1Mik7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5l
U3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJm
bG93KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUlu
dDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRT
aXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykpCiAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgp
IHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50
SW5kZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2Zp
bGUtPmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2Vs
aW5lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVE
b3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2
ZURvdWJsZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2Rl
TWF5SGF2ZURvdWJsZVJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9m
aWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0
aFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NDgsOSArMTU0
OCw4IEBAIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGgKICAgICAgICAg
ICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChu
b2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAogICAgICAgICB7
Ci0gICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5t
X2xvY2spOwogICAgICAgICAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJv
ZmlsaW5nKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0g
cHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgbm9k
ZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICAgICAgICAgIGlmIChB
cml0aFByb2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPmFyaXRoUHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlz
aW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDQsNyArNjA0LDcgQEAgdm9pZCBKSVRDb21waWxlcjo6
ZXhjZXB0aW9uQ2hlY2soKQogICAgIEhhbmRsZXJJbmZvKiBleGNlcHRpb25IYW5kbGVyOwogICAg
IGJvb2wgd2lsbENhdGNoRXhjZXB0aW9uID0gbV9ncmFwaC53aWxsQ2F0Y2hFeGNlcHRpb25Jbk1h
Y2hpbmVGcmFtZShtX3NwZWN1bGF0aXZlLT5tX2N1cnJlbnROb2RlLT5vcmlnaW4uZm9yRXhpdCwg
b3BDYXRjaE9yaWdpbiwgZXhjZXB0aW9uSGFuZGxlcik7IAogICAgIGlmICh3aWxsQ2F0Y2hFeGNl
cHRpb24pIHsKLSAgICAgICAgdW5zaWduZWQgc3RyZWFtSW5kZXggPSBtX3NwZWN1bGF0aXZlLT5t
X291dE9mTGluZVN0cmVhbUluZGV4ICE9IFVJTlRfTUFYID8gbV9zcGVjdWxhdGl2ZS0+bV9vdXRP
ZkxpbmVTdHJlYW1JbmRleCA6IG1fc3BlY3VsYXRpdmUtPm1fc3RyZWFtLT5zaXplKCk7CisgICAg
ICAgIHVuc2lnbmVkIHN0cmVhbUluZGV4ID0gbV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJl
YW1JbmRleCA/ICptX3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4IDogbV9zcGVj
dWxhdGl2ZS0+bV9zdHJlYW0tPnNpemUoKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
aGFkRXhjZXB0aW9uID0gZW1pdE5vblBhdGNoYWJsZUV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAg
IC8vIFdlIGFzc3VtZSBoZXJlIHRoYXQgdGhpcyBpcyBjYWxsZWQgYWZ0ZXIgY2FsbE9wZWFydGlv
bigpL2FwcGVuZENhbGwoKSBpcyBjYWxsZWQuCiAgICAgICAgIGFwcGVuZEV4Y2VwdGlvbkhhbmRs
aW5nT1NSRXhpdChFeGNlcHRpb25DaGVjaywgc3RyZWFtSW5kZXgsIG9wQ2F0Y2hPcmlnaW4sIGV4
Y2VwdGlvbkhhbmRsZXIsIG1faml0Q29kZS0+Y29tbW9uLmxhc3RDYWxsU2l0ZSgpLCBoYWRFeGNl
cHRpb24pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVy
YXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1Bh
dGhHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3
IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5tX291dE9mTGluZVN0cmVhbUluZGV4ID0gbV9zdHJl
YW1JbmRleDsKICAgICAgICAgaml0LT5tX29yaWdpbiA9IG1fb3JpZ2luOwogICAgICAgICBnZW5l
cmF0ZUludGVybmFsKGppdCk7Ci0gICAgICAgIGppdC0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9
IFVJTlRfTUFYOworICAgICAgICBqaXQtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBOdWxsb3B0
OwogICAgICAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkKICAgICAgICAgICAgIGppdC0+bV9qaXQu
YWJvcnRXaXRoUmVhc29uKERGR1Nsb3dQYXRoR2VuZXJhdG9yRmVsbFRocm91Z2gpOwogICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIkRGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
REZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKKyNp
bmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKICNpbmNs
dWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRPckdlbmVyYXRvci5o
IgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgIlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIldyaXRlQmFycmllckJ1
ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC0zNjIsNyArMzY0LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0bwogCiB2b2lkIFNwZWN1bGF0
aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbGFtYmRh
KQogewotICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihsYW1iZGEs
IG1fY3VycmVudE5vZGUpKTsKKyAgICBtX3Nsb3dQYXRoTGFtYmRhcy5hcHBlbmQoU2xvd1BhdGhM
YW1iZGF7IGxhbWJkYSwgbV9jdXJyZW50Tm9kZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc3Ry
ZWFtLT5zaXplKCkpIH0pOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpydW5TbG93UGF0aEdl
bmVyYXRvcnMoUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyJiBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxk
ZXIpCkBAIC0zNzEsMTEgKzM3MywxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpydW5TbG93UGF0
aEdlbmVyYXRvCiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5hcHBlbmRJdGVtKG1f
aml0LmxhYmVsKCksIHNsb3dQYXRoR2VuZXJhdG9yLT5vcmlnaW4oKS5zZW1hbnRpYyk7CiAgICAg
ICAgIHNsb3dQYXRoR2VuZXJhdG9yLT5nZW5lcmF0ZSh0aGlzKTsKICAgICB9Ci0gICAgZm9yIChh
dXRvJiBnZW5lcmF0b3JQYWlyIDogbV9zbG93UGF0aExhbWJkYXMpIHsKLSAgICAgICAgTm9kZSog
Y3VycmVudE5vZGUgPSBnZW5lcmF0b3JQYWlyLnNlY29uZDsKKyAgICBmb3IgKGF1dG8mIHNsb3dQ
YXRoTGFtYmRhIDogbV9zbG93UGF0aExhbWJkYXMpIHsKKyAgICAgICAgTm9kZSogY3VycmVudE5v
ZGUgPSBzbG93UGF0aExhbWJkYS5tX2N1cnJlbnROb2RlOwogICAgICAgICBtX2N1cnJlbnROb2Rl
ID0gY3VycmVudE5vZGU7CisgICAgICAgIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBzbG93UGF0
aExhbWJkYS5tX3N0cmVhbUluZGV4OwogICAgICAgICBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIu
YXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBjdXJyZW50Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsK
LSAgICAgICAgZ2VuZXJhdG9yUGFpci5maXJzdCgpOworICAgICAgICBzbG93UGF0aExhbWJkYS5t
X2dlbmVyYXRvcigpOworICAgICAgICBtX291dE9mTGluZVN0cmVhbUluZGV4ID0gTnVsbG9wdDsK
ICAgICB9CiB9CiAKQEAgLTMzNzksMzEgKzMzODMsNzcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlQWRkKE5vZAogICAgICAgICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1ZVJl
Z3MoKTsKICAgICB9CiAKLSAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdo
dE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGxlZnRG
UFIsIHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKLSAgICBnZW4uZ2VuZXJhdGVG
YXN0UGF0aChtX2ppdCk7CisgICAgYXV0byBzdGFydCA9IG1faml0LmxhYmVsKCk7CiAKLSAgICBB
U1NFUlQoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKTsKLSAgICBnZW4uZW5kSnVtcExpc3QoKS5hcHBl
bmQobV9qaXQuanVtcCgpKTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2ppdC5jb2RlQmxvY2so
KS0+YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPiBhZGRJQ0dl
bmVyYXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+OjpjcmVhdGUoKTsKKyAg
ICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1faml0LmdyYXBoKCkuYmFzZWxpbmVDb2Rl
QmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVP
ZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgIGFkZElDLT5t
X2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRj
aEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAotICAgIGdlbi5zbG93UGF0aEp1bXBM
aXN0KCkubGluaygmbV9qaXQpOworICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lID0gYWRkSUMtPmdl
bmVyYXRlSW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0aW9uU3RhdGUpOwogCi0gICAgc2lsZW50
U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAgaWYgKGdlbmVyYXRlZElubGluZSkg
eworICAgICAgICBBU1NFUlQoIWFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMu
ZW1wdHkoKSk7CiAKLSAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7Ci0gICAgICAgIGxl
ZnRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+
YXNKU1ZhbHVlKCksIGxlZnRSZWdzKTsKLSAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0Nv
bnN0KCkpIHsKLSAgICAgICAgcmlnaHRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQu
bW92ZVZhbHVlKHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgpLCByaWdodFJlZ3MpOwotICAgIH0KKyAg
ICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDQ+IHNhdmVQbGFuczsKKyAgICAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHJlc3VsdFJl
Z3MuZ3ByKCkpOwogCi0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgICAgIGF1dG8gZG9uZSA9IG1faml0Lmxh
YmVsKCk7CiAKLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOwotICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFs9XSAo
KSB7CisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aEp1bXBzLmxp
bmsoJm1faml0KTsKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRo
U3RhcnQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAgICBhdXRvIHNsb3dTdGFydCA9IG1f
aml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgIHNpbGVudFNwaWxsKHNhdmVQbGFucyk7CisKKyAg
ICAgICAgICAgIGF1dG8gaW5uZXJMZWZ0UmVncyA9IGxlZnRSZWdzOworICAgICAgICAgICAgYXV0
byBpbm5lclJpZ2h0UmVncyA9IHJpZ2h0UmVnczsKKyAgICAgICAgICAgIGlmIChsZWZ0T3BlcmFu
ZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lckxlZnRSZWdzID0gcmVzdWx0UmVn
czsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUobGVmdENoaWxkLT5hc0pTVmFsdWUo
KSwgaW5uZXJMZWZ0UmVncyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5p
c0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lclJpZ2h0UmVncyA9IHJlc3VsdFJlZ3M7
CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgp
LCBpbm5lclJpZ2h0UmVncyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChhZGRJ
Q0dlbmVyYXRpb25TdGF0ZS0+bV9zaG91bGRTbG93UGF0aFJlcGF0Y2gpCisgICAgICAgICAgICAg
ICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCByZXN1bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5l
clJpZ2h0UmVncywgYWRkSUMpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFk
ZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGlubmVyTGVmdFJlZ3MsIGlubmVyUmlnaHRSZWdzKTsK
KworICAgICAgICAgICAgc2lsZW50RmlsbChzYXZlUGxhbnMpOworICAgICAgICAgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgIG1faml0Lmp1bXAoKS5saW5rVG8oZG9uZSwg
Jm1faml0KTsKKworICAgICAgICAgICAgYXV0byBzbG93RW5kID0gbV9qaXQubGFiZWwoKTsKKwor
ICAgICAgICAgICAgbV9qaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
KSB7CisgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29kZSgqYWRkSUNHZW5l
cmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICAgICAgICAgIGFkZElDLT5tX2NvZGVT
aXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc2xvd0VuZCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc2xvd1N0YXJ0KS5leGVjdXRh
YmxlQWRkcmVzcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgIGxlZnQg
PSBKU1ZhbHVlT3BlcmFuZCh0aGlzLCBsZWZ0Q2hpbGQpOworICAgICAgICAgICAgbGVmdFJlZ3Mg
PSBsZWZ0LT5qc1ZhbHVlUmVncygpOworICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5p
c0NvbnN0KCkpIHsKKyAgICAgICAgICAgIHJpZ2h0ID0gSlNWYWx1ZU9wZXJhbmQodGhpcywgcmln
aHRDaGlsZCk7CisgICAgICAgICAgICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1ZVJlZ3MoKTsK
KyAgICAgICAgfQorCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkLCByZXN1bHRSZWdzLCBs
ZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1
bHRSZWdzKTsKKyAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICB9CisKKyAgICBh
dXRvIGRvbmUgPSBtX2ppdC5sYWJlbCgpOworICAgIG1faml0LmFkZExpbmtUYXNrKFs9XSAoTGlu
a0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICBhZGRJQy0+bV9jb2RlU2l6ZSArPSAoY2hh
ciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKGRvbmUpLmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hh
ciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAg
IH0pOwogCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmbV9qaXQpOwogICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0dXJuOwogfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMjAzMzUx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjg1LDYgKzEyODUsMTMgQEAgcHVibGljOgogCiAKICNpZiBVU0UoSlNW
QUxVRTY0KQorCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSkpKYWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBh
cmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBKSVRBZGRJQyogYWRkSUMpCisgICAgeworICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwg
VHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3Vs
dChvcGVyYXRpb24sIHJlc3VsdC5ncHIoKSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJl
c3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQog
ICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzIsIFRydXN0ZWRJbW1QdHIodWlkKSk7CkBAIC0yODMwLDkgKzI4MzcsMTQgQEAgcHVibGljOgog
ICAgIE1pbmlmaWVkR3JhcGgqIG1fbWluaWZpZWRHcmFwaDsKICAgICAKICAgICBWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiwgOD4gbV9zbG93UGF0aEdlbmVyYXRvcnM7
Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIE5vZGUqPiwgOD4g
bV9zbG93UGF0aExhbWJkYXM7CisgICAgc3RydWN0IFNsb3dQYXRoTGFtYmRhIHsKKyAgICAgICAg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IG1fZ2VuZXJhdG9yOworICAgICAgICBOb2RlKiBtX2N1cnJl
bnROb2RlOworICAgICAgICB1bnNpZ25lZCBtX3N0cmVhbUluZGV4OworICAgIH07CisgICAgVmVj
dG9yPFNsb3dQYXRoTGFtYmRhPiBtX3Nsb3dQYXRoTGFtYmRhczsKICAgICBWZWN0b3I8U2lsZW50
UmVnaXN0ZXJTYXZlUGxhbj4gbV9wbGFuczsKLSAgICB1bnNpZ25lZCBtX291dE9mTGluZVN0cmVh
bUluZGV4IHsgVUlOVF9NQVggfTsKKyAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9vdXRPZkxpbmVT
dHJlYW1JbmRleDsKIH07CiAKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1
Miw3IEBACiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCiAjaW5jbHVkZSAiRlRMV2VpZ2h0ZWRUYXJn
ZXQuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMu
aCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRPckdl
bmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdFhvckdlbmVyYXRvci5oIgpAQCAtMTUyOCw3ICsx
NTI5LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgpCiAgICAg
ewotICAgICAgICBlbWl0QmluYXJ5U25pcHBldDxKSVRBZGRHZW5lcmF0b3I+KG9wZXJhdGlvblZh
bHVlQWRkKTsKKyAgICAgICAgZW1pdEFkZFNuaXBwZXQoKTsKICAgICB9CiAgICAgCiAgICAgdm9p
ZCBjb21waWxlU3RyQ2F0KCkKQEAgLTgwNTgsNiArODA1OSw4NiBAQCBwcml2YXRlOgogICAgICAg
ICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOwogICAgIH0KIAorICAgIHZvaWQgZW1pdEFkZFNuaXBw
ZXQoKQorICAgIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKKyAgICAgICAgCisgICAg
ICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExW
YWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIFNuaXBw
ZXRPcGVyYW5kIGxlZnRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkucmVz
dWx0VHlwZSgpKTsKKyAgICAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKG1fc3RhdGUu
Zm9yTm9kZShub2RlLT5jaGlsZDIoKSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAgICAgIAorICAg
ICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0
KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGxlZnQpOworICAgICAg
ICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIocmlnaHQpOworICAgICAgICBwYXRjaHBv
aW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdNYXNr
UmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwg
VmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAg
ICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQor
ICAgICAgICAgICAgcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwor
ICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSAxOworICAgICAgICBw
YXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSAyOworICAgICAgICBwYXRjaHBvaW50
LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAg
IFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5l
cmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgICAgIEFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKworICAgICAgICAgICAgICAg
IEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0KKyAgICAgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1w
cyhqaXQpOworCisgICAgICAgICAgICAgICAgSklUQWRkSUMqIGFkZElDID0gaml0LmNvZGVCbG9j
aygpLT5hZGRKSVRBZGRJQygpOworICAgICAgICAgICAgICAgIEJveDxNYXRoSUNHZW5lcmF0aW9u
U3RhdGU+IGFkZElDR2VuZXJhdGlvblN0YXRlID0gQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT46
OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0g
c3RhdGUtPmdyYXBoLmJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykt
PmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRl
Y29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBKSVRBZGRH
ZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNWYWx1ZVJlZ3MocGFyYW1zWzBd
LmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigp
KSwgSlNWYWx1ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwgcGFyYW1zLmZwU2NyYXRjaCgwKSwKKyAg
ICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2NyYXRjaCgxKSwgcGFyYW1zLmdwU2NyYXRjaCgw
KSwgSW52YWxpZEZQUlJlZywgYXJpdGhQcm9maWxlKTsKKworICAgICAgICAgICAgICAgIGF1dG8g
c3RhcnQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICBib29sIGdlbmVyYXRlZElubGlu
ZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZShqaXQsICphZGRJQ0dlbmVyYXRpb25TdGF0ZSk7CisK
KyAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkSW5saW5lKSB7CisgICAgICAgICAgICAgICAg
ICAgIEFTU0VSVCghYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhKdW1wcy5lbXB0eSgp
KTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBkb25lID0gaml0LmxhYmVsKCk7CisgICAgICAg
ICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRlUGF0aChbPV0gKENDYWxsSGVscGVycyYgaml0KSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Ug
YWxsb3dTY3JhdGNoKGppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRp
b25TdGF0ZS0+bV9zbG93UGF0aEp1bXBzLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aFN0YXJ0ID0gaml0LmxhYmVsKCk7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBqaXQubGFiZWwoKTsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nob3Vs
ZFNsb3dQYXRoUmVwYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3dQYXRo
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lz
dGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwg
cGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51bmF2
YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9uVmFsdWVB
ZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQ
YXRoQ2FsbCA9IGNhbGwuY2FsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gaml0LmxhYmVsKCk7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2Rl
KCphZGRJQ0dlbmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWRkSUMtPm1fY29kZVNpemUgKz0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25P
ZihlbmQpLmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9m
KHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAq
c3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJh
dGlvblZhbHVlQWRkLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJd
LmdwcigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXV0byBlbmQgPSBq
aXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVm
ZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZElDLT5tX2NvZGVTaXpl
ICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVjdXRhYmxlQWRkcmVzcygp
IC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNldEpT
VmFsdWUocGF0Y2hwb2ludCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmluYXJ5
Qml0T3BHZW5lcmF0b3I+CiAgICAgdm9pZCBlbWl0QmluYXJ5Qml0T3BTbmlwcGV0KEpfSklUT3Bl
cmF0aW9uX0VKSiBzbG93UGF0aEZ1bmN0aW9uKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5OSw2
ICsyMDk5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgVHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAg
ICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIyPihhcmcxLCBhcmcyKTsKKyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1
bWVudEdQUjMpOworICAgICAgICBtb3ZlKGFyZzQsIEdQUkluZm86OmFyZ3VtZW50R1BSNCk7Cisg
ICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgVHJ1c3RlZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tMzIg
YXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1KQogICAgIHsKICAgICAgICAgc2V0dXBUaHJl
ZVN0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFI0
LCBHUFJJbmZvOjphcmd1bWVudEdQUjU+KGFyZzEsIGFyZzQsIGFyZzUpOwpAQCAtMjIwNyw2ICsy
MjE1LDE1IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQor
ICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSk7CisjZWxzZQorICAgICAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCks
IGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpKTsKKyNlbmRp
ZgorICAgIH0KKwogICAgIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVS
ZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMykKICAgICB7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIyMTUsNiArMjIzMiwxNSBAQCBwdWJsaWM6CiAgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBh
eWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BS
KCksIGFyZzMpOwogI2VuZGlmCiAgICAgfQorCisgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0
ciBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigp
LCBhcmczLCBhcmc0KTsKKyNlbHNlCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwg
YXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOworI2VuZGlmCisgICAgfQog
ICAgIAogICAgIHZvaWQgc2V0dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZN
UG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1MSw2ICszNTEsOCBAQCBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRv
cjo6bWVtb3J5UHJlc3N1CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2luY2x1ZGUgPHN0ZGlv
Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRs
ZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6ZUluQnl0ZXMs
IHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiB7CiAgICAgaWYg
KE9wdGlvbnM6OmxvZ0V4ZWN1dGFibGVBbGxvY2F0aW9uKCkpIHsKQEAgLTM4NSw2ICszODcsMTQg
QEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1dGFibAogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICAvKgorICAgIHN0YXRpYyBzaXplX3Qg
cGVha1NpemUgPSAwOworICAgIGF1dG8gcGlkID0gZ2V0cGlkKCk7CisgICAgTWV0YUFsbG9jYXRv
cjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxsb2NhdG9yLT5jdXJyZW50U3RhdGlzdGljcygp
OworICAgIGRhdGFMb2coIlBJRDogIiwgcGlkLCAgIiBDdXJyZW50IGV4ZWN1dGFibGUgbWVtb3J5
IGJ5dGVzIGFsbG9jYXRlZDogIiwgc3RhdGlzdGljcy5ieXRlc0FsbG9jYXRlZCwgIlxuIik7Cisg
ICAgcGVha1NpemUgPSBzdGQ6Om1heChzdGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkLCBwZWFrU2l6
ZSk7CisgICAgZGF0YUxvZygiUElEOiAiLCBwaWQsICAiIHBlYWsgZXhlY3V0YWJsZSBtZW1vcnkg
Ynl0ZXMgYWxsb2NhdGVkOiAiLCBwZWFrU2l6ZSwgIlxuIik7CisgICAgKi8KICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMzM1
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDEyICs0MSwxMiBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvbXBh
Y3RKSVRDb2RlTWFwLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJKSVRN
YXRoSUMuaCIKICNpbmNsdWRlICJKSVREaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRJbmxp
bmVDYWNoZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpTSW50ZXJmYWNlSklULmgiCiAjaW5jbHVk
ZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmlnaW5NYXAuaCIKLSNpbmNsdWRlICJS
ZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTQzNSw3ICs0MzUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjb21w
aWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRpZmllciopOwogCiAgICAgICAgIC8vIEFyaXRo
bWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAgdm9pZCBlbWl0U3ViMzJDb25zdGFudChpbnQg
ZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQsIFJlc3VsdFR5cGUgb3BUeXBlKTsKICAgICAg
ICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bjb2RlSUQsIGludCBkc3QsIGludCBvcDEsIGlu
dCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3QmIG5vdEludDMyT3AxLCBKdW1wTGlzdCYgbm90
SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVycyA9IHRydWUsIGJvb2wgb3AySXNJblJlZ2lz
dGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNzYzLDcgKzc2
MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJSZWcsIFVuaXF1
ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCwgSlNW
YWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmlsZSopOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SlJwLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBBcml0aFByb2ZpbGUq
KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSkosIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MpOworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJw
SmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxl
KiwgSklUQWRkSUMqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFs
dWVSZWdzLCBKSVRBZGRJQyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVBy
b2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpP
SiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CkBAIC05NTMsNiArOTU1LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyIG1fcGNUb0NvZGVPcmln
aW5NYXBCdWlsZGVyOwogCisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24qLCBKSVRBZGRJQyo+
IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDOworICAgICAgICBIYXNoTWFwPEluc3RydWN0aW9uKiwg
TWF0aElDR2VuZXJhdGlvblN0YXRlPiBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25T
dGF0ZTsKKwogICAgICAgICBib29sIG1fY2FuQmVPcHRpbWl6ZWQ7CiAgICAgICAgIGJvb2wgbV9j
YW5CZU9wdGltaXplZE9ySW5saW5lZDsKICAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxp
bmc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3Iu
Y3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFk
ZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiw2NiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAi
QXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCisjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXZvaWQgSklU
QWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQorI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Citib29sIEpJVEFkZEdlbmVyYXRv
cjo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZSYgc3RhdGUpCit7CisgICAgLy8gV2UgZGVmYXVsdCB0byBndWVzc2luZyBpbnQzMgorICAgIE9i
c2VydmVkVHlwZSBsaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAgICBPYnNlcnZl
ZFR5cGUgcmhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgc3RhdGljIGRvdWJs
ZSBudW1JQ3MgPSAwOworICAgIHN0YXRpYyBkb3VibGUgbnVtSW50cyA9IDA7CisgICAgbnVtSUNz
Kys7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKSB7CisgICAgICAgIGxocyA9IG1fYXJpdGhQcm9m
aWxlLT5saHNPYnNlcnZlZFR5cGUoKTsKKyAgICAgICAgcmhzID0gbV9hcml0aFByb2ZpbGUtPnJo
c09ic2VydmVkVHlwZSgpOworICAgICAgICBpZiAobGhzLmlzRW1wdHkoKSB8fCByaHMuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICBsaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAg
ICAgICAgICAgIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKGxocy5pc09ubHlOb25OdW1iZXIoKSAmJiByaHMuaXNPbmx5Tm9uTnVt
YmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgobGhzLmlzT25seUludDMy
KCkgfHwgbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgJiYgKHJocy5pc09ubHlJbnQzMigp
IHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSkgeworICAgICAgICBzdGF0ZS5tX3No
b3VsZFNsb3dQYXRoUmVwYXRjaCA9IHRydWU7CisKKyAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVy
YW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7Cisg
ICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkKKyAgICAgICAgICAgIHN0
YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KSk7
CisgICAgICAgIGlmICghbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpCisgICAgICAgICAg
ICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKG1fcmln
aHQpKTsKKworICAgICAgICBpZiAobV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCBtX3Jp
Z2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgeworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFy
ID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmlnaHQgOiBtX2xlZnQ7CisgICAg
ICAgICAgICBpbnQzMl90IGNvbnN0VmFsdWUgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigp
ID8gbV9sZWZ0T3BlcmFuZC5hc0NvbnN0SW50MzIoKSA6IG1fcmlnaHRPcGVyYW5kLmFzQ29uc3RJ
bnQzMigpOworICAgICAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJh
bmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFyLnBheWxvYWRHUFIoKSwgQ0NhbGxI
ZWxwZXJzOjpJbW0zMihjb25zdFZhbHVlKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoQWRk
MzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5w
YXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUikpOworICAgICAgICBqaXQuYm94SW50MzIobV9zY3Jh
dGNoR1BSLCBtX3Jlc3VsdCk7CisgICAgICAgIG51bUludHMrKzsKKyAgICAgICAgLy9kYXRhTG9n
KCJJQyBhcyBpbnQgcGVyY2VudGFnZTogIiwgbnVtSW50cy9udW1JQ3MsICJcbiIpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0ZS5tX3Nob3VsZFNsb3dQYXRoUmVwYXRj
aCA9IHRydWU7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVuZEp1bXBMaXN0OworICAg
IGJvb2wgcmVzdWx0ID0gZ2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBMaXN0LCBzdGF0ZS5t
X3Nsb3dQYXRoSnVtcHMpOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIGVuZEp1bXBMaXN0Lmxp
bmsoJmppdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBKSVRBZGRHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIENDYWxsSGVscGVyczo6SnVtcExp
c3QmIGVuZEp1bXBMaXN0LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93UGF0aEp1bXBMaXN0
KQogewogICAgIEFTU0VSVChtX3NjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CiAgICAgQVNT
RVJUKG1fc2NyYXRjaEdQUiAhPSBtX2xlZnQucGF5bG9hZEdQUigpKTsKQEAgLTQzLDEyICs5OCw4
IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIEFTU0VS
VCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25z
dEludDMyKCkpOwogICAgIAotICAgIGlmICghbV9sZWZ0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkg
fHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkgewotICAgICAgICBBU1NFUlQoIW1f
ZGlkRW1pdEZhc3RQYXRoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZGlkRW1p
dEZhc3RQYXRoID0gdHJ1ZTsKKyAgICBpZiAoIW1fbGVmdE9wZXJhbmQubWlnaHRCZU51bWJlcigp
IHx8ICFtX3JpZ2h0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8IG1fcmlnaHRPcGVy
YW5kLmlzQ29uc3RJbnQzMigpKSB7CiAgICAgICAgIEpTVmFsdWVSZWdzIHZhciA9IG1fbGVmdE9w
ZXJhbmQuaXNDb25zdEludDMyKCkgPyBtX3JpZ2h0IDogbV9sZWZ0OwpAQCAtNTgsMjAgKzEwOSwy
MCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIC8v
IFRyeSB0byBkbyBpbnRWYXIgKyBpbnRDb25zdGFudC4KICAgICAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIG5vdEludDMyID0gaml0LmJyYW5jaElmTm90SW50MzIodmFyKTsKIAotICAgICAgICBtX3Ns
b3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJm
bG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0T3ByLmFzQ29u
c3RJbnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBw
ZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQ
UigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0T3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3Jh
dGNoR1BSKSk7CiAKICAgICAgICAgaml0LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQp
OwotICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgZW5k
SnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgIGlmICghaml0LnN1cHBvcnRz
RmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5k
KG5vdEludDMyKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKG5vdEludDMyKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAKICAgICAgICAgLy8gVHJ5IHRvIGRvIGRvdWJsZVZhciArIGRvdWJsZShpbnRDb25zdGFu
dCkuCiAgICAgICAgIG5vdEludDMyLmxpbmsoJmppdCk7CiAgICAgICAgIGlmICghdmFyT3ByLmRl
ZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIodmFyLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAg
IHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcih2YXIsIG1fc2Ny
YXRjaEdQUikpOwogCiAgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKHZhciwg
bV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIsIG1fc2NyYXRjaEZQUik7CiAKQEAgLTg5LDIyICsxNDAs
MjQgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBs
ZWZ0Tm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsKICAgICAgICAgcmlnaHRO
b3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKIAotICAgICAgICBtX3Nsb3dQ
YXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93
LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BS
KSk7CisKKyAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKEND
YWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9h
ZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQuYm94SW50MzIobV9zY3JhdGNo
R1BSLCBtX3Jlc3VsdCk7Ci0gICAgICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkp
OworICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CisKIAogICAgICAgICBp
ZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewotICAgICAgICAgICAgbV9zbG93UGF0
aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQocmlnaHROb3RJbnQpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobGVmdE5vdEludCk7CisgICAgICAgICAgICBzbG93
UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCiAgICAgICAgIGxlZnROb3RJbnQubGluaygmaml0KTsKICAgICAgICAg
aWYgKCFtX2xlZnRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9z
bG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9sZWZ0LCBtX3Nj
cmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikpOwogICAgICAgICBpZiAoIW1fcmln
aHRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1
bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BS
KSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3RO
dW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LnVuYm94RG91Ymxl
Tm9uRGVzdHJ1Y3RpdmUobV9sZWZ0LCBtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUiwgbV9zY3JhdGNo
RlBSKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHJpZ2h0SXNEb3VibGUgPSBqaXQuYnJh
bmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKQEAgLTExNCw3ICsxNjcsNyBAQCB2b2lkIEpJVEFkZEdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICAgICAgcmlnaHROb3RJbnQubGluaygm
aml0KTsKICAgICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5kZWZpbml0ZWx5SXNOdW1iZXIoKSkK
LSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVt
YmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlz
dC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOwog
CiAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShtX2xlZnQucGF5bG9hZEdQUigpLCBt
X2xlZnRGUFIpOwogCkBAIC0xMjgsMTAgKzE4MSwxMiBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICAvLyBEbyBkb3VibGVWYXIgKyBkb3VibGVWYXIuCiAg
ICAgaml0LmFkZERvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOwotICAgIGlmIChtX3Jlc3Vs
dFByb2ZpbGUpCi0gICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOwor
ICAgIGlmIChtX2FyaXRoUHJvZmlsZSkKKyAgICAgICAgbV9hcml0aFByb2ZpbGUtPmVtaXRTZXRE
b3VibGUoaml0KTsKICAgICAgICAgCiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVz
dWx0KTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkocmV2aXNpb24g
MjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksMTYgKzI5LDIyIEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJTbmlwcGV0T3BlcmFuZC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RydWN0IE1hdGhJ
Q0dlbmVyYXRpb25TdGF0ZTsKKwogY2xhc3MgSklUQWRkR2VuZXJhdG9yIHsKIHB1YmxpYzoKKyAg
ICBKSVRBZGRHZW5lcmF0b3IoKQorICAgIHsgfQorCiAgICAgSklUQWRkR2VuZXJhdG9yKFNuaXBw
ZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3Mgcmln
aHQsCiAgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZSA9IG51bGxwdHIpCisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0g
bnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAs
IG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQp
CkBAIC00OCwxNiArNTQsMTMgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRG
UFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoRlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2Zp
bGUpCisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFu
ZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQogCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKEND
YWxsSGVscGVycyYpOwotCi0gICAgYm9vbCBkaWRFbWl0RmFzdFBhdGgoKSBjb25zdCB7IHJldHVy
biBtX2RpZEVtaXRGYXN0UGF0aDsgfQotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QmIGVuZEp1
bXBMaXN0KCkgeyByZXR1cm4gbV9lbmRKdW1wTGlzdDsgfQotICAgIENDYWxsSGVscGVyczo6SnVt
cExpc3QmIHNsb3dQYXRoSnVtcExpc3QoKSB7IHJldHVybiBtX3Nsb3dQYXRoSnVtcExpc3Q7IH0K
KyAgICBib29sIGdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYsIE1hdGhJQ0dlbmVyYXRpb25T
dGF0ZSYpOworICAgIGJvb2wgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xv
d1BhdGhKdW1wTGlzdCk7CiAKIHByaXZhdGU6CiAgICAgU25pcHBldE9wZXJhbmQgbV9sZWZ0T3Bl
cmFuZDsKQEAgLTY5LDExICs3Miw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7
CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAg
IFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKLSAgICBib29sIG1fZGlkRW1pdEZhc3RQ
YXRoIHsgZmFsc2UgfTsKLQotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlz
dDsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wTGlzdDsKKyAgICBB
cml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHJldmlz
aW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKICNpZiBFTkFCTEUoSklUKQogI2lu
Y2x1ZGUgIkpJVC5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ29k
ZUJsb2NrLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0
T3JHZW5lcmF0b3IuaCIKQEAgLTQ4LDYgKzUwLDcgQEAKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgi
CiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkBAIC02ODAsNyArNjgzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
YWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwot
ICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoQXJpdGhQcm9m
aWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLmxoc1Jlc3VsdFR5
cGUoKSwgQXJpdGhQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJh
bmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTVmFsdWVS
ZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtNjk1LDEwICs2OTgsMTQgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEdQUlJlZyBzY3Jh
dGNoR1BSID0gcmVnVDQ7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlm
CisgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hHUFIpOworICAgIFVOVVNFRF9QQVJBTShzY3JhdGNo
RlBSKTsKIAotICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOwotICAg
IGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2Nv
ZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0
aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9m
aWxpbmcoKSkgeworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxvY2stPmFyaXRoUHJv
ZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIEFTU0VSVChhcml0aFByb2Zp
bGUpOworICAgIH0KIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0
KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBA
IC03MTAsNDYgKzcxNyw1MSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAKICAgICBSRUxFQVNFX0FTU0VSVCghbGVmdE9wZXJhbmQuaXNDb25zdCgpIHx8ICFyaWdo
dE9wZXJhbmQuaXNDb25zdCgpKTsKIAorICAgIGF1dG8gc3RhcnQgPSBsYWJlbCgpOworCiAgICAg
aWYgKCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgaWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAg
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAotICAgIEpJVEFk
ZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwg
c2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAgSklUQWRkSUMqIGFkZElDID0gbV9jb2Rl
QmxvY2stPmFkZEpJVEFkZElDKCk7CiAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7
CisgICAgbV9pbnN0cnVjdGlvblRvSklUQWRkSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRk
SUMpOworICAgIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBt
X2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5hZGQoY3VycmVudEluc3RydWN0
aW9uLCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUoKSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYg
KGdlbi5kaWRFbWl0RmFzdFBhdGgoKSkgewotICAgICAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5r
KHRoaXMpOwotICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVn
cyk7Ci0gICAgICAgIAotICAgICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wTGlzdCgp
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHko
KSk7Ci0gICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAg
ICAgICBpZiAocmVzdWx0UHJvZmlsZSkgewotICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlz
Q29uc3QoKSkKLSAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVm
dFJlZ3MpOwotICAgICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAg
ICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwotICAgICAgICAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5z
dHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwo
KTsKLSAgICAgICAgfQotICAgIH0KKyAgICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBKSVRBZGRHZW5l
cmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJp
Z2h0UmVncywgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQ
cm9maWxlKTsKKworICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lQ29kZSA9IGFkZElDLT5nZW5lcmF0
ZUlubGluZSgqdGhpcywgYWRkSUNHZW5lcmF0aW9uU3RhdGUpOworICAgIGlmICghZ2VuZXJhdGVk
SW5saW5lQ29kZSkgeworICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAg
ICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAgICAgZWxz
ZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworCisgICAgICAgIGlmIChhcml0aFByb2ZpbGUpCisg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3Vs
dFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGFyaXRoUHJvZmlsZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MpOworICAgIH0gZWxzZQorICAgICAgICBhZGRTbG93Q2FzZShh
ZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRoSnVtcHMpOworICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKKyAgICBhdXRvIGVuZCA9IGxhYmVsKCk7Cisg
ICAgYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgIGFk
ZElDLT5tX2NvZGVTaXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVj
dXRhYmxlQWRkcmVzcygpIC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2Fk
ZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNl
dChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKKyAgICBNYXRoSUNHZW5l
cmF0aW9uU3RhdGUmIGFkZElDR2VuZXJhdGlvblN0YXRlID0gbV9pbnN0cnVjdGlvblRvSklUQWRk
SUNHZW5lcmF0aW9uU3RhdGUuZmluZChjdXJyZW50SW5zdHJ1Y3Rpb24pLT52YWx1ZTsKKyAgICBh
ZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRoU3RhcnQgPSBsYWJlbCgpOworCiAgICAgaW50
IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9
IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFu
ZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIE9w
ZXJhbmRUeXBlcyB0eXBlcyhBcml0aFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9u
WzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBBcml0aFByb2ZpbGU6OmZyb21JbnQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MCk7CkBAIC03NjksMTggKzc4MSwzMCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3Ry
dWN0aW9uKiBjCiAgICAgZWxzZSBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkKICAgICAg
ICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9wMikp
OwogCisgICAgYXV0byBzdGFydCA9IGxhYmVsKCk7CisKKyAgICBpZiAobGVmdE9wZXJhbmQuaXND
b25zdCgpKQorICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAg
ICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDIsIHJpZ2h0UmVncyk7CisKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2luc3RydWN0
aW9uVG9KSVRBZGRJQy5nZXQoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBpZiAoc2hvdWxkRW1p
dFByb2ZpbGluZygpKSB7Ci0gICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwotICAgICAgICBp
ZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7
Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7Ci0gICAgICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlv
biwgc2xvd19wYXRoX2FkZCk7Ci0gICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Ci0gICAgfQor
ICAgICAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hcml0aFBy
b2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgICAgICBpZiAoYWRkSUNHZW5lcmF0
aW9uU3RhdGUubV9zaG91bGRTbG93UGF0aFJlcGF0Y2gpCisgICAgICAgICAgICBhZGRJQ0dlbmVy
YXRpb25TdGF0ZS5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVB
ZGRQcm9maWxlZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJp
dGhQcm9maWxlLCBhZGRJQyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFkZElDR2VuZXJh
dGlvblN0YXRlLm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxl
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aENh
bGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIGFkZElDKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgYXV0byBlbmQgPSBsYWJlbCgpOworCisgICAgYWRk
TGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgIE1hdGhJQ0dl
bmVyYXRpb25TdGF0ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRB
ZGRJQ0dlbmVyYXRpb25TdGF0ZS5maW5kKGN1cnJlbnRJbnN0cnVjdGlvbiktPnZhbHVlOworICAg
ICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKGFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5r
QnVmZmVyKTsKKyAgICAgICAgYWRkSUMtPm1fY29kZVNpemUgKz0gKGNoYXIqKWxpbmtCdWZmZXIu
bG9jYXRpb25PZihlbmQpLmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5s
b2NhdGlvbk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIH0pOwogfQogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTc4
OCw3ICs4MTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAg
ICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50
IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0g
T3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwor
ICAgIE9wZXJhbmRUeXBlcyB0eXBlcyhBcml0aFByb2ZpbGU6OmZyb21JbnQoY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBBcml0aFByb2ZpbGU6OmZyb21J
bnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKIAog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMCk7CkBAIC04MDMsOSArODI3LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3Ry
dWN0aW9uKiBjdXJyZQogI2VuZGlmCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwog
Ci0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQ
cm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmls
aW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0
UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29k
ZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25p
cHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJh
bmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTgzMSw3ICs4NTUsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklURGl2R2VuZXJhdG9yIGdlbihs
ZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdz
LAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1
bHRQcm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRj
aEZQUiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
IApAQCAtODYxLDcgKzg4NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsK
ICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQg
b3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMg
dHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCk7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzKEFyaXRoUHJvZmlsZTo6ZnJvbUludChjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIEFyaXRoUHJvZmls
ZTo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5yaHNSZXN1bHRUeXBl
KCkpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpT
VmFsdWVSZWdzKHJlZ1QwKTsKQEAgLTg3Nyw5ICs5MDEsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9t
dWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwog
I2VuZGlmCiAKLSAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAg
ICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVt
aXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1
cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUg
PSAmbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAK
ICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlw
cGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtODk3LDcgKzkyMSw3
IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAKICAgICBKSVRNdWxHZW5lcmF0
b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCBy
aWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hG
UFIsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BS
LCBzY3JhdGNoRlBSLCBhcml0aFByb2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOwogCkBAIC05MDksMTIgKzkzMywxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5z
dHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5lbmRKdW1w
TGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5l
bXB0eSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsKKyAgICAgICAgaWYgKGFyaXRo
UHJvZmlsZSkgewogICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdElu
dDMyKCkpCiAgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRS
ZWdzKTsKICAgICAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIo
KSkKICAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdz
KTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIGFyaXRoUHJvZmlsZSk7CiAgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CkBAIC05MzAsNyArOTU0LDcgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMoQXJp
dGhQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLmxoc1Jl
c3VsdFR5cGUoKSwgQXJpdGhQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpT
VmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwpAQCAtOTU1LDggKzk3OSw4
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICAgICAgICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgICAgIGlmIChyaWdo
dE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9m
ZnNldCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAg
IEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZv
clBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
VmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgJmFyaXRo
UHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRS
ZWdzKTsKICAgICB9IGVsc2UgewogICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxs
KHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CkBAIC05NjksNyArOTkz
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBPcGVy
YW5kVHlwZXMgdHlwZXMoQXJpdGhQcm9maWxlOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51Lm9wZXJhbmQpLmxoc1Jlc3VsdFR5cGUoKSwgQXJpdGhQcm9maWxlOjpmcm9tSW50KGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7CiAKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDAp
OwpAQCAtOTg1LDkgKzEwMDksOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24q
IGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2ZpbGUq
IGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkK
LSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxl
KG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxvY2st
PmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0T3Bl
cmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdo
dE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtOTk2LDcgKzEwMjAsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihvcDIsIHJpZ2h0UmVncyk7CiAKICAgICBKSVRTdWJHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5k
LCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAg
IGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUp
OworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0
aFByb2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC0xMDIz
LDggKzEwNDcsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bfc3ViKEluc3RydWN0aW9uKiBjCiAj
ZW5kaWYKIAogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKLSAgICAgICAgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxl
KG1fYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVl
U3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2Zp
bGUpOworICAgICAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5h
cml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdo
dFJlZ3MsICZhcml0aFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJl
c3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxs
IHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9zdWIpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAko
cmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
SklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCiAKQEAgLTEyOCw4ICsxMjksOCBAQCB2
b2lkIEpJVERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICBub3REb3VibGVa
ZXJvLmxpbmsoJmppdCk7CiAjZW5kaWYKLSAgICBpZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAg
ICBqaXQuYWRkMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRo
Q291bnQoKSkpOworICAgIGlmIChtX2FyaXRoUHJvZmlsZSkKKyAgICAgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhCaXQp
LCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09m
Qml0cygpKSk7CiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5oCShyZXZp
c2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVREaXZH
ZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBK
U1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJh
bmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1f
cmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmln
aHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAg
ICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxl
KHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFt
X3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNzEsNyArNzEsNyBAQCBw
cml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7
CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFBy
b2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAgICBib29sIG1fZGlk
RW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9l
bmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtNDE2LDkgKzQxNiwzMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAotaW5saW5lIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCBvcGVyYXRpb24sIEpTVmFsdWVSZWdz
IHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgUmVzdWx0UHJvZmls
ZSogcmVzdWx0UHJvZmlsZSkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEpTVmFsdWVSZWdz
IHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMikKIHsKLSAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQ
cm9maWxlKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwor
ICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
KyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKworQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKUnAgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFy
ZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFy
aXRoUHJvZmlsZSkpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2Fs
bDsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnBKYWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVz
dWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBBcml0aFByb2ZpbGUqIGFy
aXRoUHJvZmlsZSwgSklUQWRkSUMqIGFkZElDKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFyaXRoUHJvZmlsZSksIFRydXN0ZWRJ
bW1QdHIoYWRkSUMpKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNh
bGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1
bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykK
K3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZElt
bVB0cihhZGRJQykpOwogICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKICAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKICAgICByZXR1cm4gY2Fs
bDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUMuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBKSVRBZGRJQ19oCisjZGVmaW5lIEpJVEFkZElDX2gKKworI2lmIEVO
QUJMRShKSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJKSVRBZGRH
ZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVwYXRjaC5o
IgorI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFz
cyBMaW5rQnVmZmVyOworCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlvblN0YXRlIHsKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6TGFiZWwgbV9mYXN0UGF0aFN0YXJ0OworICAgIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBtX2Zhc3RQYXRoRW5kOworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX3Nsb3dQYXRo
U3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbV9zbG93UGF0aENhbGw7CisgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wczsKKyAgICBib29sIG1fc2hvdWxk
U2xvd1BhdGhSZXBhdGNoOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvclR5cGU+
CitjbGFzcyBKSVRNYXRoSUMgeworcHVibGljOgorICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVM
b2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQubGFiZWxBdE9mZnNldChtX2lubGluZVNp
emUpOyB9CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xvd1BhdGhTdGFydExvY2F0aW9uKCkgeyBy
ZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQ
YXRoU3RhcnQpOyB9CisgICAgQ29kZUxvY2F0aW9uQ2FsbCBzbG93UGF0aENhbGxMb2NhdGlvbigp
IHsgcmV0dXJuIG1faW5saW5lU3RhcnQuY2FsbEF0T2Zmc2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Ns
b3dQYXRoQ2FsbExvY2F0aW9uKTsgfQorCisgICAgYm9vbCBnZW5lcmF0ZUlubGluZShDQ2FsbEhl
bHBlcnMmIGppdCwgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKKyAgICB7CisgICAgICAg
IHN0YXRlLm1fZmFzdFBhdGhTdGFydCA9IGppdC5sYWJlbCgpOworICAgICAgICBib29sIHJlc3Vs
dCA9IG1fZ2VuZXJhdG9yLmdlbmVyYXRlSW5saW5lKGppdCwgc3RhdGUpOworICAgICAgICBzdGF0
ZS5tX2Zhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorCisgICAgdm9pZCBnZW5lcmF0ZU91dE9mTGluZShWTSYgdm0sIENvZGVCbG9jayogY29k
ZUJsb2NrLCBGdW5jdGlvblB0ciBjYWxsUmVwbGFjZW1lbnQpCisgICAgeworICAgICAgICAvLyBX
ZSByZXdpcmUgdG8gdGhlIGFsdGVybmF0ZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHdl
IGNhbiBhbGxvY2F0ZSB0aGUgb3V0IG9mIGxpbmUgcGF0aAorICAgICAgICAvLyBiZWNhdXNlIGlm
IHdlIGZhaWwgYWxsb2NhdGluZyB0aGUgb3V0IG9mIGxpbmUgcGF0aCwgd2UgZG9uJ3Qgd2FudCB0
byB0cnkgdG8gYWxsb2NhdGUgaXQKKyAgICAgICAgLy8gYWdhaW4uIEl0J3Mgbm90IGltcG9ydGFu
dCBlbm91Z2ggdG8gd2FycmFudCB0aGF0LgorICAgICAgICB0aHVua0F3YXJlUmVwYXRjaENhbGwo
Y29kZUJsb2NrLCBzbG93UGF0aENhbGxMb2NhdGlvbigpLCBjYWxsUmVwbGFjZW1lbnQpOworCisg
ICAgICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOwor
CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7IAorICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcExpc3Q7IAorICAg
ICAgICAgICAgYm9vbCBlbWl0dGVkRmFzdFBhdGggPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUZhc3RQ
YXRoKGppdCwgZW5kSnVtcExpc3QsIHNsb3dQYXRoSnVtcExpc3QpOworICAgICAgICAgICAgaWYg
KCFlbWl0dGVkRmFzdFBhdGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAgICAgICAgIAorICAgICAgICAg
ICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCBqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRp
b25DYW5GYWlsKTsKKyAgICAgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRl
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBsaW5rQnVmZmVyLmxp
bmsoZW5kSnVtcExpc3QsIGRvbmVMb2NhdGlvbigpKTsKKyAgICAgICAgICAgIGxpbmtCdWZmZXIu
bGluayhzbG93UGF0aEp1bXBMaXN0LCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisKKyAgICAg
ICAgICAgIG1fY29kZSA9IEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAgIGNvZGVC
bG9jaywgbGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6IGdlbmVyYXRpbmcgb3V0IG9mIGxpbmUgSUMg
c25pcHBldCIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVs
cGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgYXV0byBqdW1wID0gaml0Lmp1
bXAoKTsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgYSBub3Agc2xlZCBoZXJlIGJlY2F1
c2Ugbm9ib2R5IHNob3VsZCBiZSBqdW1waW5nIGludG8gdGhlIG1pZGRsZSBvZiBhbiBJQy4KKyAg
ICAgICAgICAgIGJvb2wgbmVlZHNCcmFuY2hDb21wYWN0aW9uID0gZmFsc2U7CisgICAgICAgICAg
ICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBtX2lubGluZVN0YXJ0LmRhdGFMb2NhdGlvbigp
LCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSwgSklUQ29tcGlsYXRpb25NdXN0
U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9uKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhq
dW1wLCBDb2RlTG9jYXRpb25MYWJlbChtX2NvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
KTsKKyAgICAgICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6IGxp
bmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2YgbGluZSBqaXQgYWRkIGdlbmVyYXRvciIpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZmluYWxpemVJbmxpbmVDb2RlKGNvbnN0IE1h
dGhJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCisgICAg
eworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzdGFydCA9IGxpbmtCdWZmZXIubG9jYXRpb25P
ZihzdGF0ZS5tX2Zhc3RQYXRoU3RhcnQpOworICAgICAgICBtX2lubGluZVN0YXJ0ID0gc3RhcnQ7
CisKKyAgICAgICAgaW50MzJfdCBpbmxpbmVTaXplID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVu
Y2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9u
T2Yoc3RhdGUubV9mYXN0UGF0aEVuZCkpOworICAgICAgICBBU1NFUlQoaW5saW5lU2l6ZSA+IDAp
OworICAgICAgICBtX2lubGluZVNpemUgPSBpbmxpbmVTaXplOworCisgICAgICAgIG1fZGVsdGFG
cm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVu
Y2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9u
T2Yoc3RhdGUubV9zbG93UGF0aENhbGwpKTsKKyAgICAgICAgbV9kZWx0YUZyb21TdGFydFRvU2xv
d1BhdGhTdGFydCA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisg
ICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhT
dGFydCkpOworICAgIH0KKworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBtX2NvZGU7CisgICAg
Q29kZUxvY2F0aW9uTGFiZWwgbV9pbmxpbmVTdGFydDsKKyAgICBpbnQzMl90IG1faW5saW5lU2l6
ZTsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uOwor
ICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydDsKKworICAgIHNpemVf
dCBtX2NvZGVTaXplIHsgMCB9OworCisgICAgc2l6ZV90IGNvZGVTaXplKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2NvZGVTaXplICsgbV9jb2RlLnNpemUoKTsKKyAgICB9CisKKyAgICBHZW5l
cmF0b3JUeXBlIG1fZ2VuZXJhdG9yOworfTsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2Vu
ZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoSklUKQorCisjZW5kaWYgLy8gSklUQWRkSUNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgSklUTWF0aElDRm9yd2FyZHNfaAorI2RlZmluZSBKSVRNYXRoSUNGb3J3YXJk
c19oCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsKKwordGVtcGxhdGUgPHR5
cGVuYW1lIEdlbmVyYXRvcj4gY2xhc3MgSklUTWF0aElDOworY2xhc3MgSklUQWRkR2VuZXJhdG9y
OworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJVEFkZElDOworCit9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAvLyBKSVRN
YXRoSUNGb3J3YXJkc19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdl
bmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRN
dWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKwogbmFt
ZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEND
YWxsSGVscGVycyYgaml0KQpAQCAtMTM3LDcgKzEzOSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAvLyBEbyBkb3VibGVWYXIgKiBkb3VibGVWYXIuCiAg
ICAgaml0Lm11bERvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOwogCi0gICAgaWYgKCFtX3Jl
c3VsdFByb2ZpbGUpCisgICAgaWYgKCFtX2FyaXRoUHJvZmlsZSkKICAgICAgICAgaml0LmJveERv
dWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gVGhlIElu
dDUyIG92ZXJmbG93IGNoZWNrIGJlbG93IGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8IDUxIGFz
IGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUuCkBAIC0xNDksMTggKzE1MSwxOCBAQCB2b2lk
IEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIGppdC5tb3ZlRG91
YmxlVG82NChtX2xlZnRGUFIsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcCBub3ROZWdhdGl2ZVplcm8gPSBqaXQuYnJhbmNoNjQoQ0NhbGxIZWxwZXJz
OjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW02NChuZWdhdGl2ZVplcm9CaXRzKSk7CiAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVy
czo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOwor
ICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6
Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJv
ZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25l
ID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKLSAg
ICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6
Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0
UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhl
bHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7
CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIp
OwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwgbV9zY3Jh
dGNoR1BSKTsKICAgICAgICAgaml0LmFuZDMyKENDYWxsSGVscGVyczo6SW1tMzIoMHg3ZmYpLCBt
X3NjcmF0Y2hHUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm9JbnQ1Mk92ZXJmbG93
ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6TGVzc1RoYW5PckVxdWFsLCBtX3NjcmF0Y2hH
UFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDB4NDMxKSk7CiAKLSAgICAgICAgaml0Lm9y
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxv
dyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVz
c09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihBcml0aFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRk
cmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAgIG5vSW50NTJP
dmVyZmxvdy5saW5rKCZqaXQpOwogCiAgICAgICAgIGRvbmUubGluaygmaml0KTsKQEAgLTE3MSwx
OCArMTczLDE4IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAg
ICAgICAgbm90TmVnYXRpdmVaZXJvLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpO
b3RFcXVhbCwgbV9yZXN1bHQucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MigwKSkpOwogICAgICAgICBub3ROZWdhdGl2ZVplcm8uYXBwZW5kKGppdC5icmFuY2gzMihDQ2Fs
bEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC50YWdHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIobmVnYXRpdmVaZXJvQml0cyA+PiAzMikpKTsKIAotICAgICAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwg
Q0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZG
bGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFy
aXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5r
KCZqaXQpOwotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJs
ZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNz
T2ZCaXRzKCkpKTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC50YWdHUFIoKSwgbV9zY3Jh
dGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0zMig1MiAt
IDMyKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LmFuZDMyKENDYWxsSGVscGVyczo6SW1t
MzIoMHg3ZmYpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm9J
bnQ1Mk92ZXJmbG93ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6TGVzc1RoYW5PckVxdWFs
LCBtX3NjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDB4NDMxKSk7CiAgICAg
ICAgIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQ
cm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9y
ZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkp
KTsKIAogICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChub0ludDUyT3ZlcmZsb3cpOwogICAg
ICAgICBpZiAobV9zY3JhdGNoR1BSID09IG1fcmVzdWx0LnRhZ0dQUigpIHx8IG1fc2NyYXRjaEdQ
UiA9PSBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE11bEdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcg
KzM4LDcgQEAgcHVibGljOgogICAgIEpJVE11bEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0
T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVn
cyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAgICBG
UFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVn
IHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxs
cHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAgICAg
ICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFu
ZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBt
X3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQ
UikKLSAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBt
X2FyaXRoUHJvZmlsZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVm
dE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNQb3Np
dGl2ZUNvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAg
IEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVn
IG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAg
QXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRo
IHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2
aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkK
IAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3Iu
aCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlv
bk1vZGUuaCIKQEAgLTIyNDcsMTggKzIyNDgsOTMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblRvSW5kZXhTdAogICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBJZGVudGlmaWVyOjpm
cm9tKGV4ZWMsIGluZGV4KS5zdHJpbmcoKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHVucHJvZmlsZWRBZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZNKiB2bSA9
ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMp
OworICAgIAorICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklUQWRkSUNTdGF0cygpOworCisg
ICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1
ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9wMikpOworfQorCitBTFdBWVNfSU5MSU5F
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZEFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJv
ZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUg
b3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Cisg
ICAgYXJpdGhQcm9maWxlLT5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKKworICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIGFyaXRoUHJvZmlsZS0+ZGV0
ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKworICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklU
QWRkSUNTdGF0cygpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQor
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKIHsKKyAgICByZXR1cm4gdW5wcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUFkZE5vdFByb2ZpbGVkTm90T3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBK
SVRBZGRJQyopCit7CisgICAgcmV0dXJuIHVucHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwg
ZW5jb2RlZE9wMik7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
KQoreworICAgIHJldHVybiBwcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3Ay
LCBhcml0aFByb2ZpbGUpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMpCit7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAgICAgCiAg
ICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1
ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBBU1NFUlQoYXJpdGhQ
cm9maWxlKTsKKyAgICBhcml0aFByb2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMob3AxLCBvcDIpOwor
ICAgIGF1dG8gbm9uT3B0aW1pemVWYXJpYW50ID0gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5v
bk9wdGltaXplOworICAgIGFkZElDLT5nZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVC
bG9jaygpLCBub25PcHRpbWl6ZVZhcmlhbnQpOworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIGFyaXRoUHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25l
c3MocmVzdWx0KTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9u
T3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRk
SUMqKQoreworICAgIHJldHVybiBwcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVk
T3AyLCBhcml0aFByb2ZpbGUpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyogYWRkSUMpCit7
CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgZXhlYyk7CisKKyAgICBhdXRvIG5vbk9wdGltaXplVmFyaWFudCA9IG9wZXJhdGlv
blZhbHVlQWRkTm9uT3B0aW1pemU7CisgICAgYWRkSUMtPmdlbmVyYXRlT3V0T2ZMaW5lKCp2bSwg
ZXhlYy0+Y29kZUJsb2NrKCksIG5vbk9wdGltaXplVmFyaWFudCk7CisKKyAgICBleGVjLT5jb2Rl
QmxvY2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsKICAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMs
IG9wMSwgb3AyKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2Zp
bGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9uT3B0
aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CkBAIC0yMjY2
LDggKzIzNDIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQog
ICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFs
dWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogICAgIAorICAgIGV4ZWMtPmNv
ZGVCbG9jaygpLT5kdW1wSklUQWRkSUNTdGF0cygpOworCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBq
c0FkZChleGVjLCBvcDEsIG9wMik7Ci0gICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25l
c3MocmVzdWx0KTsKKwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApA
QCAtMjI4NCw3ICsyMzYyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFy
aXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwog
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjI5Niw3ICsy
Mzc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIGRv
dWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIoYSAqIGIpOwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJl
c3VsdCk7CisgICAgYXJpdGhQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMjMxMyw3ICsyMzkxLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQ
cm9maWxlKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjMyNSw3ICsyNDAzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIGRvdWJsZSBiID0gb3AyLnRvTnVt
YmVyKGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOwot
ICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisgICAgYXJpdGhQ
cm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNz
IEFycmF5UHJvZmlsZTsKIGNsYXNzIENhbGxMaW5rSW5mbzsKIGNsYXNzIENvZGVCbG9jazsKIGNs
YXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTQXJyYXk7CiBj
bGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgSlNMZXhpY2FsRW52aXJvbm1lbnQ7CkBAIC01NCwxMCAr
NTUsMTMgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsKIAogc3RydWN0IEJ5VmFsSW5mbzsKIHN0cnVj
dCBJbmxpbmVDYWxsRnJhbWU7Ci1zdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKK3N0cnVjdCBBcml0aFBy
b2ZpbGU7CiAKIHR5cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIAordGVtcGxhdGUgPHR5cGVu
YW1lIEdlbmVyYXRvclR5cGU+IGNsYXNzIEpJVE1hdGhJQzsKK3R5cGVkZWYgSklUTWF0aElDPEpJ
VEFkZEdlbmVyYXRvcj4gSklUQWRkSUM7CisKIGV4dGVybiAiQyIgewogCiB0eXBlZGVmIGNoYXIq
IFVudXNlZFB0cjsKQEAgLTgxLDYgKzg1LDcgQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAg
ICAgSWNmOiBJbmxpbmVDYWxsRnJhbWUqCiAgICAgSWRjOiBjb25zdCBJZGVudGlmaWVyKgogICAg
IEo6IEVuY29kZWRKU1ZhbHVlCisgICAgSmFpYzogSklUQWRkSUMqCiAgICAgSmNwOiBjb25zdCBK
U1ZhbHVlKgogICAgIEpzYzogSlNTY29wZSoKICAgICBKc2Y6IEpTRnVuY3Rpb24qCkBAIC05Miw3
ICs5Nyw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFE6IGludDY0X3QKICAgICBS
OiBSZWdpc3RlcgogICAgIFJlbzogUmVnRXhwT2JqZWN0KgotICAgIFJwOiBSZXN1bHRQcm9maWxl
KgorICAgIFJwOiBBcml0aFByb2ZpbGUqCiAgICAgUzogc2l6ZV90CiAgICAgU3BydDogU2xvd1Bh
dGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHViSW5mbyoKQEAgLTEzMyw3ICsxMzgs
OSBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKCiB0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkJ5
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyop
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25f
RUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSk7Ci10eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9w
ZXJhdGlvbl9FSkpScCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBSZXN1bHRQcm9maWxlKik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9O
ICpKX0pJVE9wZXJhdGlvbl9FSkpScCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBBcml0aFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9P
UEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSlJwSmFpYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopOwordHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSmFpYyko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBKSVRBZGRJQyopOwog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpz
c1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3RhdGUqLCBK
U1N0cmluZyosIFJlZ0V4cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09Q
RVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcq
LCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopOwpAQCAtNDA4LDExICs0MTUsMTYgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZQogSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRvSW5kZXhTdHJpbmcoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiAKIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm90UHJvZmlsZWROb3RPcHRpbWl6ZShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBB
cml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUq
LCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmls
ZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vbk9w
dGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUq
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlU3ViKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1
YlByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIAogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2coRXhlY1N0YXRlKikg
V1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NTaGFkb3dD
aGlja2VuTG9nKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJ
VFN1YkdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisKICNpZiBFTkFC
TEUoSklUKQogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTgzLDggKzg1LDggQEAgdm9pZCBKSVRTdWJH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIHJpZ2h0V2FzSW50ZWdlci5saW5rKCZq
aXQpOwogCiAgICAgaml0LnN1YkRvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOwotICAgIGlm
IChtX3Jlc3VsdFByb2ZpbGUpCi0gICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJs
ZShqaXQpOworICAgIGlmIChtX2FyaXRoUHJvZmlsZSkKKyAgICAgICAgbV9hcml0aFByb2ZpbGUt
PmVtaXRTZXREb3VibGUoaml0KTsKIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jl
c3VsdCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJh
dG9yLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3ViR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgog
ICAgIEpJVFN1YkdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9w
ZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVS
ZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBS
UmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCi0gICAg
ICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyKQorICAgICAgICBBcml0
aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFu
ZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAg
ICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRj
aEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAgLCBtX3Jl
c3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmlsZShhcml0
aFByb2ZpbGUpCiAgICAgeyB9CiAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxw
ZXJzJik7CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7
CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAg
IFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKKyAgICBBcml0aFByb2ZpbGUqIG1fYXJp
dGhQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBGdW5jdGlvblB0ciByZWFkQ2FsbFRhcmdldChDb2RlQmwKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi1zdGF0aWMgdm9pZCByZXBhdGNoQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Q29kZUxvY2F0aW9uQ2FsbCBjYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVGdW5jdGlvbikKK3Zv
aWQgdGh1bmtBd2FyZVJlcGF0Y2hDYWxsKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlTG9jYXRp
b25DYWxsIGNhbGwsIEZ1bmN0aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKQogewogI2lmIEVOQUJM
RShGVExfSklUKQogICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExK
SVQpIHsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2Fj
aGVHZXRCeUlECiAKICAgICAgICAgICAgICAgICBib29sIGdlbmVyYXRlZENvZGVJbmxpbmUgPSBJ
bmxpbmVBY2Nlc3M6OmdlbmVyYXRlQXJyYXlMZW5ndGgoKmNvZGVCbG9jay0+dm0oKSwgc3R1Yklu
Zm8sIGpzQ2FzdDxKU0FycmF5Kj4oYmFzZVZhbHVlKSk7CiAgICAgICAgICAgICAgICAgaWYgKGdl
bmVyYXRlZENvZGVJbmxpbmUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVwYXRjaENhbGwoY29k
ZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGlt
aXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAgICAgICAgICAgICAgICAgICB0aHVua0F3
YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigp
LCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogICAgICAgICAg
ICAgICAgICAgICBzdHViSW5mby5pbml0QXJyYXlMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgICAgICB9CkBAIC0yMjAsNyAr
MjIwLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRAogICAgICAg
ICAgICAgaWYgKGdlbmVyYXRlZENvZGVJbmxpbmUpIHsKICAgICAgICAgICAgICAgICBMT0dfSUMo
KElDRXZlbnQ6OkdldEJ5SWRTZWxmUGF0Y2gsIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIHByb3Bl
cnR5TmFtZSkpOwogICAgICAgICAgICAgICAgIHN0cnVjdHVyZS0+c3RhcnRXYXRjaGluZ1Byb3Bl
cnR5Rm9yUmVwbGFjZW1lbnRzKHZtLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKLSAgICAgICAgICAg
ICAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9u
KCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAgICAg
ICAgICAgICAgdGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtp
bmQpKTsKICAgICAgICAgICAgICAgICBzdHViSW5mby5pbml0R2V0QnlJZFNlbGYoY29kZUJsb2Nr
LCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICB9CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9p
ZCByZXBhdGNoR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVgogICAgIEdDU2FmZUNvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKGV4ZWMtPmNvZGVCbG9jaygpLT5tX2xvY2ssIGV4ZWMtPnZtKCku
aGVhcCk7CiAgICAgCiAgICAgaWYgKHRyeUNhY2hlR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIHBy
b3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9uQ2FjaGUpCi0gICAg
ICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxM
b2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAg
ICAgICB0aHVua0F3YXJlUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNs
b3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY0dldEJ5SWRGdW5jdGlvbihr
aW5kKSk7CiB9CiAKIHN0YXRpYyBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIGFwcHJvcHJpYXRlR2Vu
ZXJpY1B1dEJ5SWRGdW5jdGlvbihjb25zdCBQdXRQcm9wZXJ0eVNsb3QgJnNsb3QsIFB1dEtpbmQg
cHV0S2luZCkKQEAgLTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5
Q2FjaGVQdXRCeUlECiAgICAgICAgICAgICAgICAgYm9vbCBnZW5lcmF0ZWRDb2RlSW5saW5lID0g
SW5saW5lQWNjZXNzOjpnZW5lcmF0ZVNlbGZQcm9wZXJ0eVJlcGxhY2Uodm0sIHN0dWJJbmZvLCBz
dHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgIGlmIChnZW5l
cmF0ZWRDb2RlSW5saW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIExPR19JQygoSUNFdmVudDo6
UHV0QnlJZFNlbGZQYXRjaCwgc3RydWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQpKTsKLSAgICAg
ICAgICAgICAgICAgICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENh
bGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdQdXRCeUlkRnVuY3Rpb24oc2xvdCwg
cHV0S2luZCkpOworICAgICAgICAgICAgICAgICAgICB0aHVua0F3YXJlUmVwYXRjaENhbGwoY29k
ZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGlt
aXppbmdQdXRCeUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOwogICAgICAgICAgICAgICAgICAg
ICBzdHViSW5mby5pbml0UHV0QnlJZFJlcGxhY2UoY29kZUJsb2NrLCBzdHJ1Y3R1cmUsIHNsb3Qu
Y2FjaGVkT2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxh
dGVyOwogICAgICAgICAgICAgICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIHJlcGF0Y2hQ
dXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWCiAgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIoZXhlYy0+Y29kZUJsb2NrKCktPm1fbG9jaywgZXhlYy0+dm0oKS5oZWFwKTsKICAg
ICAKICAgICBpZiAodHJ5Q2FjaGVQdXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgc3RydWN0dXJlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBwdXRLaW5kKSA9PSBHaXZlVXBPbkNhY2hlKQot
ICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1
dEtpbmQpKTsKKyAgICAgICAgdGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygp
LCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNQdXRC
eUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOwogfQogCiBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rp
b24gdHJ5UmVwYXRjaEluKApAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgcmVwYXRjaEluKAogewog
ICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBpZiAo
dHJ5UmVwYXRjaEluKGV4ZWMsIGJhc2UsIGlkZW50LCB3YXNGb3VuZCwgc2xvdCwgc3R1YkluZm8p
ID09IEdpdmVVcE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygp
LCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcGVyYXRpb25Jbik7CisgICAgICAg
IHRodW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uSW4pOwogfQogCiBzdGF0aWMgdm9pZCBsaW5rU2xv
d0ZvcihWTSosIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY29kZVJlZikKQEAgLTkwMSw3ICs5MDEsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwo
CiAKIHZvaWQgcmVzZXRHZXRCeUlEKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHVi
SW5mbyYgc3R1YkluZm8sIEdldEJ5SURLaW5kIGtpbmQpCiB7Ci0gICAgcmVwYXRjaENhbGwoY29k
ZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGlt
aXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAgIHRodW5rQXdhcmVSZXBhdGNoQ2FsbChj
b2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0
aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CiAgICAgSW5saW5lQWNjZXNzOjpyZXdpcmVT
dHViQXNKdW1wKCpjb2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0
YXJ0TG9jYXRpb24oKSk7CiB9CiAKQEAgLTkyMCw3ICs5MjAsNyBAQCB2b2lkIHJlc2V0UHV0QnlJ
RChDb2RlQmxvY2sqIGNvZGVCbG9jaywgCiAgICAgICAgIG9wdGltaXplZEZ1bmN0aW9uID0gb3Bl
cmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplOwogICAgIH0KIAotICAgIHJlcGF0
Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3B0aW1p
emVkRnVuY3Rpb24pOworICAgIHRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJ
bmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wdGltaXplZEZ1bmN0aW9uKTsKICAgICBJbmxp
bmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoKmNvZGVCbG9jay0+dm0oKSwgc3R1YkluZm8sIHN0
dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZXBhdGNoLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVwYXRjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQg
bGlua1BvbHltb3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWwKIHZvaWQgcmVzZXRHZXRCeUlEKENv
ZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJiwgR2V0QnlJREtpbmQpOwogdm9pZCByZXNldFB1
dEJ5SUQoQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVzZXRJbihDb2Rl
QmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwordm9pZCB0aHVua0F3YXJlUmVwYXRjaENhbGwo
Q29kZUJsb2NrKiwgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVG
dW5jdGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKIAor
I2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlQ29udmVudGlvbnMu
aCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDb2RlVHlwZS5oIgpAQCAtMjIz
LDYgKzIyNCw0NyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICNlbmRp
ZgogCiAgICAgQVNTRVJUKFN0cmluZ0ltcGw6OnNfaGFzaEZsYWc4Qml0QnVmZmVyID09IDgpOwor
CisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0gMHgxMjAwMDA7CisgICAgICAgIFVOVVNF
RF9QQVJBTShiaXRzKTsKKyAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAgICAg
ICAgYXJpdGhQcm9maWxlLmxoc1Nhd0ludDMyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNT
YXdJbnQzMigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsK
KyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5
cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUlu
dChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICB9CisgICAgewor
ICAgICAgICB1aW50MzJfdCBiaXRzID0gMHgyMjAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShi
aXRzKTsKKyAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQ
cm9maWxlLmxoc1Nhd051bWJlcigpOworICAgICAgICBhcml0aFByb2ZpbGUucmhzU2F3SW50MzIo
KTsKKyAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAg
IEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNP
bmx5TnVtYmVyKCkpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMp
LnJoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgIH0KKyAgICB7CisgICAgICAg
IHVpbnQzMl90IGJpdHMgPSAweDI0MDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOwor
ICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUu
bGhzU2F3TnVtYmVyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAg
ICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFTU0VS
VChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVt
YmVyKCkpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09i
c2VydmVkVHlwZSgpLmlzT25seU51bWJlcigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1aW50
MzJfdCBiaXRzID0gMHgxNDAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAgICAg
ICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nh
d0ludDMyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAg
QVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFTU0VSVChBcml0
aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7
CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRU
eXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgIH0KIH0KICNpZiBDT01QSUxFUihDTEFORykKICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyMDMz
NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQkod29ya2luZyBjb3B5KQpAQCAtODkzLDYgKzg5Myw5IEBAIG1hY3JvIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBicWIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJO
b3RJbnQKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAgaW50ZWdlck9wZXJh
dGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
big0LCB0MSkKKyAgICBvcmkgMHgxMjAwMDAsIHQxICMgQm90aCBhcmUgaW50cy4KKyAgICBzdG9y
ZWlzVG9JbnN0cnVjdGlvbih0MSwgNCkKICAgICBkaXNwYXRjaCg1KQogCiAub3AxTm90SW50OgpA
QCAtOTAyLDggKzkwNSwxNCBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVy
YXRpCiAgICAgYnRxeiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKICAgICBhZGRxIHRhZ1R5cGVO
dW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQxCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQs
IHQyKQorICAgIG9yaSAweDI0MDAwMCwgdDIgIyBCb3RoIGFyZSBkb3VibGVzLgorICAgIHN0b3Jl
aXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGptcCAub3AxTm90SW50UmVhZHkKIC5vcDFOb3RJ
bnRPcDJJbnQ6CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQorICAgIG9yaSAweDIy
MDAwMCwgdDIgIyBGaXJzdCBpcyBkb3VibGUsIHNlY29uZCBpcyBpbnQuCisgICAgc3RvcmVpc1Rv
SW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgY2kyZCB0MSwgZnQxCiAub3AxTm90SW50UmVhZHk6CiAg
ICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQpAQCAtOTE5LDYgKzkyOCw5IEBAIG1hY3Jv
IGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICAjIEZpcnN0IG9wZXJhbmQg
aXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAg
bG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQogICAgIGJ0cXogdDEsIHRhZ1R5cGVOdW1iZXIs
IC5zbG93CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQzKQorICAgIG9yaSAweDE0MDAw
MCwgdDMgIyBGaXJzdCBpcyBpbnQsIHNlY29vbmQgaXMgZG91YmxlCisgICAgc3RvcmVpc1RvSW5z
dHJ1Y3Rpb24odDMsIDQpCiAgICAgY2kyZCB0MCwgZnQwCiAgICAgYWRkcSB0YWdUeXBlTnVtYmVy
LCB0MQogICAgIGZxMmQgdDEsIGZ0MQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMjAzMzUxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDEwIEBAIGlmIEpTVkFMVUU2NAogICAgICAgICBsb2Fk
cCBvZmZzZXQgKiA4W1BCLCBQQywgOF0sIGRlc3QKICAgICBlbmQKICAgICAKKyAgICBtYWNybyBz
dG9yZWlzVG9JbnN0cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQorICAgICAgICBzdG9yZWkgdmFsdWUs
IG9mZnNldCAqIDhbUEIsIFBDLCA4XQorICAgIGVuZAorCiAgICAgbWFjcm8gc3RvcmVwVG9JbnN0
cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQogICAgICAgICBzdG9yZXAgdmFsdWUsIG9mZnNldCAqIDhb
UEIsIFBDLCA4XQogICAgIGVuZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9S
ZXN1bHRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9S
ZXN1bHRUeXBlLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUmVzdWx0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMyArMzIsMjYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIHN0cnVjdCBPcGVyYW5k
VHlwZXM7CiAKLSAgICAgICAgdHlwZWRlZiBjaGFyIFR5cGU7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBUeXBlIFR5cGVJbnQzMiA9IDE7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlTWF5YmVOdW1iZXIgPSAweDA0OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBl
TWF5YmVTdHJpbmcgPSAweDA4OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVO
dWxsICAgPSAweDEwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAg
PSAweDIwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQw
OworICAgICAgICB0eXBlZGVmIHVpbnQ4X3QgVHlwZTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5
cGUgVHlwZUVtcHR5ID0gICAgICAgMHgwMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlw
ZUludDMyID0gICAgICAgMHgwMTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJl
TnVtYmVyID0gMHgwMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlU3RyaW5n
ID0gMHgwNDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlQm9vbCAgID0gMHgw
ODsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlT3RoZXIgID0gMHgxMDsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVsbCAgID0gMHgyMDsKKworICAgICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlQml0cyA9IFR5cGVNYXliZU51bWJlciB8IFR5cGVNYXli
ZVN0cmluZyB8IFR5cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsKIAotICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlQml0cyA9IFR5cGVNYXliZU51bWJlciB8IFR5cGVNYXliZVN0cmlu
ZyB8IFR5cGVNYXliZU51bGwgfCBUeXBlTWF5YmVCb29sIHwgVHlwZU1heWJlT3RoZXI7CisgICAg
cHVibGljOgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bUJpdHNOZWVkZWQgPSA2OworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KChUeXBlQml0cyAmICgoMSA8PCBudW1CaXRzTmVlZGVkKSAtIDEp
KSA9PSBUeXBlQml0cywgIlRoaXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0bmVzcy4iKTsKIAog
ICAgICAgICBleHBsaWNpdCBSZXN1bHRUeXBlKFR5cGUgdHlwZSkKICAgICAgICAgICAgIDogbV90
eXBlKHR5cGUpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgcHVibGljOgogICAgICAgICBi
b29sIGlzSW50MzIoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV90eXBl
ICYgVHlwZUludDMyOwpAQCAtNzksMTEgKzgyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICByZXR1cm4gIW1pZ2h0QmVOdW1iZXIoKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgc3RhdGljIFJlc3VsdFR5cGUgbnVsbFR5cGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gUmVzdWx0VHlwZShUeXBlTWF5YmVOdWxsKTsKLSAgICAgICAgfQotICAgICAgICAKICAg
ICAgICAgc3RhdGljIFJlc3VsdFR5cGUgYm9vbGVhblR5cGUoKQogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gUmVzdWx0VHlwZShUeXBlTWF5YmVCb29sKTsKQEAgLTEwOCw2ICsxMDYsMTEg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRU
eXBlKFR5cGVNYXliZVN0cmluZyk7CiAgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgUmVzdWx0
VHlwZSBudWxsVHlwZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBl
KFR5cGVNYXliZU51bGwpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgUmVz
dWx0VHlwZSB1bmtub3duVHlwZSgpCiAgICAgICAgIHsKQEAgLTE0MSw2ICsxNDQsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAg
ICAgICB9CiAKKyAgICAgICAgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICBUeXBlIG1fdHlwZTsKICAgICB9OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZp
c2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAKKyNpbmNsdWRlICJBcml0aFBy
b2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQnVpbHRp
bk5hbWVzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5j
bHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFt
Lmg+CiAKKyNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiAjZGVm
aW5lIEJFR0lOX05PX1NFVF9QQygpIFwKQEAgLTM1OSwyMiArMzYyLDIxIEBAIFNMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9uZWdhdGUpCiB9CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLXN0YXRpYyB2
b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSogZXhlYywg
SW5zdHJ1Y3Rpb24qIHBjLCBKU1ZhbHVlIHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBKU1ZhbHVlIHJp
Z2h0KQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVj
U3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgSlNWYWx1ZSByZXN1bHQsIEpTVmFsdWUgbGVm
dCwgSlNWYWx1ZSByaWdodCkKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNv
ZGVCbG9jaygpOwotICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY29kZUJsb2NrLT5ieXRl
Y29kZU9mZnNldChwYyk7Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IGNvZGVCbG9jay0+
ZW5zdXJlUmVzdWx0UHJvZmlsZShieXRlY29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxlJiBw
cm9maWxlID0gY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhwYyk7CiAKICAgICBpZiAocmVz
dWx0LmlzTnVtYmVyKCkpIHsKICAgICAgICAgaWYgKCFyZXN1bHQuaXNJbnQzMigpKSB7CiAgICAg
ICAgICAgICBpZiAobGVmdC5pc0ludDMyKCkgJiYgcmlnaHQuaXNJbnQzMigpKQotICAgICAgICAg
ICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpOworICAgICAgICAgICAg
ICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCk7CiAKICAgICAgICAgICAgIGRv
dWJsZSBkb3VibGVWYWwgPSByZXN1bHQuYXNOdW1iZXIoKTsKICAgICAgICAgICAgIGlmICghZG91
YmxlVmFsICYmIHN0ZDo6c2lnbmJpdChkb3VibGVWYWwpKQotICAgICAgICAgICAgICAgIHByb2Zp
bGUtPnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpOworICAgICAgICAgICAgICAgIHByb2ZpbGUu
c2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsKKyAgICAgICAg
ICAgICAgICBwcm9maWxlLnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOwogCiAgICAgICAg
ICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50aW9uYWxseSBv
bWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KICAgICAgICAg
ICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRpdmUgaWYgdGhl
IHJlc3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVudGlvbmFsbHkKQEAgLTM4MiwxNCAr
Mzg0LDE0IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnkKICAgICAg
ICAgICAgICAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBpbnQ1Mk92ZXJmbG93UG9pbnQgPSAoMWxs
IDw8IDUxKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IGludDY0VmFsID0gc3RhdGljX2Nhc3Q8
aW50NjRfdD4oc3RkOjphYnMoZG91YmxlVmFsKSk7CiAgICAgICAgICAgICAgICAgaWYgKGludDY0
VmFsID49IGludDUyT3ZlcmZsb3dQb2ludCkKLSAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS0+
c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCk7CisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUu
c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9IGVsc2UKLSAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROb25OdW1iZXIoKTsKKyAgICAg
ICAgcHJvZmlsZS5zZXRPYnNlcnZlZE5vbk51bWJlcigpOwogfQogI2Vsc2UKLXN0YXRpYyB2b2lk
IHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSosIEluc3RydWN0
aW9uKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSkgeyB9CitzdGF0aWMgdm9pZCB1cGRhdGVB
cml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgSlNW
YWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSkgeyB9CiAjZW5kaWYKIAogU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX3RvX251bWJlcikKQEAgLTQwNyw2ICs0MDksMjQgQEAgU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX2FkZCkKICAgICBKU1ZhbHVlIHYyID0gT1BfQygzKS5qc1ZhbHVlKCk7CiAgICAgSlNW
YWx1ZSByZXN1bHQ7CiAKKyAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IGV4ZWMtPmNv
ZGVCbG9jaygpLT5hcml0aFByb2ZpbGVGb3JQQyhwYyk7CisgICAgYXJpdGhQcm9maWxlLm9ic2Vy
dmVMSFNBbmRSSFModjEsIHYyKTsKKworICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklUQWRk
SUNTdGF0cygpOworCisgICAgLyoKKyAgICBkYXRhTG9nKCJzbG93X3BhdGhfYWRkXG4iKTsKKyAg
ICBkYXRhTG9nKCJWMTogIiwgcnVudGltZVR5cGVBc1N0cmluZyhydW50aW1lVHlwZUZvclZhbHVl
KHYxKSksICJcbiIpOworICAgIGRhdGFMb2coIlYyOiAiLCBydW50aW1lVHlwZUFzU3RyaW5nKHJ1
bnRpbWVUeXBlRm9yVmFsdWUodjIpKSwgIlxuIik7CisgICAgZGF0YUxvZygiU3RhdHM6ICIsIHBj
WzRdLnUub3BlcmFuZCwgIlxuIik7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5
cGVzOjpmcm9tSW50KHBjWzRdLnUub3BlcmFuZCk7CisgICAgUmVzdWx0VHlwZSBhID0gdHlwZXMu
Zmlyc3QoKTsKKyAgICBSZXN1bHRUeXBlIGIgPSB0eXBlcy5zZWNvbmQoKTsKKyAgICBkYXRhTG9n
KCpiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KCZhKSwgIlxuIik7CisgICAgZGF0YUxvZygqYml0d2lz
ZV9jYXN0PHVpbnQ4X3QqPigmYiksICJcbiIpOworICAgICovCisgICAgCisKICAgICBpZiAodjEu
aXNTdHJpbmcoKSAmJiAhdjIuaXNPYmplY3QoKSkKICAgICAgICAgcmVzdWx0ID0ganNTdHJpbmco
ZXhlYywgYXNTdHJpbmcodjEpLCB2Mi50b1N0cmluZyhleGVjKSk7CiAgICAgZWxzZSBpZiAodjEu
aXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigpKQpAQCAtNDE1LDcgKzQzNSw3IEBAIFNMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAgICAgICAgIHJlc3VsdCA9IGpzQWRkU2xvd0Nhc2UoZXhl
YywgdjEsIHYyKTsKIAogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAg
ICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwg
djEsIHYyKTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVj
LCBwYywgcmVzdWx0LCB2MSwgdjIpOwogICAgIH0pOwogfQogCkBAIC00MzIsNyArNDUyLDcgQEAg
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVt
YmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOwogICAgIFJF
VFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmls
ZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAg
ICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxl
ZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApAQCAtNDQ1LDcgKzQ2NSw3IEBAIFNMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9zdWIpCiAgICAgZG91YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsK
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKICAgICBSRVRVUk5fV0lUSF9Q
Uk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlB
cml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgdXBkYXRlQXJp
dGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7
CiAgICAgfSk7CiB9CiAKQEAgLTQ1OCw3ICs0NzgsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfZGl2KQogICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7CiAgICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihhIC8gYik7CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJl
c3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVj
LCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZv
ckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwogICAgIH0pOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElD
Rm9yd2FyZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSklUTWF0aElDRm9yd2FyZHNf
aAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KSVRNYXRoSUNGb3J3YXJkc19oCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSklUTWF0aElDRm9yd2FyZHMuaD4KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283982</attachid>
            <date>2016-07-19 00:24:44 -0700</date>
            <delta_ts>2016-07-19 12:55:12 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>141671</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMzNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxNiArMTI4MSwyMCBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkIxRDM0
NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5MkNC
MzQ5MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovOyB9OwogCQk3OTJDQjM0QTFDNEVFRDVDMDBE
MTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9y
aWdpbk1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc5NjQ2NTZBMUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTY0NjU2ODFCOTUyRkYwMDAzMDU5
RUUgLyogR2V0UHV0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQuY3BwICovOyB9OwogCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5N0UwN0E4MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc5OUVGN0M0MUM1NkVEOTYwMDJCMDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5OUVGN0MzMUM1NkVEOTYwMDJC
MDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3OUEyMjgzNTFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QTIyODMzMUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwICovOyB9OworCQk3OUEy
MjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyog
QXJpdGhQcm9maWxlLmggKi87IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94
eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAq
LzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2
QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNl
dHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7
IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3
RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJ
Q0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIx
NThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFC
QTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5j
cHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJp
YWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFy
aWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFu
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNG
QzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDEyICszNDgwLDE2IEBACiAJ
CTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94
eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQg
LyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJ
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1
dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyog
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5
RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09y
aWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFF
MDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyog
UHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlC
MDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA1Nyw2ICs1MDY1LDggQEAKIAkJCQlERTVB
MDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQy
OUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3
MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBK
SVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElD
Rm9yd2FyZHMuaCAqLywKIAkJCQlGRTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmNwcCAqLywKIAkJCQlGRTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmggKi8sCiAJCQkJODZBOTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0
aWMuY3BwICovLApAQCAtNjU1Niw2ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAx
NDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcw
NTEwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEw
MDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUw
NjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcg
LyogQXJpdGhQcm9maWxlLmggKi8sCiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5
dGVjb2RlQmFzaWNCbG9jay5jcHAgKi8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8q
IEJ5dGVjb2RlQmFzaWNCbG9jay5oICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAv
KiBCeXRlY29kZUNvbnZlbnRpb25zLmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1
RUE3MEU4MTlGNUIxMDEwMDk4RjVFQyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0FyZ3VtZW50UmVnVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQz
NDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwMzFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrVXRpbHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRUM4NTA0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jsb2NrV29ya2xp
c3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzc1NCw2ICs3NzY3LDcgQEAKIAkJCQlBNTEwMDdDMTE4
N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDEx
MEYxNCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3OUEyMjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEzRTVDMDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhv
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMyMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ0MkNCMjUx
QTZDREI4QzAwNUQzRDdDIC8qIEpTSW5wdXRzLmpzb24gaW4gSGVhZGVycyAqLywKQEAgLTgxNzks
NiArODE5Myw3IEBACiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmll
clN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAv
KiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFB
QTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk3OUIxNzg4RTFEMzk5QjgwMDBCMUE1
NjcgLyogSklUTWF0aElDRm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJE
Qzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NTEyREJB
MzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njcw
NEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC05MjYz
LDYgKzkyNzgsNyBAQAogCQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2Vt
Ymxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyog
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVCMTM3NTcxQkIxMUVG
OTAwQ0Q1MTAwIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NzlBMjI4MzUxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzI5MDA5QzE3OTc2QzYwMDAzMTcyOTggLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTY4QzYzODFCOTBERTBCMDA0MkJDQjMgLyogTWFjcm9B
c3NlbWJsZXJQcmludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTRBRTA4MTc5NzNCMjYw
MDU2MTJCMSAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJv
ZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjaWYgRU5BQkxFKEpJVCkK
K3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBq
aXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOwor
ICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVL
bm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOworICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBiZSBtb3Jl
IHByZWNpc2UgaGVyZS4KKyAgICBlbWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAg
IGVtaXRTZXROb25OdW1iZXIoaml0KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAgaXNJbnQz
Mi5saW5rKCZqaXQpOworfQorCit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdFNldERvdWJsZShDQ2Fs
bEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihBcml0aFByb2ZpbGU6OkludDMyT3ZlcmZsb3cgfCBBcml0aFByb2ZpbGU6OkludDUyT3ZlcmZs
b3cgfCBBcml0aFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBBcml0aFByb2ZpbGU6Ok5vbk5lZ1pl
cm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZCaXRzKCkp
KTsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJz
JiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQ
cm9maWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNz
T2ZCaXRzKCkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworbmFtZXNwYWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgQXJpdGhQcm9maWxlJiBwcm9m
aWxlKQoreworICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOworCisgICAgaWYgKCFwcm9m
aWxlLmRpZE9ic2VydmVOb25JbnQzMigpKSB7CisgICAgICAgIG91dC5wcmludCgiSW50MzIiKTsK
KyAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChwcm9m
aWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludChz
ZXBhcmF0b3IsICJOZWdaZXJvRG91YmxlIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3Vi
bGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJOb25OZWdaZXJvRG91YmxlIik7CisgICAg
ICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUu
ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJl
ciIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlm
IChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkpIHsKKyAgICAgICAgICAgIG91dC5w
cmludCgiSW50MzJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAg
ICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsK
KyAgICAgICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2Vw
YXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgfQorICAgIGlmIChwcm9maWxlLnNwZWNpYWxG
YXN0UGF0aENvdW50KCkpIHsKKyAgICAgICAgb3V0LnByaW50KCIgc3BlY2lhbCBmYXN0IHBhdGg6
ICIpOworICAgICAgICBvdXQucHJpbnQocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKTsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDIyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEFyaXRoUHJvZmlsZV9oCisjZGVmaW5lIEFyaXRoUHJvZmlsZV9oCisKKyNp
bmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1ZGUgIlJl
c3VsdFR5cGUuaCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNNb2RlLmgiCisKK25hbWVzcGFjZSBK
U0MgeworIAorY2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3QgT2JzZXJ2ZWRUeXBlIHsKKyAg
ICBPYnNlcnZlZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5KQorICAgICAgICA6IG1fYml0
cyhiaXRzKQorICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50MzIoKSBjb25zdCB7IHJldHVy
biBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdOdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBtX2JpdHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBpc09ubHlOdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAgIGJvb2wgc2F3Tm9uTnVtYmVy
KCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU5vbk51bWJlcjsgfQorICAgIGJvb2wgaXNP
bmx5Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5cGVOb25OdW1iZXI7IH0K
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9iaXRzOyB9CisgICAgdWludDhf
dCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKKyAgICBPYnNlcnZlZFR5cGUgd2l0
aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVJbnQzMik7
IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVk
VHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRoTm9uTnVt
YmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVOb25OdW1iZXIp
OyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBP
YnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9CisKKyAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9iaXRzID09
IG90aGVyLm1fYml0czsgfQorCisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUVtcHR5ID0g
MHgwOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQzMiA9IDB4MTsKKyAgICBzdGF0
aWMgY29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKKyAgICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKworcHJpdmF0ZToKKyAgICB1aW50OF90IG1fYml0
czsKK307CisKK3N0cnVjdCBBcml0aFByb2ZpbGUgeworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IHJoc1Jlc3VsdFR5cGVTaGlmdCA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGxo
c1Jlc3VsdFR5cGVTaGlmdCA9IDExOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCByaHNPYnNl
cnZlZFR5cGVTaGlmdCA9IDE3OworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBsaHNPYnNlcnZl
ZFR5cGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b202Qml0cyA9
ICgxIDw8IDYpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgYm90dG9tM0JpdHMgPSAo
MSA8PCAzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGNsZWFyUmhzT2JzZXJ2ZWRU
eXBlQml0cyA9IH4oKDEgPDwgMTcpIHwgKDEgPDwgMTgpIHwgKDEgPDwgMTkpKTsKKyAgICBzdGF0
aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRzID0gfigoMSA8PCAyMCkg
fCAoMSA8PCAyMSkgfCAoMSA8PCAyMikpOworCisgICAgc3RhdGljX2Fzc2VydChSZXN1bHRUeXBl
OjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25nIGFzc3VtcHRpb24gaGVyZSB0
aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpcy4iKTsKKworcHVibGljOgorICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBzcGVjaWFsRmFzdFBhdGhCaXQgPSAxIDw8IDIzOworCisgICAgQXJpdGhQ
cm9maWxlKFJlc3VsdFR5cGUgbGhzLCBSZXN1bHRUeXBlIHJocykKKyAgICB7CisgICAgICAgIG1f
Yml0cyA9IChsaHMuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVTaGlmdCkgfCAocmhzLmJpdHMoKSA8
PCByaHNSZXN1bHRUeXBlU2hpZnQpOworICAgICAgICBBU1NFUlQobGhzUmVzdWx0VHlwZSgpLmJp
dHMoKSA9PSBsaHMuYml0cygpICYmIHJoc1Jlc3VsdFR5cGUoKS5iaXRzKCkgPT0gcmhzLmJpdHMo
KSk7CisgICAgICAgIEFTU0VSVChsaHNPYnNlcnZlZFR5cGUoKS5pc0VtcHR5KCkpOworICAgICAg
ICBBU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsKKyAgICB9CisgICAgQXJpdGhQ
cm9maWxlKCkKKyAgICB7IH0KKworICAgIHN0YXRpYyBBcml0aFByb2ZpbGUgZnJvbUludCh1aW50
MzJfdCBiaXRzKQorICAgIHsKKyAgICAgICAgQXJpdGhQcm9maWxlIHJlc3VsdDsKKyAgICAgICAg
cmVzdWx0Lm1fYml0cyA9IGJpdHM7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisg
ICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgeworICAgICAgICBOb25OZWdaZXJvRG91YmxlID0gMSA8
PCAwLAorICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAorICAgICAgICBOb25OdW1i
ZXIgICAgICAgID0gMSA8PCAyLAorICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAzLAor
ICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAorICAgIH07CisKKyAgICBSZXN1bHRU
eXBlIGxoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4g
bGhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorICAgIFJlc3VsdFR5cGUgcmhz
UmVzdWx0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIFJlc3VsdFR5cGUoKG1fYml0cyA+PiByaHNSZXN1
bHRUeXBlU2hpZnQpICYgYm90dG9tNkJpdHMpOyB9CisKKyAgICBPYnNlcnZlZFR5cGUgbGhzT2Jz
ZXJ2ZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKChtX2JpdHMgPj4gbGhzT2Jz
ZXJ2ZWRUeXBlU2hpZnQpICYgYm90dG9tM0JpdHMpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHJoc09i
c2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IHJoc09i
c2VydmVkVHlwZVNoaWZ0KSAmIGJvdHRvbTNCaXRzKTsgfQorICAgIHZvaWQgc2V0TGhzT2JzZXJ2
ZWRUeXBlKE9ic2VydmVkVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9
IG1fYml0czsKKyAgICAgICAgYml0cyAmPSBjbGVhckxoc09ic2VydmVkVHlwZUJpdHM7CisgICAg
ICAgIGJpdHMgfD0gdHlwZS5iaXRzKCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAg
IG1fYml0cyA9IGJpdHM7CisgICAgICAgIEFTU0VSVChsaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBl
KTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJoc09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlw
ZSkKKyAgICB7IAorICAgICAgICB1aW50MzJfdCBiaXRzID0gbV9iaXRzOworICAgICAgICBiaXRz
ICY9IGNsZWFyUmhzT2JzZXJ2ZWRUeXBlQml0czsKKyAgICAgICAgYml0cyB8PSB0eXBlLmJpdHMo
KSA8PCByaHNPYnNlcnZlZFR5cGVTaGlmdDsKKyAgICAgICAgbV9iaXRzID0gYml0czsKKyAgICAg
ICAgQVNTRVJUKHJoc09ic2VydmVkVHlwZSgpID09IHR5cGUpOworICAgIH0KKworICAgIHVuc2ln
bmVkIHNwZWNpYWxGYXN0UGF0aENvdW50KCkgY29uc3QKKyAgICB7IAorICAgICAgICAvLyBGSVhN
RToKKyAgICAgICAgcmV0dXJuIG1fYml0cyAmIHNwZWNpYWxGYXN0UGF0aEJpdCA/IFVJTlRfTUFY
IDogMDsKKyAgICB9CisKKyAgICBib29sIGRpZE9ic2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0
dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIp
OyB9CisgICAgYm9vbCBkaWRPYnNlcnZlRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhO
b25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVO
b25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91Ymxl
KTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1iZXIpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZl
SW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0K
KyAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0
cyhJbnQ1Mk92ZXJmbG93KTsgfQorCisgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3Vi
bGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRO
ZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICB2b2lkIHNldE9i
c2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9uTnVtYmVyKTsgfQorICAgIHZvaWQgc2V0T2Jz
ZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQoSW50MzJPdmVyZmxvdyk7IH0KKyAgICB2b2lk
IHNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpIHsgc2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9CisK
KyAgICB2b2lkKiBhZGRyZXNzT2ZCaXRzKCkgeyByZXR1cm4gJm1fYml0czsgfQorCisgICAgdm9p
ZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZh
bHVlLmlzSW50MzIoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlz
TnVtYmVyKCkpIHsKKyAgICAgICAgICAgIG1fYml0cyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJP
dmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYml0cyB8PSBOb25OdW1iZXI7CisgICAgfQor
CisgICAgdm9pZCBsaHNTYXdJbnQzMigpIHsgc2V0TGhzT2JzZXJ2ZWRUeXBlKGxoc09ic2VydmVk
VHlwZSgpLndpdGhJbnQzMigpKTsgfQorICAgIHZvaWQgbGhzU2F3TnVtYmVyKCkgeyBzZXRMaHNP
YnNlcnZlZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJlcigpKTsgfQorICAgIHZvaWQg
bGhzU2F3Tm9uTnVtYmVyKCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCku
d2l0aE5vbk51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3SW50MzIoKSB7IHNldFJoc09ic2Vy
dmVkVHlwZShyaHNPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKSk7IH0KKyAgICB2b2lkIHJoc1Nh
d051bWJlcigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhOdW1i
ZXIoKSk7IH0KKyAgICB2b2lkIHJoc1Nhd05vbk51bWJlcigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBl
KHJoc09ic2VydmVkVHlwZSgpLndpdGhOb25OdW1iZXIoKSk7IH0KKworICAgIHZvaWQgb2JzZXJ2
ZUxIU0FuZFJIUyhKU1ZhbHVlIGxocywgSlNWYWx1ZSByaHMpCisgICAgeworICAgICAgICBBcml0
aFByb2ZpbGUgbmV3UHJvZmlsZSA9ICp0aGlzOworICAgICAgICBpZiAobGhzLmlzTnVtYmVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChsaHMuaXNJbnQzMigpKQorICAgICAgICAgICAgICAgIG5ld1By
b2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBu
ZXdQcm9maWxlLmxoc1Nhd051bWJlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5l
d1Byb2ZpbGUubGhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAgaWYgKHJocy5pc051bWJlcigp
KSB7CisgICAgICAgICAgICBpZiAocmhzLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICBuZXdQ
cm9maWxlLnJoc1Nhd0ludDMyKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
bmV3UHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBu
ZXdQcm9maWxlLnJoc1Nhd05vbk51bWJlcigpOworCisgICAgICAgIG1fYml0cyA9IG5ld1Byb2Zp
bGUuYml0cygpOworICAgIH0KKworI2lmIEVOQUJMRShKSVQpICAgIAorICAgIC8vIFNldHMgKElu
dDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9E
b3VibGUpIGlmIGl0IHNlZXMgYQorICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQg
c2VlcyBhIG5vbi1udW1iZXIuCisgICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KTsKKyAgICAKKyAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5v
bk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKS4KKyAgICB2b2lkIGVtaXRTZXREb3VibGUo
Q0NhbGxIZWxwZXJzJik7CisgICAgCisgICAgLy8gU2V0cyBOb25OdW1iZXIuCisgICAgdm9pZCBl
bWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYpOworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisK
KyAgICB1aW50MzJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKK3ByaXZhdGU6
CisgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBtYXNr
OyB9CisgICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9iaXRzIHw9IG1hc2s7IH0KKworICAg
IHVpbnQzMl90IG1fYml0cyB7IDAgfTsgLy8gV2UgdGFrZSBjYXJlIHRvIHVwZGF0ZSBtX2JpdHMg
b25seSBpbiBhIHNpbmdsZSBvcGVyYXRpb24uIFdlIGRvbid0IGV2ZXIgc3RvcmUgYW4gaW5jb25z
aXN0ZW50IGJpdCByZXByZXNlbnRhdGlvbiB0byBpdC4KK307CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwg
Y29uc3QgSlNDOjpBcml0aFByb2ZpbGUmKTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRp
ZiAvLyBBcml0aFByb2ZpbGVfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAKKyNpbmNs
dWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNp
bmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlVXNlRGVmLmgi
CkBAIC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSW5saW5lQ2FsbEZyYW1lLmgiCiAjaW5jbHVk
ZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMu
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTTGV4aWNhbEVudmlyb25tZW50LmgiCkBAIC03NjcsNyArNzY5LDcgQEAgdm9pZCBD
b2RlQmxvY2s6OmR1bXBSYXJlQ2FzZVByb2ZpbGUoUHJpbgogICAgIG91dC5wcmludChuYW1lLCBw
cm9maWxlLT5tX2NvdW50ZXIpOwogfQogCi12b2lkIENvZGVCbG9jazo6ZHVtcFJlc3VsdFByb2Zp
bGUoUHJpbnRTdHJlYW0mIG91dCwgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJp
bnRlZFByb2ZpbGluZykKK3ZvaWQgQ29kZUJsb2NrOjpkdW1wQXJpdGhQcm9maWxlKFByaW50U3Ry
ZWFtJiBvdXQsIEFyaXRoUHJvZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGlu
ZykKIHsKICAgICBpZiAoIXByb2ZpbGUpCiAgICAgICAgIHJldHVybjsKQEAgLTE3NjcsNyArMTc2
OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgZHVtcFJhcmVDYXNlUHJv
ZmlsZShvdXQsICJyYXJlIGNhc2U6ICIsIHJhcmVDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0
KGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgewogICAgICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBkdW1wUmVzdWx0UHJvZmlsZShv
dXQsIHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGxvY2F0aW9uKSwgaGFz
UHJpbnRlZFByb2ZpbGluZyk7CisgICAgICAgIGR1bXBBcml0aFByb2ZpbGUob3V0LCBhcml0aFBy
b2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOwog
ICAgIH0KICAgICAKICNpZiBFTkFCTEUoREZHX0pJVCkKQEAgLTMwMDAsNiArMzAwMiw1OSBAQCBT
dHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mCiAgICAgcmV0dXJuIG1fc3R1
YkluZm9zLmFkZChhY2Nlc3NUeXBlKTsKIH0KIAorSklUQWRkSUMqIENvZGVCbG9jazo6YWRkSklU
QWRkSUMoKQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAg
cmV0dXJuIG1fYWRkSUNzLmFkZCgpOworfQorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRl
IDxzeXMvdHlwZXMuaD4KKwordm9pZCBDb2RlQmxvY2s6OmR1bXBKSVRBZGRJQ1N0YXRzKCkKK3sK
KyAgICByZXR1cm47CisKKyAgICAvKgorICAgIGRvdWJsZSBzaXplID0gMC4wOworICAgIGRvdWJs
ZSBvdXRPZkxpbmUgPSAwLjA7CisgICAgYXV0byBmdW5jID0gWyZdIChDb2RlQmxvY2sqIGNvZGVC
bG9jaykgLT4gYm9vbCB7CisgICAgICAgIGZvciAoSklUQWRkSUMqIGFkZElDIDogY29kZUJsb2Nr
LT5tX2FkZElDcykgeworICAgICAgICAgICAgKytzaXplOworICAgICAgICAgICAgaWYgKGFkZElD
LT5tX2NvZGUpCisgICAgICAgICAgICAgICAgKytvdXRPZkxpbmU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdm0oKS0+aGVhcC5mb3JFYWNoQ29kZUJsb2Nr
KGZ1bmMpOworICAgIGF1dG8gcGlkID0gZ2V0cGlkKCk7CisgICAgZGF0YUxvZygiUElEOiAiLCBw
aWQsICIgQ29kZUJsb2NrIGhhcyBvdXRPZkxpbmUgcmF0aW86ICIsIG91dE9mTGluZS9zaXplLCAi
XG4iKTsKKyAgICBkYXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBUb3RhbCBudW0gYWRkIElDczoiLCBz
aXplLCAiLiBUb3RhbCBudW0gb3V0IG9mIGxpbmU6ICIsIG91dE9mTGluZSwgIlxuIik7CisgICAg
Ki8KKworICAgIHN0YXRpYyBkb3VibGUgcGVha1NpemUgPSAwLjA7CisgICAgZG91YmxlIHNpemUg
PSAwLjA7CisgICAgZG91YmxlIG51bUFkZHMgPSAwLjA7CisgICAgc2l6ZV90IHNtYWxsZXN0U2l6
ZSA9IFVJTlRfTUFYOworICAgIHNpemVfdCBsYXJnZXN0U2l6ZSA9IDA7CisgICAgYXV0byBmdW5j
ID0gWyZdIChDb2RlQmxvY2sqIGNvZGVCbG9jaykgLT4gYm9vbCB7CisgICAgICAgIGZvciAoSklU
QWRkSUMqIGFkZElDIDogY29kZUJsb2NrLT5tX2FkZElDcykgeworICAgICAgICAgICAgKytudW1B
ZGRzOworICAgICAgICAgICAgc2l6ZSArPSBhZGRJQy0+Y29kZVNpemUoKTsKKyAgICAgICAgICAg
IGxhcmdlc3RTaXplID0gc3RkOjptYXgoYWRkSUMtPmNvZGVTaXplKCksIGxhcmdlc3RTaXplKTsK
KyAgICAgICAgICAgIHNtYWxsZXN0U2l6ZSA9IHN0ZDo6bWluKGFkZElDLT5jb2RlU2l6ZSgpLCBz
bWFsbGVzdFNpemUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Owor
ICAgIHZtKCktPmhlYXAuZm9yRWFjaENvZGVCbG9jayhmdW5jKTsKKyAgICBwZWFrU2l6ZSA9IHN0
ZDo6bWF4KHNpemUsIHBlYWtTaXplKTsKKyAgICBhdXRvIHBpZCA9IGdldHBpZCgpOworICAgIGRh
dGFMb2coIlBJRDogIiwgcGlkLCAiIENvZGVCbG9jayBoYXMgc2l6ZSByYXRpbzogIiwgc2l6ZS9u
dW1BZGRzLCAiXG4iKTsKKyAgICBkYXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBUb3RhbCBudW0gYWRk
IElDczoiLCBudW1BZGRzLCAiLiBUb3RhbCBudW0gc2l6ZTogIiwgc2l6ZSwgIlxuIik7CisgICAg
ZGF0YUxvZygiUElEOiAiLCBwaWQsICIgUGVhayBzaXplOiAiLCBwZWFrU2l6ZSwgIlxuIik7Cisg
ICAgZGF0YUxvZygiUElEOiAiLCBwaWQsICIgbGFyZ2VzdCBzaXplOiIsIGxhcmdlc3RTaXplLCAi
IFNtYWxsZXN0IHNpemU6Iiwgc21hbGxlc3RTaXplLCAgIlxuIik7Cit9CisKIFN0cnVjdHVyZVN0
dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7
CiAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBtX3N0dWJJbmZvcykgewpA
QCAtMzA0NiwxMSArMzEwMSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpyZXNldEpJVERhdGEoKQogICAg
IC8vIFdlIGNhbiBjbGVhciB0aGlzIGJlY2F1c2UgdGhlIERGRydzIHF1ZXJpZXMgdG8gdGhlc2Ug
ZGF0YSBzdHJ1Y3R1cmVzIGFyZSBndWFyZGVkIGJ5IHdoZXRoZXIKICAgICAvLyB0aGVyZSBpcyBK
SVQgY29kZS4KICAgICBtX3JhcmVDYXNlUHJvZmlsZXMuY2xlYXIoKTsKLSAgICAKLSAgICAvLyBX
ZSBjYW4gY2xlYXIgdGhlc2UgYmVjYXVzZSB0aGUgREZHIG9ubHkgYWNjZXNzZXMgbWVtYmVycyBv
ZiB0aGlzIGRhdGEgc3RydWN0dXJlIHdoZW4KLSAgICAvLyBob2xkaW5nIHRoZSBsb2NrIG9yIGFm
dGVyIHF1ZXJ5aW5nIHdoZXRoZXIgd2UgaGF2ZSBKSVQgY29kZS4KLSAgICBtX3Jlc3VsdFByb2Zp
bGVzLmNsZWFyKCk7Ci0gICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFw
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCkBAIC0zMjgwLDcgKzMzMzAsNiBAQCB2b2lkIENvZGVC
bG9jazo6c2hyaW5rVG9GaXQoU2hyaW5rTW9kZSBzCiAgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIobV9sb2NrKTsKIAogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwot
ICAgIG1fcmVzdWx0UHJvZmlsZXMuc2hyaW5rVG9GaXQoKTsKICAgICAKICAgICBpZiAoc2hyaW5r
TW9kZSA9PSBFYXJseVNocmluaykgewogICAgICAgICBtX2NvbnN0YW50UmVnaXN0ZXJzLnNocmlu
a1RvRml0KCk7CkBAIC00MTU2LDExICs0MjA1LDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wVmFs
dWVQcm9maWxlcygpCiAgICAgICAgIFJhcmVDYXNlUHJvZmlsZSogcHJvZmlsZSA9IHJhcmVDYXNl
UHJvZmlsZShpKTsKICAgICAgICAgZGF0YUxvZ0YoIiAgIGJjID0gJWQ6ICV1XG4iLCBwcm9maWxl
LT5tX2J5dGVjb2RlT2Zmc2V0LCBwcm9maWxlLT5tX2NvdW50ZXIpOwogICAgIH0KLSAgICBkYXRh
TG9nKCJSZXN1bHRQcm9maWxlIGZvciAiLCAqdGhpcywgIjpcbiIpOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1iZXJPZlJlc3VsdFByb2ZpbGVzKCk7ICsraSkgewotICAgICAgICBj
b25zdCBSZXN1bHRQcm9maWxlJiBwcm9maWxlID0gKnJlc3VsdFByb2ZpbGUoaSk7CisgICAgLyog
RklYTUU6CisgICAgZGF0YUxvZygiQXJpdGhQcm9maWxlIGZvciAiLCAqdGhpcywgIjpcbiIpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkFyaXRoUHJvZmlsZXMoKTsgKytp
KSB7CisgICAgICAgIGNvbnN0IEFyaXRoUHJvZmlsZSYgcHJvZmlsZSA9ICphcml0aFByb2ZpbGUo
aSk7CiAgICAgICAgIGRhdGFMb2coIiAgIGJjID0gIiwgcHJvZmlsZS5ieXRlY29kZU9mZnNldCgp
LCAiOiAiLCBwcm9maWxlLCAiXG4iKTsKICAgICB9CisgICAgKi8KIH0KICNlbmRpZiAvLyBFTkFC
TEUoVkVSQk9TRV9WQUxVRV9QUk9GSUxFKQogCkBAIC00MzYzLDE0ICs0NDE0LDQ2IEBAIHVuc2ln
bmVkIENvZGVCbG9jazo6cmFyZUNhc2VQcm9maWxlQ291bnQKICAgICByZXR1cm4gMDsKIH0KIAot
UmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQo
Y29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRoUHJv
ZmlsZSogQ29kZUJsb2NrOjphcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNv
ZGVPZmZzZXQpCiB7Ci0gICAgaWYgKCFtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5k
ZXhNYXApCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2J5
dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmZpbmQoYnl0ZWNvZGVPZmZzZXQp
OwotICAgIGlmIChpdGVyYXRvciA9PSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5k
ZXhNYXAtPmVuZCgpKQorICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0
T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVPZmZzZXRdLnUub3Bjb2RlKTsKKyAgICBz
d2l0Y2ggKG9wY29kZUlEKSB7CisgICAgY2FzZSBvcF9iaXRvcjoKKyAgICBjYXNlIG9wX2JpdGFu
ZDoKKyAgICBjYXNlIG9wX2JpdHhvcjoKKyAgICBjYXNlIG9wX2FkZDoKKyAgICBjYXNlIG9wX211
bDoKKyAgICBjYXNlIG9wX3N1YjoKKyAgICBjYXNlIG9wX2RpdjoKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuICZtX3Jlc3Vs
dFByb2ZpbGVzW2l0ZXJhdG9yLT52YWx1ZV07CisgICAgfQorCisgICAgSW5zdHJ1Y3Rpb24qIGlu
c3RydWN0aW9uID0gJmluc3RydWN0aW9ucygpW2J5dGVjb2RlT2Zmc2V0ICsgNF07CisgICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxBcml0aFByb2ZpbGUqPigmaW5zdHJ1Y3Rpb24tPnUub3BlcmFuZCk7
Cit9CisKK0FyaXRoUHJvZmlsZSYgQ29kZUJsb2NrOjphcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVj
dGlvbiogcGMpCit7CisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAgQVNTRVJU
KHBjID49IGluc3RydWN0aW9ucygpLmJlZ2luKCkgJiYgcGMgPCBpbnN0cnVjdGlvbnMoKS5lbmQo
KSk7CisgICAgICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2Rl
SUQocGNbMF0udS5vcGNvZGUpOworICAgICAgICBzd2l0Y2ggKG9wY29kZUlEKSB7CisgICAgICAg
IGNhc2Ugb3BfYml0b3I6CisgICAgICAgIGNhc2Ugb3BfYml0YW5kOgorICAgICAgICBjYXNlIG9w
X2JpdHhvcjoKKyAgICAgICAgY2FzZSBvcF9hZGQ6CisgICAgICAgIGNhc2Ugb3BfbXVsOgorICAg
ICAgICBjYXNlIG9wX3N1YjoKKyAgICAgICAgY2FzZSBvcF9kaXY6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICpiaXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxl
Kj4oJnBjWzRdLnUub3BlcmFuZCk7CiB9CiAKIHVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZh
c3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQpA
QCAtNDM3OSw5ICs0NDYyLDkgQEAgdW5zaWduZWQgQ29kZUJsb2NrOjpzcGVjaWFsRmFzdENhc2VQ
cm9maQogICAgIHJldHVybiBzcGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9m
ZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKIH0KIAotdW5zaWduZWQgQ29kZUJsb2NrOjpz
cGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9mZnNldCkKK3Vuc2lnbmVkIENvZGVC
bG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBSZXN1bHRQ
cm9maWxlKiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwg
Ynl0ZWNvZGVPZmZzZXQpOworICAgIEFyaXRoUHJvZmlsZSogcHJvZmlsZSA9IGFyaXRoUHJvZmls
ZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KTsKICAgICBpZiAoIXByb2ZpbGUpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBwcm9maWxlLT5zcGVjaWFsRmFzdFBhdGhDb3Vu
dCgpOwpAQCAtNDM5NSwyNiArNDQ3OCw2IEBAIGJvb2wgQ29kZUJsb2NrOjpjb3VsZFRha2VTcGVj
aWFsRmFzdENhc2UKICAgICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6
Y291bGRUYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKIH0KIAotUmVzdWx0UHJvZmlsZSogQ29k
ZUJsb2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1
bHRQcm9maWxlKGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBD
b2RlQmxvY2s6OmVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYg
bG9ja2VyLCBpbnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmls
ZSA9IHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0
KTsKLSAgICBpZiAoIXByb2ZpbGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQo
UmVzdWx0UHJvZmlsZShieXRlY29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVz
dWx0UHJvZmlsZXMubGFzdCgpOwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFz
dCgpID09ICZtX3Jlc3VsdFByb2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwot
ICAgICAgICBpZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAg
ICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6
bWFrZV91bmlxdWU8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAg
ICAgICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNv
ZGVPZmZzZXQsIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVy
biBwcm9maWxlOwotfQotCiAjaWYgRU5BQkxFKEpJVCkKIERGRzo6Q2FwYWJpbGl0eUxldmVsIENv
ZGVCbG9jazo6Y2FwYWJpbGl0eUxldmVsKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiAr
NTEsNyBAQAogI2luY2x1ZGUgIkhhbmRsZXJJbmZvLmgiCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24u
aCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2FyZHMuaCIK
ICNpbmNsdWRlICJKSVRXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgpAQCAtNzksNiArODAsNyBAQAogbmFtZXNwYWNlIEpTQyB7
CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTTW9k
dWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBQQ1Rv
Q29kZU9yaWdpbk1hcDsKQEAgLTg4LDYgKzkwLDggQEAgY2xhc3MgVHlwZUxvY2F0aW9uOwogCiBl
bnVtIGNsYXNzIEFjY2Vzc1R5cGUgOiBpbnQ4X3Q7CiAKK3N0cnVjdCBBcml0aFByb2ZpbGU7CisK
IHR5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBTdHJ1Y3R1cmVTdHViSW5mbyosIENvZGVPcmln
aW5BcHByb3hpbWF0ZUhhc2g+IFN0dWJJbmZvTWFwOwogCiBlbnVtIFJlb3B0aW1pemF0aW9uTW9k
ZSB7IERvbnRDb3VudFJlb3B0aW1pemF0aW9uLCBDb3VudFJlb3B0aW1pemF0aW9uIH07CkBAIC0y
NDUsNiArMjQ5LDggQEAgcHVibGljOgogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0
dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKEFjY2Vzc1R5cGUpOworICAgIEpJVEFkZElDKiBhZGRK
SVRBZGRJQygpOworICAgIHZvaWQgZHVtcEpJVEFkZElDU3RhdHMoKTsKICAgICBCYWc8U3RydWN0
dXJlU3R1YkluZm8+OjppdGVyYXRvciBzdHViSW5mb0JlZ2luKCkgeyByZXR1cm4gbV9zdHViSW5m
b3MuYmVnaW4oKTsgfQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJ
bmZvRW5kKCkgeyByZXR1cm4gbV9zdHViSW5mb3MuZW5kKCk7IH0KICAgICAKQEAgLTQ0MCwxMCAr
NDQ2LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdmFsdWUgPj0gT3B0aW9uczo6Y291bGRU
YWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKICAgICB9CiAKLSAgICBSZXN1bHRQcm9maWxlKiBl
bnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCk7Ci0gICAgUmVzdWx0UHJvZmls
ZSogZW5zdXJlUmVzdWx0UHJvZmlsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgaW50IGJ5
dGVjb2RlT2Zmc2V0KTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZlJlc3VsdFByb2ZpbGVzKCkgeyBy
ZXR1cm4gbV9yZXN1bHRQcm9maWxlcy5zaXplKCk7IH0KLSAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGlu
dCBieXRlY29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpOworICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQ
cm9maWxlRm9yUEMoSW5zdHJ1Y3Rpb24qKTsKIAogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2Fz
ZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2Zp
bGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CkBAIC05NTcsNyAr
OTYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGR1bXBWYWx1ZVByb2ZpbGluZyhQcmludFN0cmVh
bSYsIGNvbnN0IEluc3RydWN0aW9uKiYsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAg
IHZvaWQgZHVtcEFycmF5UHJvZmlsaW5nKFByaW50U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24q
JiwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgdm9pZCBkdW1wUmFyZUNhc2VQcm9m
aWxlKFByaW50U3RyZWFtJiwgY29uc3QgY2hhciogbmFtZSwgUmFyZUNhc2VQcm9maWxlKiwgYm9v
bCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7Ci0gICAgdm9pZCBkdW1wUmVzdWx0UHJvZmlsZShQcmlu
dFN0cmVhbSYsIFJlc3VsdFByb2ZpbGUqLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAg
ICB2b2lkIGR1bXBBcml0aFByb2ZpbGUoUHJpbnRTdHJlYW0mLCBBcml0aFByb2ZpbGUqLCBib29s
JiBoYXNQcmludGVkUHJvZmlsaW5nKTsKIAogICAgIGJvb2wgc2hvdWxkVmlzaXRTdHJvbmdseSgp
OwogICAgIGJvb2wgc2hvdWxkSmV0dGlzb25EdWVUb1dlYWtSZWZlcmVuY2UoKTsKQEAgLTEwMTMs
NiArMTAxNyw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVnaXN0ZXJBdE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBCYWc8
U3RydWN0dXJlU3R1YkluZm8+IG1fc3R1YkluZm9zOworICAgIEJhZzxKSVRBZGRJQz4gbV9hZGRJ
Q3M7CiAgICAgQmFnPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwogICAgIEJhZzxDYWxsTGlua0lu
Zm8+IG1fY2FsbExpbmtJbmZvczsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZv
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CkBA
IC0xMDI5LDkgKzEwMzQsNiBAQCBwcml2YXRlOgogICAgIFJlZkNvdW50ZWRBcnJheTxWYWx1ZVBy
b2ZpbGU+IG1fYXJndW1lbnRWYWx1ZVByb2ZpbGVzOwogICAgIFJlZkNvdW50ZWRBcnJheTxWYWx1
ZVByb2ZpbGU+IG1fdmFsdWVQcm9maWxlczsKICAgICBTZWdtZW50ZWRWZWN0b3I8UmFyZUNhc2VQ
cm9maWxlLCA4PiBtX3JhcmVDYXNlUHJvZmlsZXM7Ci0gICAgU2VnbWVudGVkVmVjdG9yPFJlc3Vs
dFByb2ZpbGUsIDg+IG1fcmVzdWx0UHJvZmlsZXM7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVuc2ln
bmVkLCB1bnNpZ25lZCwgSW50SGFzaDx1bnNpZ25lZD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tl
eUhhc2hUcmFpdHM8dW5zaWduZWQ+PiBCeXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4
TWFwOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxCeXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUlu
ZGV4TWFwPiBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA7CiAgICAgUmVm
Q291bnRlZEFycmF5PEFycmF5QWxsb2NhdGlvblByb2ZpbGU+IG1fYXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZXM7CiAgICAgQXJyYXlQcm9maWxlVmVjdG9yIG1fYXJyYXlQcm9maWxlczsKICAgICBSZWZD
b3VudGVkQXJyYXk8T2JqZWN0QWxsb2NhdGlvblByb2ZpbGU+IG1fb2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGVzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAz
MzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKQEAgLTY1LDggKzY2LDggQEAgdm9pZCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
OjplbWl0UgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBjYXNlIFJlc3Vs
dFByb2ZpbGVSZWFkeTogewotICAgICAgICB1LnJlc3VsdFByb2ZpbGUtPmVtaXREZXRlY3ROdW1l
cmljbmVzcyhqaXQsIHJlZ3MsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgY2FzZSBBcml0
aFByb2ZpbGVSZWFkeTogeworICAgICAgICB1LmFyaXRoUHJvZmlsZS0+ZW1pdERldGVjdE51bWVy
aWNuZXNzKGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0gfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01l
dGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCShyZXZpc2lv
biAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3Mg
TGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7Ci1zdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKK3N0cnVj
dCBBcml0aFByb2ZpbGU7CiBzdHJ1Y3QgVmFsdWVQcm9maWxlOwogCiBjbGFzcyBNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlIHsKQEAgLTU5LDExICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBtX2tpbmQgPSBOb25lOwogICAgIH0KICAgICAKLSAgICBNZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlKFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAgTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZShBcml0aFByb2ZpbGUqIHByb2ZpbGUpCiAgICAgewogICAgICAgICBpZiAocHJv
ZmlsZSkgewotICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OwotICAgICAg
ICAgICAgdS5yZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgICAgIG1fa2luZCA9IEFy
aXRoUHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5hcml0aFByb2ZpbGUgPSBwcm9maWxlOwog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQpAQCAtNzks
MTQgKzc5LDE0IEBAIHByaXZhdGU6CiAgICAgZW51bSBLaW5kIHsKICAgICAgICAgTm9uZSwKICAg
ICAgICAgUmVhZHksCi0gICAgICAgIFJlc3VsdFByb2ZpbGVSZWFkeSwKKyAgICAgICAgQXJpdGhQ
cm9maWxlUmVhZHksCiAgICAgICAgIExhenlPcGVyYW5kCiAgICAgfTsKICAgICAKICAgICBLaW5k
IG1fa2luZDsKICAgICB1bmlvbiB7CiAgICAgICAgIFZhbHVlUHJvZmlsZSogcHJvZmlsZTsKLSAg
ICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZTsKKyAgICAgICAgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGU7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jazsKICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHJl
dmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3MCArMzEsNCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotI2lmIEVOQUJMRShKSVQpCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3RO
dW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0
ZXJzTW9kZSBtb2RlKQotewotICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJy
YW5jaElmSW50MzIocmVncywgbW9kZSk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJs
ZSA9IGppdC5icmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7Ci0gICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgotICAgIGVtaXRTZXREb3Vi
bGUoaml0KTsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7Ci0gICAg
bm90RG91YmxlLmxpbmsoJmppdCk7Ci0gICAgZW1pdFNldE5vbk51bWJlcihqaXQpOwotICAgIGRv
bmUubGluaygmaml0KTsKLSAgICBpc0ludDMyLmxpbmsoJmppdCk7Ci19Ci0KLXZvaWQgUmVzdWx0
UHJvZmlsZTo6ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQub3Iz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93
IHwgUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9E
b3VibGUgfCBSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotCi12b2lkIFJlc3VsdFByb2Zp
bGU6OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0Nh
bGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotI2VuZGlm
IC8vIEVOQUJMRShKSVQpCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RGIHsK
LSAgICAKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBjb25zdCBSZXN1bHRQcm9maWxlJiBwcm9maWxlKQotewotICAgIGNvbnN0IGNo
YXIqIHNlcGFyYXRvciA9ICIiOwotCi0gICAgaWYgKCFwcm9maWxlLmRpZE9ic2VydmVOb25JbnQz
MigpKSB7Ci0gICAgICAgIG91dC5wcmludCgiSW50MzIiKTsKLSAgICAgICAgc2VwYXJhdG9yID0g
InwiOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJv
RG91YmxlKCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWdaZXJvRG91
YmxlIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAg
b3V0LnByaW50KCJOb25OZWdaZXJvRG91YmxlIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigp
KSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJlciIpOwotICAgICAgICAgICAgc2Vw
YXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJ
bnQzMk92ZXJmbG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIp
OwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChw
cm9maWxlLmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmlu
dCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAg
ICB9Ci0gICAgfQotICAgIGlmIChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpIHsKLSAg
ICAgICAgb3V0LnByaW50KCIgc3BlY2lhbCBmYXN0IHBhdGg6ICIpOwotICAgICAgICBvdXQucHJp
bnQocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJv
ZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksODggKzIwOSw2IEBA
IGlubGluZSBpbnQgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmYKICAgICByZXR1cm4gcmFy
ZUNhc2VQcm9maWxlLT5tX2J5dGVjb2RlT2Zmc2V0OwogfQogCi1zdHJ1Y3QgUmVzdWx0UHJvZmls
ZSB7Ci1wcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtYmVyT2ZGbGFnQml0cyA9IDU7
Ci0KLXB1YmxpYzoKLSAgICBSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLSAgICAg
ICAgOiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MoYnl0ZWNvZGVPZmZzZXQgPDwgbnVtYmVyT2ZG
bGFnQml0cykKLSAgICB7Ci0gICAgICAgIEFTU0VSVCgoKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJl
ck9mRmxhZ0JpdHMpID4+IG51bWJlck9mRmxhZ0JpdHMpID09IGJ5dGVjb2RlT2Zmc2V0KTsKLSAg
ICB9Ci0KLSAgICBlbnVtIE9ic2VydmVkUmVzdWx0cyB7Ci0gICAgICAgIE5vbk5lZ1plcm9Eb3Vi
bGUgPSAxIDw8IDAsCi0gICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDEsCi0gICAgICAg
IE5vbk51bWJlciAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIEludDMyT3ZlcmZsb3cgICAgPSAx
IDw8IDMsCi0gICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDQsCi0gICAgfTsKLQotICAg
IGludCBieXRlY29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRG
bGFncyA+PiBudW1iZXJPZkZsYWdCaXRzOyB9Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RQYXRo
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0KLSAgICBi
b29sIGRpZE9ic2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVy
b0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNl
cnZlRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVn
WmVyb0RvdWJsZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkgY29u
c3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2Jz
ZXJ2ZU5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9Eb3VibGUp
OyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0
cyhOb25OdW1iZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KLSAgICBib29sIGRpZE9ic2VydmVJ
bnQ1Mk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93KTsgfQot
Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOb25OZWda
ZXJvRG91YmxlKTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkgeyBzZXRC
aXQoTmVnWmVyb0RvdWJsZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVyKCkgeyBz
ZXRCaXQoTm9uTnVtYmVyKTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCkg
eyBzZXRCaXQoSW50MzJPdmVyZmxvdyk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50NTJPdmVy
ZmxvdygpIHsgc2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9Ci0KLSAgICB2b2lkKiBhZGRyZXNzT2ZG
bGFncygpIHsgcmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KLSAgICB2b2lkKiBh
ZGRyZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0
aENvdW50OyB9Ci0gICAgCi0gICAgdm9pZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVl
KQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIG1fYnl0ZWNv
ZGVPZmZzZXRBbmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5l
Z1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1iZXI7Ci0gICAg
fQotCi0jaWYgRU5BQkxFKEpJVCkgICAgCi0gICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IElu
dDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2Vl
cyBhCi0gICAgLy8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJl
ci4KLSAgICB2b2lkIGVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVl
UmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwotICAgIAotICAgIC8v
IFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8
IE5lZ1plcm9Eb3VibGUpLgotICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsK
LSAgICAKLSAgICAvLyBTZXRzIE5vbk51bWJlci4KLSAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIo
Q0NhbGxIZWxwZXJzJik7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotcHJpdmF0ZToKLSAgICBi
b29sIGhhc0JpdHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRG
bGFncyAmIG1hc2s7IH0KLSAgICB2b2lkIHNldEJpdChpbnQgbWFzaykgeyBtX2J5dGVjb2RlT2Zm
c2V0QW5kRmxhZ3MgfD0gbWFzazsgfQotCi0gICAgaW50IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFn
czsKLSAgICB1bnNpZ25lZCBtX3NwZWNpYWxGYXN0UGF0aENvdW50IHsgMCB9OwotfTsKLQotaW5s
aW5lIGludCBnZXRSZXN1bHRQcm9maWxlQnl0ZWNvZGVPZmZzZXQoUmVzdWx0UHJvZmlsZSogcHJv
ZmlsZSkKLXsKLSAgICByZXR1cm4gcHJvZmlsZS0+Ynl0ZWNvZGVPZmZzZXQoKTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHByaW50SW50ZXJuYWwo
UHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6OlJlc3VsdFByb2ZpbGUmKTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV1RGCi0KICNlbmRpZiAvLyBWYWx1ZVByb2ZpbGVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogCisj
aW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgi
CiAjaW5jbHVkZSAiQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzLmgiCiAjaW5jbHVkZSAiSW50ZXJw
cmV0ZXIuaCIKQEAgLTE1OTgsNyArMTU5OSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0QmluYXIKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9iaXRvciB8fCBvcGNvZGVJ
RCA9PSBvcF9iaXRhbmQgfHwgb3Bjb2RlSUQgPT0gb3BfYml0eG9yIHx8CiAgICAgICAgIG9wY29k
ZUlEID09IG9wX2FkZCB8fCBvcGNvZGVJRCA9PSBvcF9tdWwgfHwgb3Bjb2RlSUQgPT0gb3Bfc3Vi
IHx8IG9wY29kZUlEID09IG9wX2RpdikKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHR5
cGVzLnRvSW50KCkpOworICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoQXJpdGhQcm9maWxl
KHR5cGVzLmZpcnN0KCksIHR5cGVzLnNlY29uZCgpKS5iaXRzKCkpOwogCiAgICAgcmV0dXJuIGRz
dDsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNs
dWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgi
CiAjaW5jbHVkZSAiQ2FsbExpbmtTdGF0dXMuaCIKQEAgLTkxMCwyOSArOTExLDI4IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxv
Y2stPm1fbG9jayk7Ci0gICAgICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0g
bV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobG9ja2VyLCBtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0
UHJvZmlsZSkgeworICAgICAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtX2lu
bGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KG1fY3VycmVudEluZGV4KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUpIHsKICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKICAgICAgICAgICAgICAgICBjYXNl
IEFyaXRoQWRkOgogICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAg
ICAgY2FzZSBWYWx1ZUFkZDoKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUt
PmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmls
ZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVy
Z2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAg
ICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQp
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBjYXNlIEFyaXRoTXVsOiB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQ
cm9maWxlLT5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKQorICAgICAgICAgICAgICAgICAgICBp
ZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQ1Mik7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxv
dygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmls
ZS0+ZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQ
cm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNl
bGluZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZl
TmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhp
dFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAg
IGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVT
dGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRp
dmVaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1h
eU5lZ1plcm9JbkJhc2VsaW5lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2Zp
bGUtPmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJv
ZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+
bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1
bHQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMjAzMzUxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE1NDgsOSArMTU0OCw4IEBAIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6
Om1ldGgKICAgICAgICAgICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAg
ICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihw
cm9maWxlZEJsb2NrLT5tX2xvY2spOwogICAgICAgICAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhh
c0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoUmVzdWx0UHJv
ZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KGxvY2tlciwgbm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAg
ICAgICAgICAgIGlmIChBcml0aFByb2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPmFyaXRo
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDQsNyArNjA0LDcgQEAgdm9p
ZCBKSVRDb21waWxlcjo6ZXhjZXB0aW9uQ2hlY2soKQogICAgIEhhbmRsZXJJbmZvKiBleGNlcHRp
b25IYW5kbGVyOwogICAgIGJvb2wgd2lsbENhdGNoRXhjZXB0aW9uID0gbV9ncmFwaC53aWxsQ2F0
Y2hFeGNlcHRpb25Jbk1hY2hpbmVGcmFtZShtX3NwZWN1bGF0aXZlLT5tX2N1cnJlbnROb2RlLT5v
cmlnaW4uZm9yRXhpdCwgb3BDYXRjaE9yaWdpbiwgZXhjZXB0aW9uSGFuZGxlcik7IAogICAgIGlm
ICh3aWxsQ2F0Y2hFeGNlcHRpb24pIHsKLSAgICAgICAgdW5zaWduZWQgc3RyZWFtSW5kZXggPSBt
X3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4ICE9IFVJTlRfTUFYID8gbV9zcGVj
dWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA6IG1fc3BlY3VsYXRpdmUtPm1fc3RyZWFt
LT5zaXplKCk7CisgICAgICAgIHVuc2lnbmVkIHN0cmVhbUluZGV4ID0gbV9zcGVjdWxhdGl2ZS0+
bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA/ICptX3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVh
bUluZGV4IDogbV9zcGVjdWxhdGl2ZS0+bV9zdHJlYW0tPnNpemUoKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgaGFkRXhjZXB0aW9uID0gZW1pdE5vblBhdGNoYWJsZUV4Y2VwdGlvbkNo
ZWNrKCk7CiAgICAgICAgIC8vIFdlIGFzc3VtZSBoZXJlIHRoYXQgdGhpcyBpcyBjYWxsZWQgYWZ0
ZXIgY2FsbE9wZWFydGlvbigpL2FwcGVuZENhbGwoKSBpcyBjYWxsZWQuCiAgICAgICAgIGFwcGVu
ZEV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdChFeGNlcHRpb25DaGVjaywgc3RyZWFtSW5kZXgsIG9w
Q2F0Y2hPcmlnaW4sIGV4Y2VwdGlvbkhhbmRsZXIsIG1faml0Q29kZS0+Y29tbW9uLmxhc3RDYWxs
U2l0ZSgpLCBoYWRFeGNlcHRpb24pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTbG93UGF0aEdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5tX291dE9mTGluZVN0cmVh
bUluZGV4ID0gbV9zdHJlYW1JbmRleDsKICAgICAgICAgaml0LT5tX29yaWdpbiA9IG1fb3JpZ2lu
OwogICAgICAgICBnZW5lcmF0ZUludGVybmFsKGppdCk7Ci0gICAgICAgIGppdC0+bV9vdXRPZkxp
bmVTdHJlYW1JbmRleCA9IFVJTlRfTUFYOworICAgICAgICBqaXQtPm1fb3V0T2ZMaW5lU3RyZWFt
SW5kZXggPSBOdWxsb3B0OwogICAgICAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkKICAgICAgICAg
ICAgIGppdC0+bV9qaXQuYWJvcnRXaXRoUmVhc29uKERGR1Nsb3dQYXRoR2VuZXJhdG9yRmVsbFRo
cm91Z2gpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkRGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJEaXJlY3RB
cmd1bWVudHMuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5l
cmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRC
aXRPckdlbmVyYXRvci5oIgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgogI2luY2x1ZGUg
IldyaXRlQmFycmllckJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC0z
NjIsNyArMzY0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0bwog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gbGFtYmRhKQogewotICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihsYW1iZGEsIG1fY3VycmVudE5vZGUpKTsKKyAgICBtX3Nsb3dQYXRoTGFtYmRhcy5h
cHBlbmQoU2xvd1BhdGhMYW1iZGF7IGxhbWJkYSwgbV9jdXJyZW50Tm9kZSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG1fc3RyZWFtLT5zaXplKCkpIH0pOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklU
OjpydW5TbG93UGF0aEdlbmVyYXRvcnMoUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyJiBwY1RvQ29k
ZU9yaWdpbk1hcEJ1aWxkZXIpCkBAIC0zNzEsMTEgKzM3MywxMyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpydW5TbG93UGF0aEdlbmVyYXRvCiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRl
ci5hcHBlbmRJdGVtKG1faml0LmxhYmVsKCksIHNsb3dQYXRoR2VuZXJhdG9yLT5vcmlnaW4oKS5z
ZW1hbnRpYyk7CiAgICAgICAgIHNsb3dQYXRoR2VuZXJhdG9yLT5nZW5lcmF0ZSh0aGlzKTsKICAg
ICB9Ci0gICAgZm9yIChhdXRvJiBnZW5lcmF0b3JQYWlyIDogbV9zbG93UGF0aExhbWJkYXMpIHsK
LSAgICAgICAgTm9kZSogY3VycmVudE5vZGUgPSBnZW5lcmF0b3JQYWlyLnNlY29uZDsKKyAgICBm
b3IgKGF1dG8mIHNsb3dQYXRoTGFtYmRhIDogbV9zbG93UGF0aExhbWJkYXMpIHsKKyAgICAgICAg
Tm9kZSogY3VycmVudE5vZGUgPSBzbG93UGF0aExhbWJkYS5tX2N1cnJlbnROb2RlOwogICAgICAg
ICBtX2N1cnJlbnROb2RlID0gY3VycmVudE5vZGU7CisgICAgICAgIG1fb3V0T2ZMaW5lU3RyZWFt
SW5kZXggPSBzbG93UGF0aExhbWJkYS5tX3N0cmVhbUluZGV4OwogICAgICAgICBwY1RvQ29kZU9y
aWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBjdXJyZW50Tm9kZS0+b3Jp
Z2luLnNlbWFudGljKTsKLSAgICAgICAgZ2VuZXJhdG9yUGFpci5maXJzdCgpOworICAgICAgICBz
bG93UGF0aExhbWJkYS5tX2dlbmVyYXRvcigpOworICAgICAgICBtX291dE9mTGluZVN0cmVhbUlu
ZGV4ID0gTnVsbG9wdDsKICAgICB9CiB9CiAKQEAgLTMzNzksMzEgKzMzODMsNzcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZAogICAgICAgICByaWdodFJlZ3MgPSBy
aWdodC0+anNWYWx1ZVJlZ3MoKTsKICAgICB9CiAKLSAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxl
ZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Ms
Ci0gICAgICAgIGxlZnRGUFIsIHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKLSAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgYXV0byBzdGFydCA9IG1faml0Lmxh
YmVsKCk7CiAKLSAgICBBU1NFUlQoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKTsKLSAgICBnZW4uZW5k
SnVtcExpc3QoKS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBt
X2ppdC5jb2RlQmxvY2soKS0+YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8TWF0aElDR2VuZXJhdGlv
blN0YXRlPiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+
OjpjcmVhdGUoKTsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1faml0LmdyYXBo
KCkuYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+YXJpdGhQcm9m
aWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgp
OworICAgIGFkZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwg
cmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBsZWZ0RlBSLCBy
aWdodEZQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAotICAgIGdl
bi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmbV9qaXQpOworICAgIGJvb2wgZ2VuZXJhdGVkSW5s
aW5lID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0aW9uU3RhdGUp
OwogCi0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAgaWYgKGdl
bmVyYXRlZElubGluZSkgeworICAgICAgICBBU1NFUlQoIWFkZElDR2VuZXJhdGlvblN0YXRlLT5t
X3Nsb3dQYXRoSnVtcHMuZW1wdHkoKSk7CiAKLSAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgp
KSB7Ci0gICAgICAgIGxlZnRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZh
bHVlKGxlZnRDaGlsZC0+YXNKU1ZhbHVlKCksIGxlZnRSZWdzKTsKLSAgICB9IGVsc2UgaWYgKHJp
Z2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKLSAgICAgICAgcmlnaHRSZWdzID0gcmVzdWx0UmVnczsK
LSAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgpLCByaWdodFJl
Z3MpOwotICAgIH0KKyAgICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDQ+IHNh
dmVQbGFuczsKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZl
UGxhbnMsIHJlc3VsdFJlZ3MpOwogCi0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgICAgIGF1dG8gZG9uZSA9
IG1faml0LmxhYmVsKCk7CiAKLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OwotICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKFs9XSAoKSB7CisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0
aEp1bXBzLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5t
X3Nsb3dQYXRoU3RhcnQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAgICBhdXRvIHNsb3dT
dGFydCA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgIHNpbGVudFNwaWxsKHNhdmVQbGFu
cyk7CisKKyAgICAgICAgICAgIGF1dG8gaW5uZXJMZWZ0UmVncyA9IGxlZnRSZWdzOworICAgICAg
ICAgICAgYXV0byBpbm5lclJpZ2h0UmVncyA9IHJpZ2h0UmVnczsKKyAgICAgICAgICAgIGlmIChs
ZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lckxlZnRSZWdzID0g
cmVzdWx0UmVnczsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUobGVmdENoaWxkLT5h
c0pTVmFsdWUoKSwgaW5uZXJMZWZ0UmVncyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0
T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lclJpZ2h0UmVncyA9IHJl
c3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0Q2hpbGQtPmFz
SlNWYWx1ZSgpLCBpbm5lclJpZ2h0UmVncyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zaG91bGRTbG93UGF0aFJlcGF0Y2gpCisgICAg
ICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCByZXN1bHRSZWdzLCBpbm5lckxlZnRS
ZWdzLCBpbm5lclJpZ2h0UmVncywgYWRkSUMpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGlubmVyTGVmdFJlZ3MsIGlubmVyUmln
aHRSZWdzKTsKKworICAgICAgICAgICAgc2lsZW50RmlsbChzYXZlUGxhbnMpOworICAgICAgICAg
ICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgIG1faml0Lmp1bXAoKS5saW5r
VG8oZG9uZSwgJm1faml0KTsKKworICAgICAgICAgICAgYXV0byBzbG93RW5kID0gbV9qaXQubGFi
ZWwoKTsKKworICAgICAgICAgICAgbV9qaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBs
aW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29kZSgq
YWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICAgICAgICAgIGFkZElD
LT5tX2NvZGVTaXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc2xvd0VuZCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc2xvd1N0YXJ0
KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAg
ICAgIGxlZnQgPSBKU1ZhbHVlT3BlcmFuZCh0aGlzLCBsZWZ0Q2hpbGQpOworICAgICAgICAgICAg
bGVmdFJlZ3MgPSBsZWZ0LT5qc1ZhbHVlUmVncygpOworICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0
T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgIHJpZ2h0ID0gSlNWYWx1ZU9wZXJhbmQo
dGhpcywgcmlnaHRDaGlsZCk7CisgICAgICAgICAgICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1
ZVJlZ3MoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJl
c3VsdFJlZ3MpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkLCByZXN1
bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRSZWdzKTsKKyAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICB9
CisKKyAgICBhdXRvIGRvbmUgPSBtX2ppdC5sYWJlbCgpOworICAgIG1faml0LmFkZExpbmtUYXNr
KFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICBhZGRJQy0+bV9jb2RlU2l6
ZSArPSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKGRvbmUpLmV4ZWN1dGFibGVBZGRyZXNz
KCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVz
cygpOworICAgIH0pOwogCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmbV9qaXQpOwogICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0dXJuOwogfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNp
b24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjg1LDYgKzEyODUsMTMgQEAgcHVibGljOgogCiAKICNp
ZiBVU0UoSlNWQUxVRTY0KQorCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpKYWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1Zh
bHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBKSVRBZGRJQyogYWRkSUMpCisgICAgewor
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJn
Mi5ncHIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5ncHIoKSk7CisgICAgfQorCiAgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwg
R1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIodWlkKSk7CkBAIC0xNzAyLDYgKzE3MDksMTIgQEAg
cHVibGljOgogICAgIH0KICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKKyAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9u
LCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIs
IEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50
YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIFRydXN0ZWRJbW1QdHIo
YWRkSUMpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBy
ZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BSKCkpOworICAgIH0KKwogICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSSBvcGVyYXRpb24s
IEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywg
R1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFn
LCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cih1aWQpKTsKQEAgLTI4MzAsOSAr
Mjg0MywxNCBAQCBwdWJsaWM6CiAgICAgTWluaWZpZWRHcmFwaCogbV9taW5pZmllZEdyYXBoOwog
ICAgIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+LCA4PiBt
X3Nsb3dQYXRoR2VuZXJhdG9yczsKLSAgICBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiwgTm9kZSo+LCA4PiBtX3Nsb3dQYXRoTGFtYmRhczsKKyAgICBzdHJ1Y3QgU2xvd1Bh
dGhMYW1iZGEgeworICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbV9nZW5lcmF0b3I7Cisg
ICAgICAgIE5vZGUqIG1fY3VycmVudE5vZGU7CisgICAgICAgIHVuc2lnbmVkIG1fc3RyZWFtSW5k
ZXg7CisgICAgfTsKKyAgICBWZWN0b3I8U2xvd1BhdGhMYW1iZGE+IG1fc2xvd1BhdGhMYW1iZGFz
OwogICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBtX3BsYW5zOwotICAgIHVuc2ln
bmVkIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggeyBVSU5UX01BWCB9OworICAgIE9wdGlvbmFsPHVu
c2lnbmVkPiBtX291dE9mTGluZVN0cmVhbUluZGV4OwogfTsKIAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJGVExUaHVua3MuaCIKICNpbmNs
dWRlICJGVExXZWlnaHRlZFRhcmdldC5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgor
I2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVyYXRvci5oIgog
I2luY2x1ZGUgIkpJVEJpdE9yR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0WG9yR2VuZXJh
dG9yLmgiCkBAIC0xNTI4LDcgKzE1MjksNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29t
cGlsZVZhbHVlQWRkKCkKICAgICB7Ci0gICAgICAgIGVtaXRCaW5hcnlTbmlwcGV0PEpJVEFkZEdl
bmVyYXRvcj4ob3BlcmF0aW9uVmFsdWVBZGQpOworICAgICAgICBlbWl0QWRkU25pcHBldCgpOwog
ICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQpAQCAtODA1OCw2ICs4MDU5LDg2
IEBAIHByaXZhdGU6CiAgICAgICAgIHNldEpTVmFsdWUocGF0Y2hwb2ludCk7CiAgICAgfQogCisg
ICAgdm9pZCBlbWl0QWRkU25pcHBldCgpCisgICAgeworICAgICAgICBOb2RlKiBub2RlID0gbV9u
b2RlOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDIo
KSk7CisKKyAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQobV9zdGF0ZS5mb3JOb2Rl
KG5vZGUtPmNoaWxkMSgpKS5yZXN1bHRUeXBlKCkpOworICAgICAgICBTbmlwcGV0T3BlcmFuZCBy
aWdodE9wZXJhbmQobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS5yZXN1bHRUeXBlKCkp
OworICAgICAgICAgICAgCisgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1f
b3V0LnBhdGNocG9pbnQoSW50NjQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVn
aXN0ZXIobGVmdCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihyaWdo
dCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRl
UmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBl
bmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+
IGV4Y2VwdGlvbkhhbmRsZSA9CisgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2Vw
dGlvbnMocGF0Y2hwb2ludCk7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lz
dGVycyA9IDE7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IDI7
CisgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJl
Z2lzdGVycygpKTsKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAg
IHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAg
ICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQp
OworCisgICAgICAgICAgICAgICAgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlv
bnMgPQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENy
ZWF0aW9uKHBhcmFtcyktPmp1bXBzKGppdCk7CisKKyAgICAgICAgICAgICAgICBKSVRBZGRJQyog
YWRkSUMgPSBqaXQuY29kZUJsb2NrKCktPmFkZEpJVEFkZElDKCk7CisgICAgICAgICAgICAgICAg
Qm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT4gYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBCb3g8TWF0
aElDR2VuZXJhdGlvblN0YXRlPjo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgQXJpdGhQcm9m
aWxlKiBhcml0aFByb2ZpbGUgPSBzdGF0ZS0+Z3JhcGguYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKS0+YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGFkZElDLT5t
X2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCBK
U1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAorICAgICAgICAgICAgICAgICAgICBKU1ZhbHVl
UmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVncyhwYXJhbXNbMl0uZ3ByKCkpLCBwYXJh
bXMuZnBTY3JhdGNoKDApLAorICAgICAgICAgICAgICAgICAgICBwYXJhbXMuZnBTY3JhdGNoKDEp
LCBwYXJhbXMuZ3BTY3JhdGNoKDApLCBJbnZhbGlkRlBSUmVnLCBhcml0aFByb2ZpbGUpOworCisg
ICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IGppdC5sYWJlbCgpOworICAgICAgICAgICAgICAg
IGJvb2wgZ2VuZXJhdGVkSW5saW5lID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKGppdCwgKmFkZElD
R2VuZXJhdGlvblN0YXRlKTsKKworICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRJbmxpbmUp
IHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9z
bG93UGF0aEp1bXBzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGRvbmUgPSBq
aXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExhdGVQYXRoKFs9XSAo
Q0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMubGluaygmaml0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRo
U3RhcnQgPSBqaXQubGFiZWwoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFy
dCA9IGppdC5sYWJlbCgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkSUNHZW5l
cmF0aW9uU3RhdGUtPm1fc2hvdWxkU2xvd1BhdGhSZXBhdGNoKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2xvd1BhdGhDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKCpzdGF0ZSwgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGljLCBl
eGNlcHRpb25zLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRp
b25WYWx1ZUFkZE9wdGltaXplLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwgcGFy
YW1zWzJdLmdwcigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aENh
bGwgPSBjYWxsLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2xvd1BhdGhDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9u
KCpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2lu
LnNlbWFudGljLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmdl
dCgpLCBvcGVyYXRpb25WYWx1ZUFkZCwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCks
IHBhcmFtc1syXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUNHZW5l
cmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhk
b25lLCAmaml0KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSBqaXQubGFi
ZWwoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlu
a0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElD
LT5maW5hbGl6ZUlubGluZUNvZGUoKmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQy0+bV9jb2RlU2l6ZSArPSAoY2hhciop
bGlua0J1ZmZlci5sb2NhdGlvbk9mKGVuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKils
aW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAg
ICAgICAgICAgICAgICAgICAgICpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
IGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGNlcHRpb25zLmdldCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgb3BlcmF0aW9uVmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1z
WzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBhdXRvIGVuZCA9IGppdC5sYWJlbCgpOworICAgICAgICAgICAgICAgIGppdC5hZGRM
aW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgYWRkSUMtPm1fY29kZVNpemUgKz0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihlbmQp
LmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXJ0
KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKKyAgICB9CisKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBCaW5hcnlCaXRPcEdlbmVyYXRvcj4KICAgICB2b2lkIGVtaXRCaW5hcnlC
aXRPcFNuaXBwZXQoSl9KSVRPcGVyYXRpb25fRUpKIHNsb3dQYXRoRnVuY3Rpb24pCiAgICAgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAy
MDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MjYsNiArODI2LDE4IEBAIHB1YmxpYzoKICAgICAgICAgYWRkQ2FsbEFy
Z3VtZW50KGFyZzYpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywg
R1BSUmVnIGFyZzQsIFRydXN0ZWRJbW1QdHIgYXJnNSwgVHJ1c3RlZEltbVB0ciBhcmc2KQorICAg
IHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVu
dChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChh
cmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAgICAgICBhZGRDYWxsQXJn
dW1lbnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0KTsKKyAgICAgICAgYWRk
Q2FsbEFyZ3VtZW50KGFyZzUpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnNik7CisgICAg
fQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShH
UFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVn
IGFyZzUsIEdQUlJlZyBhcmc2LCBUcnVzdGVkSW1tUHRyIGFyZzcpCiAgICAgewogICAgICAgICBy
ZXNldENhbGxBcmd1bWVudHMoKTsKQEAgLTIwOTksNiArMjExMSwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMywgVHJ1
c3RlZEltbVB0ciBhcmc0KQorICAgIHsKKyAgICAgICAgc2V0dXBUd29TdHViQXJnc0dQUjxHUFJJ
bmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMj4oYXJnMSwgYXJnMik7Cisg
ICAgICAgIG1vdmUoYXJnMywgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKKyAgICAgICAgbW92ZShh
cmc0LCBHUFJJbmZvOjphcmd1bWVudEdQUjQpOworICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIH0KKwogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIFRy
dXN0ZWRJbW1QdHIgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcg
YXJnNSkKICAgICB7CiAgICAgICAgIHNldHVwVGhyZWVTdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1
bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSNCwgR1BSSW5mbzo6YXJndW1lbnRHUFI1Pihh
cmcxLCBhcmc0LCBhcmc1KTsKQEAgLTIyMDcsNiArMjIyNywxNSBAQCBwdWJsaWM6CiAgICAgfQog
I2VuZGlmCiAgICAgCisgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1
ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMikKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFyZzIuZ3By
KCkpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJC
SVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxv
YWRHUFIoKSwgYXJnMi50YWdHUFIoKSk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcy
LCBUcnVzdGVkSW1tUHRyIGFyZzMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yMjE1
LDYgKzIyNDQsMTUgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCks
IGFyZzIucGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBhcmczKTsKICNlbmRpZgogICAgIH0K
KworICAgIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEs
IEpTVmFsdWVSZWdzIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0
KQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwgYXJnMywgYXJnNCk7CisjZWxzZQorICAg
ICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJn
MS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpLCBhcmcyLnRh
Z0dQUigpLCBhcmczLCBhcmc0KTsKKyNlbmRpZgorICAgIH0KICAgICAKICAgICB2b2lkIHNldHVw
QXJndW1lbnRzKEpTVmFsdWVSZWdzIGFyZzEpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMiArNDEsMTIgQEAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKICNpbmNsdWRlICJDb21wYWN0SklUQ29kZU1hcC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklURGlzYXNzZW1ibGVy
LmgiCiAjaW5jbHVkZSAiSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKU0lu
dGVyZmFjZUpJVC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBDVG9Db2RlT3Jp
Z2luTWFwLmgiCi0jaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlVudXNlZFBvaW50
ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MzUsNyArNDM1LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZvaWQgY29tcGlsZUdldEJ5SWRIb3RQYXRoKGNvbnN0IElkZW50aWZpZXIq
KTsKIAogICAgICAgICAvLyBBcml0aG1ldGljIG9wY29kZSBoZWxwZXJzCi0gICAgICAgIHZvaWQg
ZW1pdFN1YjMyQ29uc3RhbnQoaW50IGRzdCwgaW50IG9wLCBpbnQzMl90IGNvbnN0YW50LCBSZXN1
bHRUeXBlIG9wVHlwZSk7CiAgICAgICAgIHZvaWQgZW1pdEJpbmFyeURvdWJsZU9wKE9wY29kZUlE
LCBpbnQgZHN0LCBpbnQgb3AxLCBpbnQgb3AyLCBPcGVyYW5kVHlwZXMsIEp1bXBMaXN0JiBub3RJ
bnQzMk9wMSwgSnVtcExpc3QmIG5vdEludDMyT3AyLCBib29sIG9wMUlzSW5SZWdpc3RlcnMgPSB0
cnVlLCBib29sIG9wMklzSW5SZWdpc3RlcnMgPSB0cnVlKTsKIAogI2Vsc2UgLy8gVVNFKEpTVkFM
VUUzMl82NCkKQEAgLTc2Myw3ICs3NjIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkksIGludCwgR1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcs
IEdQUlJlZyk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3Ms
IFJlc3VsdFByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1Zh
bHVlUmVncywgQXJpdGhQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3Ms
IEpTVmFsdWVSZWdzKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpScEphaWMsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNW
YWx1ZVJlZ3MsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKik7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSmFpYywgSlNWYWx1ZVJl
Z3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSklUQWRkSUMqKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBH
UFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJS
ZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOwpAQCAtOTUz
LDYgKzk1NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFBDVG9Db2RlT3JpZ2luTWFw
QnVpbGRlciBtX3BjVG9Db2RlT3JpZ2luTWFwQnVpbGRlcjsKIAorICAgICAgICBIYXNoTWFwPElu
c3RydWN0aW9uKiwgSklUQWRkSUMqPiBtX2luc3RydWN0aW9uVG9KSVRBZGRJQzsKKyAgICAgICAg
SGFzaE1hcDxJbnN0cnVjdGlvbiosIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT4gbV9pbnN0cnVjdGlv
blRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGU7CisKICAgICAgICAgYm9vbCBtX2NhbkJlT3B0aW1p
emVkOwogICAgICAgICBib29sIG1fY2FuQmVPcHRpbWl6ZWRPcklubGluZWQ7CiAgICAgICAgIGJv
b2wgbV9zaG91bGRFbWl0UHJvZmlsaW5nOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRBZGRHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwxMSArMjYsNjYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5l
cmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorI2luY2x1ZGUgIkpJVE1hdGhJ
Qy5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKwogI2lmIEVOQUJMRShKSVQpCiAKIG5hbWVz
cGFjZSBKU0MgewogCi12b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmIGppdCkKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5o
PgorYm9vbCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYgaml0
LCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQoreworICAgIC8vIFdlIGRlZmF1bHQgdG8g
Z3Vlc3NpbmcgaW50MzIKKyAgICBPYnNlcnZlZFR5cGUgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0
aEludDMyKCk7CisgICAgT2JzZXJ2ZWRUeXBlIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQz
MigpOworICAgIHN0YXRpYyBkb3VibGUgbnVtSUNzID0gMDsKKyAgICBzdGF0aWMgZG91YmxlIG51
bUludHMgPSAwOworICAgIG51bUlDcysrOworICAgIGlmIChtX2FyaXRoUHJvZmlsZSkgeworICAg
ICAgICBsaHMgPSBtX2FyaXRoUHJvZmlsZS0+bGhzT2JzZXJ2ZWRUeXBlKCk7CisgICAgICAgIHJo
cyA9IG1fYXJpdGhQcm9maWxlLT5yaHNPYnNlcnZlZFR5cGUoKTsKKyAgICAgICAgaWYgKGxocy5p
c0VtcHR5KCkgfHwgcmhzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgbGhzID0gT2JzZXJ2ZWRU
eXBlKCkud2l0aEludDMyKCk7CisgICAgICAgICAgICByaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRo
SW50MzIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChsaHMuaXNPbmx5Tm9uTnVtYmVy
KCkgJiYgcmhzLmlzT25seU5vbk51bWJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoKGxocy5pc09ubHlJbnQzMigpIHx8IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkp
ICYmIChyaHMuaXNPbmx5SW50MzIoKSB8fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkp
IHsKKyAgICAgICAgc3RhdGUubV9zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSB0cnVlOworCisgICAg
ICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJh
bmQuaXNDb25zdEludDMyKCkpOworICAgICAgICBpZiAoIW1fbGVmdE9wZXJhbmQuaXNDb25zdElu
dDMyKCkpCisgICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFu
Y2hJZk5vdEludDMyKG1fbGVmdCkpOworICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmlzQ29u
c3RJbnQzMigpKQorICAgICAgICAgICAgc3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQu
YnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KSk7CisKKyAgICAgICAgaWYgKG1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgfHwgbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKKyAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHZhciA9IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgPyBt
X3JpZ2h0IDogbV9sZWZ0OworICAgICAgICAgICAgaW50MzJfdCBjb25zdFZhbHVlID0gbV9sZWZ0
T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fbGVmdE9wZXJhbmQuYXNDb25zdEludDMyKCkgOiBt
X3JpZ2h0T3BlcmFuZC5hc0NvbnN0SW50MzIoKTsKKyAgICAgICAgICAgIHN0YXRlLm1fc2xvd1Bh
dGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZh
ci5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RWYWx1ZSksIG1fc2NyYXRj
aEdQUikpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1w
cy5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQu
cGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAg
ICAgaml0LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOworICAgICAgICBudW1JbnRz
Kys7CisgICAgICAgIC8vZGF0YUxvZygiSUMgYXMgaW50IHBlcmNlbnRhZ2U6ICIsIG51bUludHMv
bnVtSUNzLCAiXG4iKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3RhdGUu
bV9zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSBmYWxzZTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3QgZW5kSnVtcExpc3Q7CisgICAgYm9vbCByZXN1bHQgPSBnZW5lcmF0ZUZhc3RQYXRoKGpp
dCwgZW5kSnVtcExpc3QsIHN0YXRlLm1fc2xvd1BhdGhKdW1wcyk7CisgICAgaWYgKHJlc3VsdCkK
KyAgICAgICAgZW5kSnVtcExpc3QubGluaygmaml0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Citib29sIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGpp
dCwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVt
cExpc3QmIHNsb3dQYXRoSnVtcExpc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQUiAhPSBJ
bnZhbGlkR1BSUmVnKTsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IG1fbGVmdC5wYXlsb2Fk
R1BSKCkpOwpAQCAtNDMsMTIgKzk4LDggQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoQwogCiAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8
ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgCi0gICAgaWYgKCFtX2xlZnRP
cGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWlnaHRCZU51bWJlcigp
KSB7Ci0gICAgICAgIEFTU0VSVCghbV9kaWRFbWl0RmFzdFBhdGgpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgbV9kaWRFbWl0RmFzdFBhdGggPSB0cnVlOworICAgIGlmICghbV9sZWZ0
T3BlcmFuZC5taWdodEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25z
dEludDMyKCkgfHwgbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKICAgICAgICAgSlNW
YWx1ZVJlZ3MgdmFyID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmlnaHQgOiBt
X2xlZnQ7CkBAIC01OCwyMCArMTA5LDIwIEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKEMKICAgICAgICAgLy8gVHJ5IHRvIGRvIGludFZhciArIGludENvbnN0YW50Lgog
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQz
Mih2YXIpOwogCi0gICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFk
ZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZhci5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVy
czo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMyKCkpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAg
ICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6
T3ZlcmZsb3csIHZhci5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RPcHIu
YXNDb25zdEludDMyKCkpLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQuYm94SW50MzIo
bV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Ci0gICAgICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKGpp
dC5qdW1wKCkpOworICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAg
ICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKLSAgICAgICAgICAgIG1f
c2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobm90SW50MzIpOwotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobm90SW50MzIpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBUcnkgdG8gZG8gZG91Ymxl
VmFyICsgZG91YmxlKGludENvbnN0YW50KS4KICAgICAgICAgbm90SW50MzIubGluaygmaml0KTsK
ICAgICAgICAgaWYgKCF2YXJPcHIuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBt
X3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcih2YXIsIG1fc2Ny
YXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5j
aElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LnVuYm94RG91
YmxlTm9uRGVzdHJ1Y3RpdmUodmFyLCBtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUiwgbV9zY3JhdGNo
RlBSKTsKIApAQCAtODksMjIgKzE0MCwyNCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChDCiAgICAgICAgIGxlZnROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMiht
X2xlZnQpOwogICAgICAgICByaWdodE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmln
aHQpOwogCi0gICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMy
KENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5
bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKworICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFw
cGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXls
b2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAg
IGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1w
TGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CisgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQu
anVtcCgpKTsKKwogCiAgICAgICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7
Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGxlZnROb3RJbnQpOwotICAg
ICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7Ci0gICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90
SW50KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgbGVmdE5vdElu
dC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1fbGVmdE9wZXJhbmQuZGVmaW5pdGVseUlzTnVt
YmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhK
dW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BS
KSk7CiAgICAgICAgIGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0g
ICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJl
cihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3Qu
YXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKIAog
ICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xlZnQsIG1fbGVmdEZQUiwg
bV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
cmlnaHRJc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwpAQCAtMTE0LDcg
KzE2Nyw3IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAg
ICAgICByaWdodE5vdEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5k
LmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFw
cGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CisgICAg
ICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9y
aWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91Ymxl
KG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fbGVmdEZQUik7CiAKQEAgLTEyOCwxMCArMTgxLDEyIEBA
IHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRv
dWJsZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQuYWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVm
dEZQUik7Ci0gICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgbV9yZXN1bHRQcm9maWxl
LT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQorICAgICAgICBt
X2FyaXRoUHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOwogICAgICAgICAKICAgICBqaXQuYm94
RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRH
ZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFk
ZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMjIgQEAK
ICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAi
SklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlvblN0YXRlOworCiBjbGFzcyBKSVRBZGRH
ZW5lcmF0b3IgewogcHVibGljOgorICAgIEpJVEFkZEdlbmVyYXRvcigpCisgICAgeyB9CisKICAg
ICBKSVRBZGRHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVy
YW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVn
cyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJl
ZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQ
cm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQo
bGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAg
ICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDE2ICs1NCwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRj
aEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAgLCBtX3Jl
c3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmlsZShhcml0
aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25zdElu
dDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICB9CiAKLSAgICB2
b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7Ci0KLSAgICBib29sIGRpZEVtaXRG
YXN0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRW1pdEZhc3RQYXRoOyB9Ci0gICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QoKSB7IHJldHVybiBtX2VuZEp1bXBMaXN0OyB9
Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCgpIHsgcmV0dXJu
IG1fc2xvd1BhdGhKdW1wTGlzdDsgfQorICAgIGJvb2wgZ2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxw
ZXJzJiwgTWF0aElDR2VuZXJhdGlvblN0YXRlJik7CisgICAgYm9vbCBnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIGVuZEp1bXBMaXN0LCBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93UGF0aEp1bXBMaXN0KTsKIAogcHJpdmF0ZToKICAgICBT
bmlwcGV0T3BlcmFuZCBtX2xlZnRPcGVyYW5kOwpAQCAtNjksMTEgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQ
UlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOwot
ICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwotCi0gICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9z
bG93UGF0aEp1bXBMaXN0OworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QXJpdGhtZXRpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRBcml0aG1ldGljLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogI2lmIEVOQUJMRShKSVQpCiAjaW5jbHVkZSAiSklULmgiCiAKKyNpbmNsdWRlICJBcml0aFBy
b2ZpbGUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIK
ICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJKSVRCaXRPckdlbmVyYXRvci5oIgpAQCAtNDgsNiArNTAsNyBAQAog
I2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKIAorI2lu
Y2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTY3NSwyMCArNjc4
LDI2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF91cnNoaWZ0KEluc3RydWN0aW8KICAgICBzbG93
UGF0aENhbGwuY2FsbCgpOwogfQogCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBPcGVyYW5kVHlwZXMg
Z2V0T3BlcmFuZFR5cGVzKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKK3sKKyAgICByZXR1cm4g
T3BlcmFuZFR5cGVzKEFyaXRoUHJvZmlsZTo6ZnJvbUludChpbnN0cnVjdGlvbls0XS51Lm9wZXJh
bmQpLmxoc1Jlc3VsdFR5cGUoKSwgQXJpdGhQcm9maWxlOjpmcm9tSW50KGluc3RydWN0aW9uWzRd
LnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfYWRk
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IHJlc3VsdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9t
SW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1
Y3Rpb24oY3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBK
U1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJl
Z3MocmVnVDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICAgICBH
UFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QyOwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxp
ZEZQUlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVz
KGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdz
OwpAQCAtNjk2LDkgKzcwNSw5IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAotICAgIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQot
ICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUo
bV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+
YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVy
YW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC03MTAsNTIgKzcxOSw1OCBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAKICAgICBSRUxFQVNFX0FTU0VSVCghbGVm
dE9wZXJhbmQuaXNDb25zdCgpIHx8ICFyaWdodE9wZXJhbmQuaXNDb25zdCgpKTsKIAorICAgIGF1
dG8gc3RhcnQgPSBsYWJlbCgpOworCiAgICAgaWYgKCFsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCiAg
ICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgaWYgKCFy
aWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MiwgcmlnaHRSZWdzKTsKIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJp
Z2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBS
ZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7Cisg
ICAgSklUQWRkSUMqIGFkZElDID0gbV9jb2RlQmxvY2stPmFkZEpJVEFkZElDKCk7CiAKLSAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisgICAgbV9pbnN0cnVjdGlvblRvSklUQWRkSUMu
YWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUMpOworICAgIE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRp
b25TdGF0ZS5hZGQoY3VycmVudEluc3RydWN0aW9uLCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUoKSku
aXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSkgewotICAg
ICAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5rKHRoaXMpOwotICAgICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7Ci0gICAgICAgIAotICAgICAgICBhZGRTbG93
Q2FzZShnZW4uc2xvd1BhdGhKdW1wTGlzdCgpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NF
UlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEFTU0VSVChnZW4uc2xvd1Bh
dGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgewotICAg
ICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgICAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwotICAgICAgICAgICAgaWYgKHJpZ2h0
T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFBy
b2ZpbGUpOwotICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3Vs
dFJlZ3MpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAg
ICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBhZGRJ
Qy0+bV9nZW5lcmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFu
ZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgZnBSZWdUMCwgZnBSZWdUMSwgc2Ny
YXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKKworICAgIGJvb2wgZ2VuZXJhdGVk
SW5saW5lQ29kZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZSgqdGhpcywgYWRkSUNHZW5lcmF0aW9u
U3RhdGUpOworICAgIGlmICghZ2VuZXJhdGVkSW5saW5lQ29kZSkgeworICAgICAgICBpZiAobGVm
dE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihv
cDEsIGxlZnRSZWdzKTsKKyAgICAgICAgZWxzZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkK
KyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworCisg
ICAgICAgIGlmIChhcml0aFByb2ZpbGUpCisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGFy
aXRoUHJvZmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MpOworICAgIH0g
ZWxzZQorICAgICAgICBhZGRTbG93Q2FzZShhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRo
SnVtcHMpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsK
KyAgICBhdXRvIGVuZCA9IGxhYmVsKCk7CisgICAgYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVy
JiBsaW5rQnVmZmVyKSB7CisgICAgICAgIGFkZElDLT5tX2NvZGVTaXplICs9IChjaGFyKilsaW5r
QnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVjdXRhYmxlQWRkcmVzcygpIC0gKGNoYXIqKWxpbmtC
dWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9KTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGxpbmtB
bGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29k
ZU9mZnNldCk7CiAKKyAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2VuZXJhdGlvblN0
YXRlID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuZmluZChjdXJyZW50
SW5zdHJ1Y3Rpb24pLT52YWx1ZTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRo
U3RhcnQgPSBsYWJlbCgpOworCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAg
T3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlw
ZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3Ry
dWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7
CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVz
IHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVS
ZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtNzY5LDE4ICs3ODQsMzAgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogYwogICAgIGVsc2UgaWYgKGlzT3BlcmFuZENv
bnN0YW50SW50KG9wMikpCiAgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9w
ZXJhbmRDb25zdGFudEludChvcDIpKTsKIAorICAgIGF1dG8gc3RhcnQgPSBsYWJlbCgpOworCisg
ICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAg
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworCisgICAgSklUQWRk
SUMqIGFkZElDID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUMuZ2V0KGN1cnJlbnRJbnN0cnVjdGlv
bik7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewotICAgICAgICBpZiAobGVmdE9w
ZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEs
IGxlZnRSZWdzKTsKLSAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAg
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAgICAgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9m
aWxlKG1fYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFBy
b2ZpbGUpOwotICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVn
cyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0
aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICBzbG93UGF0
aENhbGwuY2FsbCgpOwotICAgIH0KKyAgICAgICAgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUg
PSBtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKKyAg
ICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLm1fc2hvdWxkU2xvd1BhdGhSZXBhdGNoKQor
ICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aENhbGwgPSBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZSwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncywgJmFyaXRoUHJvZmlsZSwgYWRkSUMpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJp
Z2h0UmVncywgJmFyaXRoUHJvZmlsZSk7CisgICAgfSBlbHNlCisgICAgICAgIGFkZElDR2VuZXJh
dGlvblN0YXRlLm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBhZGRJQyk7CisgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIGF1dG8gZW5k
ID0gbGFiZWwoKTsKKworICAgIGFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZl
cikgeworICAgICAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2VuZXJhdGlvblN0YXRl
ID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuZmluZChjdXJyZW50SW5z
dHJ1Y3Rpb24pLT52YWx1ZTsKKyAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29kZShhZGRJ
Q0dlbmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgIGFkZElDLT5tX2NvZGVTaXpl
ICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVjdXRhYmxlQWRkcmVzcygp
IC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKKyAgICB9KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCkBAIC03ODgsMTQgKzgxNSwxNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9k
aXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0g
ICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5k
VHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudElu
c3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICAgICBHUFJSZWcgc2NyYXRjaEdQ
UiA9IHJlZ1QyOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlw
ZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJl
Z3M7CkBAIC04MDMsOSArODMxLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9u
KiBjdXJyZQogI2VuZGlmCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogCi0gICAg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkp
Ci0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmls
ZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2Nr
LT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9w
ZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmln
aHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTgzMSw3ICs4NTksNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklURGl2R2VuZXJhdG9yIGdlbihsZWZ0T3Bl
cmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAg
ICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9m
aWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwg
YXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAt
ODYxLDE1ICs4ODksMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJy
ZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAg
IGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBl
cyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3Bl
cmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpT
VmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDIpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gcmVnVDM7
CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOwogI2Vsc2UKKyAgICBPcGVy
YW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAg
ICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAg
SlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC04NzcsOSArOTA2LDkgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJlZyBzY3JhdGNo
RlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmls
ZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwog
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBt
X2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAg
ICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50
SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmly
c3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsK
QEAgLTg5Nyw3ICs5MjYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAg
ICAgSklUTXVsR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRS
ZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBS
ZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAtOTA5LDEyICs5MzgsMTIgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFT
U0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAgICAgICAgQVNTRVJUKGdlbi5zbG93
UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7Cisg
ICAgICAgIGlmIChhcml0aFByb2ZpbGUpIHsKICAgICAgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5p
c1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9z
aXRpdmVDb25zdEludDMyKCkpCiAgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFBy
b2ZpbGUpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2Zp
bGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBhcml0aFByb2ZpbGUpOwogICAg
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0
aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwpAQCAtOTMwLDEzICs5NTks
MTQgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNv
cGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxl
ZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJl
Z3M7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJy
ZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhy
ZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAg
LTk1NSw4ICs5ODUsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBj
CiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwogICAg
ICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAgICAgICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAgICAgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxl
KG1fYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVl
TXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2Zp
bGUpOworICAgICAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5h
cml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdo
dFJlZ3MsICZhcml0aFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJl
c3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxs
IHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwpA
QCAtOTY5LDE1ICs5OTksMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBj
dXJyZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwog
ICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBv
cDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0
eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVy
YW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0
T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAg
IEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVS
ZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1
bHRSZWdzID0gbGVmdFJlZ3M7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsKICAgICBG
UFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRGUFJSZWc7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBl
cyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFs
dWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVl
UmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTk4NSw5ICsxMDE2LDkgQEAgdm9pZCBKSVQ6
OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0g
ZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51
bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlm
IChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJp
dGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1
Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7
CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTk5
Niw3ICsxMDI3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklUU3Vi
R2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0
UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBz
Y3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2Ny
YXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKIApAQCAtMTAyMyw4ICsxMDU0LDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX3N1YihJbnN0cnVjdGlvbiogYwogI2VuZGlmCiAKICAgICBpZiAoc2hvdWxkRW1pdFByb2Zp
bGluZygpKSB7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgQXJpdGhQcm9maWxlJiBhcml0
aFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0
aW9uKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxlKTsKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfc3ViKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklURGl2R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5o
IgogCkBAIC0xMjgsOCArMTI5LDggQEAgdm9pZCBKSVREaXZHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoQwogCiAgICAgbm90RG91YmxlWmVyby5saW5rKCZqaXQpOwogI2VuZGlmCi0gICAgaWYg
KG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgaml0LmFkZDMyKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUt
PmFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkpKTsKKyAgICBpZiAobV9hcml0aFByb2Zp
bGUpCisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJv
ZmlsZTo6c3BlY2lhbEZhc3RQYXRoQml0KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
bV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAgIGppdC5ib3hEb3VibGUobV9s
ZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklURGl2R2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVREaXZHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NyBAQCBwdWJsaWM6CiAgICAgSklURGl2R2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVy
YW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJl
c3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQUlJl
ZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2Ny
YXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIp
CisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAg
OiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJp
Z2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0OCw3IEBA
IHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2Ny
YXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQot
ICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAsIG1fYXJp
dGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3Bl
cmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwog
ICAgIH0KQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsK
ICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAg
UmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0
aFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw5ICs0MTYs
MzMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLWlubGluZSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
UnAgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFs
dWVSZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
Skogb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFs
dWVSZWdzIGFyZzIpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzIsIFRydXN0ZWRJbW1QdHIocmVzdWx0UHJvZmlsZSkpOworICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAg
cmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlvbiwgSlNWYWx1ZVJl
Z3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcml0aFByb2ZpbGUpKTsKKyAgICBDYWxsIGNhbGwgPSBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRz
KHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwSmFpYyBv
cGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJl
Z3MgYXJnMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKK3sK
KyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0
cihhcml0aFByb2ZpbGUpLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgQ2FsbCBjYWxsID0g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVzdWx0
cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9w
ZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVn
cyBhcmcyLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKICAgICBDYWxsIGNhbGwgPSBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgc2V0dXBSZXN1bHRz
KHJlc3VsdCk7CiAgICAgcmV0dXJuIGNhbGw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE1hdGhJQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUTWF0aElDLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE1hdGhJQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKSVRBZGRJQ19oCisjZGVm
aW5lIEpJVEFkZElDX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBl
cnMuaCIKKyNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVy
LmgiCisjaW5jbHVkZSAiUmVwYXRjaC5oIgorI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCisK
K25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBMaW5rQnVmZmVyOworCitzdHJ1Y3QgTWF0aElDR2Vu
ZXJhdGlvblN0YXRlIHsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9mYXN0UGF0aFN0YXJ0
OworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Zhc3RQYXRoRW5kOworICAgIE1hY3JvQXNz
ZW1ibGVyOjpMYWJlbCBtX3Nsb3dQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
bV9zbG93UGF0aENhbGw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IG1fc2xvd1BhdGhK
dW1wczsKKyAgICBib29sIG1fc2hvdWxkU2xvd1BhdGhSZXBhdGNoOworfTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIEdlbmVyYXRvclR5cGU+CitjbGFzcyBKSVRNYXRoSUMgeworcHVibGljOgorICAg
IENvZGVMb2NhdGlvbkxhYmVsIGRvbmVMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQu
bGFiZWxBdE9mZnNldChtX2lubGluZVNpemUpOyB9CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xv
d1BhdGhTdGFydExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0
KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQpOyB9CisgICAgQ29kZUxvY2F0aW9uQ2Fs
bCBzbG93UGF0aENhbGxMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQuY2FsbEF0T2Zm
c2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uKTsgfQorCisgICAgYm9v
bCBnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmIGppdCwgTWF0aElDR2VuZXJhdGlvblN0YXRl
JiBzdGF0ZSkKKyAgICB7CisgICAgICAgIHN0YXRlLm1fZmFzdFBhdGhTdGFydCA9IGppdC5sYWJl
bCgpOworICAgICAgICBib29sIHJlc3VsdCA9IG1fZ2VuZXJhdG9yLmdlbmVyYXRlSW5saW5lKGpp
dCwgc3RhdGUpOworICAgICAgICBzdGF0ZS5tX2Zhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgdm9pZCBnZW5lcmF0ZU91dE9mTGlu
ZShWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBGdW5jdGlvblB0ciBjYWxsUmVwbGFjZW1l
bnQpCisgICAgeworICAgICAgICAvLyBXZSByZXdpcmUgdG8gdGhlIGFsdGVybmF0ZSByZWdhcmRs
ZXNzIG9mIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBhbGxvY2F0ZSB0aGUgb3V0IG9mIGxpbmUgcGF0
aAorICAgICAgICAvLyBiZWNhdXNlIGlmIHdlIGZhaWwgYWxsb2NhdGluZyB0aGUgb3V0IG9mIGxp
bmUgcGF0aCwgd2UgZG9uJ3Qgd2FudCB0byB0cnkgdG8gYWxsb2NhdGUgaXQKKyAgICAgICAgLy8g
YWdhaW4uIEl0J3Mgbm90IGltcG9ydGFudCBlbm91Z2ggdG8gd2FycmFudCB0aGF0LgorICAgICAg
ICB0aHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzbG93UGF0aENhbGxMb2NhdGlvbigp
LCBjYWxsUmVwbGFjZW1lbnQpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVscGVy
cyBqaXQoJnZtLCBjb2RlQmxvY2spOworCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3QgZW5kSnVtcExpc3Q7IAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0
IHNsb3dQYXRoSnVtcExpc3Q7IAorICAgICAgICAgICAgYm9vbCBlbWl0dGVkRmFzdFBhdGggPSBt
X2dlbmVyYXRvci5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgZW5kSnVtcExpc3QsIHNsb3dQYXRoSnVt
cExpc3QpOworICAgICAgICAgICAgaWYgKCFlbWl0dGVkRmFzdFBhdGgpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwor
ICAgICAgICAgICAgIAorICAgICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCBqaXQs
IGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKKyAgICAgICAgICAgIGlmIChsaW5r
QnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoZW5kSnVtcExpc3QsIGRvbmVMb2NhdGlvbigpKTsK
KyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhzbG93UGF0aEp1bXBMaXN0LCBzbG93UGF0aFN0
YXJ0TG9jYXRpb24oKSk7CisKKyAgICAgICAgICAgIG1fY29kZSA9IEZJTkFMSVpFX0NPREVfRk9S
KAorICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgbGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6IGdl
bmVyYXRpbmcgb3V0IG9mIGxpbmUgSUMgc25pcHBldCIpKTsKKyAgICAgICAgfQorCisgICAgICAg
IHsKKyAgICAgICAgICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworICAgICAg
ICAgICAgYXV0byBqdW1wID0gaml0Lmp1bXAoKTsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IG5l
ZWQgYSBub3Agc2xlZCBoZXJlIGJlY2F1c2Ugbm9ib2R5IHNob3VsZCBiZSBqdW1waW5nIGludG8g
dGhlIG1pZGRsZSBvZiBhbiBJQy4KKyAgICAgICAgICAgIGJvb2wgbmVlZHNCcmFuY2hDb21wYWN0
aW9uID0gZmFsc2U7CisgICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBtX2lu
bGluZVN0YXJ0LmRhdGFMb2NhdGlvbigpLCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNp
emUoKSwgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9uKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsKKyAgICAg
ICAgICAgIGxpbmtCdWZmZXIubGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbChtX2NvZGUuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgICAgIEZJTkFMSVpFX0NPREUobGlu
a0J1ZmZlciwgKCJKSVRNYXRoSUM6IGxpbmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2YgbGlu
ZSBqaXQgYWRkIGdlbmVyYXRvciIpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZmlu
YWxpemVJbmxpbmVDb2RlKGNvbnN0IE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIExpbmtC
dWZmZXImIGxpbmtCdWZmZXIpCisgICAgeworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzdGFy
dCA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoU3RhcnQpOworICAgICAg
ICBtX2lubGluZVN0YXJ0ID0gc3RhcnQ7CisKKyAgICAgICAgaW50MzJfdCBpbmxpbmVTaXplID0g
TWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0
YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9mYXN0UGF0aEVuZCkpOworICAgICAg
ICBBU1NFUlQoaW5saW5lU2l6ZSA+IDApOworICAgICAgICBtX2lubGluZVNpemUgPSBpbmxpbmVT
aXplOworCisgICAgICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uID0g
TWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0
YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9zbG93UGF0aENhbGwpKTsKKyAgICAg
ICAgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCA9IE1hY3JvQXNzZW1ibGVyOjpkaWZm
ZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2Nh
dGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhTdGFydCkpOworICAgIH0KKworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBtX2NvZGU7CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgbV9pbmxpbmVTdGFydDsK
KyAgICBpbnQzMl90IG1faW5saW5lU2l6ZTsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3RhcnRU
b1Nsb3dQYXRoQ2FsbExvY2F0aW9uOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xv
d1BhdGhTdGFydDsKKworICAgIHNpemVfdCBtX2NvZGVTaXplIHsgMCB9OworCisgICAgc2l6ZV90
IGNvZGVTaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NvZGVTaXplICsgbV9jb2RlLnNp
emUoKTsKKyAgICB9CisKKyAgICBHZW5lcmF0b3JUeXBlIG1fZ2VuZXJhdG9yOworfTsKKwordHlw
ZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUQWRkSUNfaApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2Fy
ZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKSVRNYXRoSUNGb3J3YXJkc19oCisj
ZGVmaW5lIEpJVE1hdGhJQ0ZvcndhcmRzX2gKKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFj
ZSBKU0MgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yPiBjbGFzcyBKSVRNYXRoSUM7
CitjbGFzcyBKSVRBZGRHZW5lcmF0b3I7CisKK3R5cGVkZWYgSklUTWF0aElDPEpJVEFkZEdlbmVy
YXRvcj4gSklUQWRkSUM7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKKworI2VuZGlmIC8vIEpJVE1hdGhJQ0ZvcndhcmRzX2gKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzM1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUg
IkFyaXRoUHJvZmlsZS5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBKSVRNdWxHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCkBAIC0xMzcsNyArMTM5LDcg
QEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIC8vIERvIGRv
dWJsZVZhciAqIGRvdWJsZVZhci4KICAgICBqaXQubXVsRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVm
dEZQUik7CiAKLSAgICBpZiAoIW1fcmVzdWx0UHJvZmlsZSkKKyAgICBpZiAoIW1fYXJpdGhQcm9m
aWxlKQogICAgICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogICAgIGVs
c2UgewogICAgICAgICAvLyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sgYmVsb3cgaW50ZW50aW9u
YWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KQEAg
LTE0OSwxOCArMTUxLDE4IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KEMKICAgICAgICAgaml0Lm1vdmVEb3VibGVUbzY0KG1fbGVmdEZQUiwgbV9yZXN1bHQucGF5bG9h
ZEdQUigpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdE5lZ2F0aXZlWmVybyA9IGpp
dC5icmFuY2g2NChDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCks
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KG5lZ2F0aXZlWmVyb0JpdHMpKTsKIAotICAgICAg
ICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOZWda
ZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxl
LT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJz
b2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0
aXZlWmVyby5saW5rKCZqaXQpOwotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAg
ICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6Tm9u
TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9m
aWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXls
b2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVs
cGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxI
ZWxwZXJzOjpJbW0zMigweDdmZiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIENDYWxsSGVscGVy
czo6SnVtcCBub0ludDUyT3ZlcmZsb3cgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpMZXNz
VGhhbk9yRXF1YWwsIG1fc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMHg0
MzEpKTsKIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
bV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRz
KCkpKTsKICAgICAgICAgbm9JbnQ1Mk92ZXJmbG93LmxpbmsoJmppdCk7CiAKICAgICAgICAgZG9u
ZS5saW5rKCZqaXQpOwpAQCAtMTcxLDE4ICsxNzMsMTggQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBub3ROZWdhdGl2ZVplcm8uYXBwZW5kKGppdC5i
cmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApKSk7CiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5h
cHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIG1fcmVzdWx0LnRhZ0dQ
UigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihuZWdhdGl2ZVplcm9CaXRzID4+IDMyKSkp
OwogCi0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFBy
b2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jl
c3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkp
OwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAg
ICAgbm90TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5vcjMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2Fs
bEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdz
KCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQ
cm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
bV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1f
cmVzdWx0LnRhZ0dQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihD
Q2FsbEhlbHBlcnM6OkltbTMyKDUyIC0gMzIpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQu
YW5kMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMigweDdmZiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBub0ludDUyT3ZlcmZsb3cgPSBqaXQuYnJhbmNoMzIoQ0NhbGxI
ZWxwZXJzOjpMZXNzVGhhbk9yRXF1YWwsIG1fc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoMHg0MzEpKTsKICAgICAgICAgCi0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBl
cnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsK
KyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxl
OjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFBy
b2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogCiAgICAgICAgIG1fZW5kSnVtcExpc3QuYXBwZW5k
KG5vSW50NTJPdmVyZmxvdyk7CiAgICAgICAgIGlmIChtX3NjcmF0Y2hHUFIgPT0gbV9yZXN1bHQu
dGFnR1BSKCkgfHwgbV9zY3JhdGNoR1BSID09IG1fcmVzdWx0LnBheWxvYWRHUFIoKSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuaAkocmV2aXNpb24g
MjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgSklUTXVsR2VuZXJh
dG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJh
bmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1
ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQ
UlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmls
ZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIpCisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQ
cm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQog
ICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3Vs
dChyZXN1bHQpCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBS
KHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAs
IG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1
bHRQcm9maWxlKQorICAgICAgICAsIG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpIHx8
ICFtX3JpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKTsKICAgICB9CkBAIC02OSw3
ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAgR1BSUmVnIG1f
c2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAgIFJlc3VsdFByb2ZpbGUq
IG1fcmVzdWx0UHJvZmlsZTsKKyAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogICAg
IGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgog
I2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5oIgpAQCAtMjI0NywxOCArMjI0OCw5MyBAQCBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0cmluZygpKTsKIH0KIAor
QUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZEFkZChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1
bXBKSVRBZGRJQ1N0YXRzKCk7CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKKyAgICAKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3Ay
KSk7Cit9CisKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkQWRk
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCit7CisgICAgVk0qIHZt
ID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7
CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBB
U1NFUlQoYXJpdGhQcm9maWxlKTsKKyAgICBhcml0aFByb2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMo
b3AxLCBvcDIpOworCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7
CisgICAgYXJpdGhQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworCisgICAgZXhl
Yy0+Y29kZUJsb2NrKCktPmR1bXBKSVRBZGRJQ1N0YXRzKCk7CisKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogeworICAgIHJldHVybiB1bnByb2ZpbGVkQWRk
KGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm90UHJvZmlsZWROb3RPcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikKK3sKKyAgICByZXR1cm4gdW5wcm9maWxl
ZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJp
dGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCit7CisgICAgcmV0dXJuIHByb2ZpbGVkQWRkKGV4ZWMs
IGVuY29kZWRPcDEsIGVuY29kZWRPcDIsIGFyaXRoUHJvZmlsZSk7Cit9CisKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKK3sK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKKworICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOworICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2
ZUxIU0FuZFJIUyhvcDEsIG9wMik7CisgICAgYXV0byBub25PcHRpbWl6ZVZhcmlhbnQgPSBvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9uT3B0aW1pemU7CisgICAgYWRkSUMtPmdlbmVyYXRlT3V0
T2ZMaW5lKCp2bSwgZXhlYy0+Y29kZUJsb2NrKCksIG5vbk9wdGltaXplVmFyaWFudCk7CisgICAg
CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7CisgICAgYXJpdGhQ
cm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworCisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWROb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlLCBKSVRBZGRJQyopCit7CisgICAgcmV0dXJuIHByb2ZpbGVkQWRkKGV4
ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsIGFyaXRoUHJvZmlsZSk7Cit9CisKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIGF1dG8gbm9uT3B0
aW1pemVWYXJpYW50ID0gb3BlcmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZTsKKyAgICBhZGRJQy0+
Z2VuZXJhdGVPdXRPZkxpbmUoKnZtLCBleGVjLT5jb2RlQmxvY2soKSwgbm9uT3B0aW1pemVWYXJp
YW50KTsKKworICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklUQWRkSUNTdGF0cygpOwogICAg
IAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpT
VmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNBZGQoZXhlYywgb3AxLCBvcDIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKikKIHsK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKQEAgLTIyNjYsOCArMjM0MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
Mik7CiAgICAgCisgICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBKSVRBZGRJQ1N0YXRzKCk7CisK
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKLSAgICByZXN1bHRQ
cm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0yMjg0LDcgKzIzNjIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihhICogYikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFBy
b2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCiB7CiAgICAg
Vk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgZXhlYyk7CkBAIC0yMjk2LDcgKzIzNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhCiAgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7CiAgICAg
CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7Ci0gICAgcmVzdWx0UHJvZmls
ZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKyAgICBhcml0aFByb2ZpbGUtPmRldGVjdE51
bWVyaWNuZXNzKHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCkBAIC0yMzEzLDcgKzIzOTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC0gYikpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmls
ZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CkBAIC0yMzI1
LDcgKzI0MDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAg
ICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc051bWJlcihhIC0gYik7Ci0gICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25l
c3MocmVzdWx0KTsKKyAgICBhcml0aFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAzMzUxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgQXJyYXlQcm9maWxlOwogY2xhc3MgQ2FsbExpbmtJbmZv
OwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSklUQWRkR2VuZXJh
dG9yOwogY2xhc3MgSlNBcnJheTsKIGNsYXNzIEpTRnVuY3Rpb247CiBjbGFzcyBKU0xleGljYWxF
bnZpcm9ubWVudDsKQEAgLTU0LDEwICs1NSwxMyBAQCBjbGFzcyBXYXRjaHBvaW50U2V0OwogCiBz
dHJ1Y3QgQnlWYWxJbmZvOwogc3RydWN0IElubGluZUNhbGxGcmFtZTsKLXN0cnVjdCBSZXN1bHRQ
cm9maWxlOworc3RydWN0IEFyaXRoUHJvZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZy
YW1lOwogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yVHlwZT4gY2xhc3MgSklUTWF0aElD
OwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKwogZXh0ZXJu
ICJDIiB7CiAKIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwpAQCAtODEsNiArODUsNyBAQCB0eXBl
ZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBJY2Y6IElubGluZUNhbGxGcmFtZSoKICAgICBJZGM6
IGNvbnN0IElkZW50aWZpZXIqCiAgICAgSjogRW5jb2RlZEpTVmFsdWUKKyAgICBKYWljOiBKSVRB
ZGRJQyoKICAgICBKY3A6IGNvbnN0IEpTVmFsdWUqCiAgICAgSnNjOiBKU1Njb3BlKgogICAgIEpz
ZjogSlNGdW5jdGlvbioKQEAgLTkyLDcgKzk3LDcgQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7
CiAgICAgUTogaW50NjRfdAogICAgIFI6IFJlZ2lzdGVyCiAgICAgUmVvOiBSZWdFeHBPYmplY3Qq
Ci0gICAgUnA6IFJlc3VsdFByb2ZpbGUqCisgICAgUnA6IEFyaXRoUHJvZmlsZSoKICAgICBTOiBz
aXplX3QKICAgICBTcHJ0OiBTbG93UGF0aFJldHVyblR5cGUKICAgICBTc2k6IFN0cnVjdHVyZVN0
dWJJbmZvKgpAQCAtMTMzLDcgKzEzOCw5IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9P
UEVSQVRJT04gKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklU
T3BlcmF0aW9uX0VKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEFycmF5UHJvZmlsZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElP
TiAqSl9KSVRPcGVyYXRpb25fRUpKQnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BF
UkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
KEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSlJwKShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFJlc3VsdFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSlJwKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFyaXRoUHJvZmlsZSopOwordHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKUnBKYWlj
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFyaXRoUHJvZmls
ZSosIEpJVEFkZElDKik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpK
X0pJVE9wZXJhdGlvbl9FSkpKYWljKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEpJVEFkZElDKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFU
SU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQzMl90
KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9u
X0VKc3NSZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvSnNz
KShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CkBAIC00
MDgsMTEgKzQxNSwxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3RhdGUq
LCBpbnQzMl90KTsKIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUFkZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRO
b3RQcm9maWxlZE5vdE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXpl
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9uT3B0aW1p
emUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkTm9uT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSBXVEZfSU5U
RVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVk
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKikg
V1RGX0lOVEVSTkFMOwogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQ
cm9maWxlckxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFM
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNw
cAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJH
ZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRlICJBcml0
aFByb2ZpbGUuaCIKKwogI2lmIEVOQUJMRShKSVQpCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtODMs
OCArODUsOCBAQCB2b2lkIEpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAg
cmlnaHRXYXNJbnRlZ2VyLmxpbmsoJmppdCk7CiAKICAgICBqaXQuc3ViRG91YmxlKG1fcmlnaHRG
UFIsIG1fbGVmdEZQUik7Ci0gICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgbV9yZXN1
bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQor
ICAgICAgICBtX2FyaXRoUHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOwogCiAgICAgaml0LmJv
eERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgSklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5k
IGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFs
dWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAg
ICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBG
UFJSZWcgc2NyYXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG51bGxwdHIpCisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikK
ICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRP
cGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3
ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAg
ICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3Jh
dGNoRlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAg
ICAsIG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7IH0KIAogICAgIHZvaWQgZ2Vu
ZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToK
ICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQ
UlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOwor
ICAgIEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0
UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExp
c3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDIw
MzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRDYWxsVGFyZ2V0
KENvZGVCbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyB2b2lkIHJlcGF0Y2hDYWxs
KENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlTG9jYXRpb25DYWxsIGNhbGwsIEZ1bmN0aW9uUHRy
IG5ld0NhbGxlZUZ1bmN0aW9uKQordm9pZCB0aHVua0F3YXJlUmVwYXRjaENhbGwoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVMb2NhdGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3Q2FsbGVl
RnVuY3Rpb24pCiB7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAgaWYgKGNvZGVCbG9jay0+aml0
VHlwZSgpID09IEpJVENvZGU6OkZUTEpJVCkgewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBJ
bmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQKIAogICAgICAgICAgICAgICAgIGJvb2wg
Z2VuZXJhdGVkQ29kZUlubGluZSA9IElubGluZUFjY2Vzczo6Z2VuZXJhdGVBcnJheUxlbmd0aCgq
Y29kZUJsb2NrLT52bSgpLCBzdHViSW5mbywganNDYXN0PEpTQXJyYXkqPihiYXNlVmFsdWUpKTsK
ICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewotICAgICAgICAgICAg
ICAgICAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0
aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAg
ICAgICAgICAgICAgICAgIHRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZv
LnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5j
dGlvbihraW5kKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRBcnJheUxlbmd0
aCgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24g
dHJ5Q2FjaGVHZXRCeUlECiAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewog
ICAgICAgICAgICAgICAgIExPR19JQygoSUNFdmVudDo6R2V0QnlJZFNlbGZQYXRjaCwgc3RydWN0
dXJlLT5jbGFzc0luZm8oKSwgcHJvcGVydHlOYW1lKSk7CiAgICAgICAgICAgICAgICAgc3RydWN0
dXJlLT5zdGFydFdhdGNoaW5nUHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIHNsb3QuY2FjaGVk
T2Zmc2V0KCkpOwotICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1Yklu
Zm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1
bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgICAgICAgICB0aHVua0F3YXJlUmVwYXRjaENhbGwoY29k
ZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGlt
aXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogICAgICAgICAgICAgICAgIHN0dWJJbmZvLmlu
aXRHZXRCeUlkU2VsZihjb2RlQmxvY2ssIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgIH0K
QEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIHJlcGF0Y2hHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywg
SlNWCiAgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZXhlYy0+Y29kZUJsb2Nr
KCktPm1fbG9jaywgZXhlYy0+dm0oKS5oZWFwKTsKICAgICAKICAgICBpZiAodHJ5Q2FjaGVHZXRC
eUlEKGV4ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywga2luZCkg
PT0gR2l2ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCks
IHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY0dldEJ5
SWRGdW5jdGlvbihraW5kKSk7CisgICAgICAgIHRodW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5j
b2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVH
ZW5lcmljR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKIH0KIAogc3RhdGljIFZfSklUT3BlcmF0aW9u
X0VTc2lKSkkgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCAmc2xvdCwgUHV0S2luZCBwdXRLaW5kKQpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRp
YyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAgICAgICBib29s
IGdlbmVyYXRlZENvZGVJbmxpbmUgPSBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2VsZlByb3BlcnR5
UmVwbGFjZSh2bSwgc3R1YkluZm8sIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAg
ICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRlZENvZGVJbmxpbmUpIHsKICAgICAgICAgICAgICAg
ICAgICAgTE9HX0lDKChJQ0V2ZW50OjpQdXRCeUlkU2VsZlBhdGNoLCBzdHJ1Y3R1cmUtPmNsYXNz
SW5mbygpLCBpZGVudCkpOwotICAgICAgICAgICAgICAgICAgICByZXBhdGNoQ2FsbChjb2RlQmxv
Y2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemlu
Z1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CisgICAgICAgICAgICAgICAgICAgIHRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0
aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5k
KSk7CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDY4LDcg
KzQ2OCw3IEBAIHZvaWQgcmVwYXRjaFB1dEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICBH
Q1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxvY2soKS0+bV9sb2Nr
LCBleGVjLT52bSgpLmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNoZVB1dEJ5SUQoZXhlYywg
YmFzZVZhbHVlLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIHB1dEtp
bmQpID09IEdpdmVVcE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9j
aygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNQ
dXRCeUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOworICAgICAgICB0aHVua0F3YXJlUmVwYXRj
aENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCks
IGFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CiB9CiAK
IHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlSZXBhdGNoSW4oCkBAIC01MjksNyArNTI5LDcg
QEAgdm9pZCByZXBhdGNoSW4oCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVy
U2NvcGUoZmFsc2UpOwogICAgIGlmICh0cnlSZXBhdGNoSW4oZXhlYywgYmFzZSwgaWRlbnQsIHdh
c0ZvdW5kLCBzbG90LCBzdHViSW5mbykgPT0gR2l2ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRj
aENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCks
IG9wZXJhdGlvbkluKTsKKyAgICAgICAgdGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVC
bG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcGVyYXRpb25Jbik7CiB9
CiAKIHN0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKFZNKiwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2RlUmVmKQpAQCAtOTAxLDcgKzkwMSw3IEBAIHZv
aWQgbGlua1BvbHltb3JwaGljQ2FsbCgKIAogdm9pZCByZXNldEdldEJ5SUQoQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgR2V0QnlJREtpbmQga2luZCkK
IHsKLSAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0
aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAg
dGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9j
YXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKICAg
ICBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoKmNvZGVCbG9jay0+dm0oKSwgc3R1Yklu
Zm8sIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKIH0KIApAQCAtOTIwLDcgKzky
MCw3IEBAIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayogY29kZUJsb2NrLCAKICAgICAgICAg
b3B0aW1pemVkRnVuY3Rpb24gPSBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1p
emU7CiAgICAgfQogCi0gICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0
aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRGdW5jdGlvbik7CisgICAgdGh1bmtBd2FyZVJlcGF0
Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3B0aW1p
emVkRnVuY3Rpb24pOwogICAgIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCgqY29kZUJs
b2NrLT52bSgpLCBzdHViSW5mbywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOwog
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkocmV2aXNpb24gMjAzMzUx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSosIENh
bAogdm9pZCByZXNldEdldEJ5SUQoQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mLCBHZXRC
eUlES2luZCk7CiB2b2lkIHJlc2V0UHV0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5m
byYpOwogdm9pZCByZXNldEluKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7Cit2b2lk
IHRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sqLCBDb2RlTG9jYXRpb25DYWxsIGNhbGws
IEZ1bmN0aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCShyZXZpc2lv
biAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkxMSW50RGF0YS5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkNvZGVUeXBlLmgiCkBAIC0yMjMsNiArMjI0LDQ3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFz
c2VydGlvbnMoVk0mIHZtKQogI2VuZGlmCiAKICAgICBBU1NFUlQoU3RyaW5nSW1wbDo6c19oYXNo
RmxhZzhCaXRCdWZmZXIgPT0gOCk7CisKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAw
eDEyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2Zp
bGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAg
ICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd0ludDMyKCk7CisgICAgICAgIEFTU0VSVChhcml0aFBy
b2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9t
SW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgICAgICBBU1NF
UlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seUlu
dDMyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDIyMDAwMDsK
KyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQ
cm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIGFy
aXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJp
dHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRz
KS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChBcml0
aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7
CisgICAgfQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MjQwMDAwOworICAgICAg
ICBVTlVTRURfUEFSQU0oYml0cyk7CisgICAgICAgIEFyaXRoUHJvZmlsZSBhcml0aFByb2ZpbGU7
CisgICAgICAgIGFyaXRoUHJvZmlsZS5saHNTYXdOdW1iZXIoKTsKKyAgICAgICAgYXJpdGhQcm9m
aWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9
PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2Zp
bGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAg
IH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDE0MDAwMDsKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAg
ICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJo
c1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRz
KTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZl
ZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJv
bUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgfQogfQog
I2lmIENPTVBJTEVSKENMQU5HKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20JKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC04OTMsNiArODkz
LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAgIGJxYiB0
MSwgdGFnVHlwZU51bWJlciwgLm9wMk5vdEludAogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigx
LCB0MikKICAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDEsIHQwLCAuc2xvdywgdDIpCisg
ICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQxKQorICAgIG9yaSAweDEyMDAwMCwgdDEgIyBC
b3RoIGFyZSBpbnRzLgorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQxLCA0KQogICAgIGRpc3Bh
dGNoKDUpCiAKIC5vcDFOb3RJbnQ6CkBAIC05MDIsOCArOTA1LDE0IEBAIG1hY3JvIGJpbmFyeU9w
Q3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAu
c2xvdwogICAgIGFkZHEgdGFnVHlwZU51bWJlciwgdDEKICAgICBmcTJkIHQxLCBmdDEKKyAgICBs
b2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisgICAgb3JpIDB4MjQwMDAwLCB0MiAjIEJvdGgg
YXJlIGRvdWJsZXMuCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgam1wIC5v
cDFOb3RJbnRSZWFkeQogLm9wMU5vdEludE9wMkludDoKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oNCwgdDIpCisgICAgb3JpIDB4MjIwMDAwLCB0MiAjIEZpcnN0IGlzIGRvdWJsZSwgc2Vjb25k
IGlzIGludC4KKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MiwgNCkKICAgICBjaTJkIHQxLCBm
dDEKIC5vcDFOb3RJbnRSZWFkeToKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCkBA
IC05MTksNiArOTI4LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0
aQogICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29uZCBp
cyBkZWZpbml0ZWx5IG5vdC4KICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAg
YnRxeiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24o
NCwgdDMpCisgICAgb3JpIDB4MTQwMDAwLCB0MyAjIEZpcnN0IGlzIGludCwgc2Vjb29uZCBpcyBk
b3VibGUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MywgNCkKICAgICBjaTJkIHQwLCBmdDAK
ICAgICBhZGRxIHRhZ1R5cGVOdW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQxCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTI4Niw2ICsyODYsMTAgQEAgaWYg
SlNWQUxVRTY0CiAgICAgICAgIGxvYWRwIG9mZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAogICAg
IGVuZAogICAgIAorICAgIG1hY3JvIHN0b3JlaXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQp
CisgICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCisgICAgZW5kCisK
ICAgICBtYWNybyBzdG9yZXBUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCiAgICAgICAgIHN0
b3JlcCB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCiAgICAgZW5kCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAkocmV2aXNpb24gMjAzMzUxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDQ2ICszMiw0OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAg
ICBmcmllbmQgc3RydWN0IE9wZXJhbmRUeXBlczsKIAotICAgICAgICB0eXBlZGVmIGNoYXIgVHlw
ZTsKKyAgICAgICAgdHlwZWRlZiB1aW50OF90IFR5cGU7CiAgICAgICAgIHN0YXRpYyBjb25zdCBU
eXBlIFR5cGVJbnQzMiA9IDE7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBU
eXBlTWF5YmVOdW1iZXIgPSAweDA0OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5
YmVTdHJpbmcgPSAweDA4OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxs
ICAgPSAweDEwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAw
eDIwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQwOwor
ICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDAyOworICAgICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA0OworICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDA4OworICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDEwOworICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlTWF5YmVPdGhlciAgPSAweDIwOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5
cGVCaXRzID0gVHlwZU1heWJlTnVtYmVyIHwgVHlwZU1heWJlU3RyaW5nIHwgVHlwZU1heWJlTnVs
bCB8IFR5cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsKIAorICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBudW1CaXRzTmVlZGVkID0gNjsKKyAgICAgICAgc3RhdGljX2Fz
c2VydCgoVHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRlZCkgLSAxKSkgPT0gVHlwZUJpdHMs
ICJUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MuIik7CisKICAgICAgICAgZXhwbGlj
aXQgUmVzdWx0VHlwZShUeXBlIHR5cGUpCi0gICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAg
ICAgICAgICAgOiBtX2JpdHModHlwZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICBwdWJs
aWM6CiAgICAgICAgIGJvb2wgaXNJbnQzMigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBtX3R5cGUgJiBUeXBlSW50MzI7CisgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYg
VHlwZUludDMyOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNOdW1iZXIo
KSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRz
KSA9PSBUeXBlTWF5YmVOdW1iZXI7CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVC
aXRzKSA9PSBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGJv
b2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOworICAgICAgICAgICAg
cmV0dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOwogICAgICAgICB9
CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNCb29sZWFuKCkgY29uc3QKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlQm9vbDsK
KyAgICAgICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7
CiAgICAgICAgIH0KIAogICAgICAgICBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbV90eXBlICYgVHlwZU1heWJlTnVtYmVyOworICAgICAg
ICAgICAgcmV0dXJuIG1fYml0cyAmIFR5cGVNYXliZU51bWJlcjsKICAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgaXNOb3ROdW1iZXIoKSBjb25zdApAQCAtMTQxLDggKzE0MywxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAgICAg
ICB9CiAKKyAgICAgICAgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKICAg
ICBwcml2YXRlOgotICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgVHlwZSBtX2JpdHM7CiAg
ICAgfTsKICAgICAKICAgICBzdHJ1Y3QgT3BlcmFuZFR5cGVzCkBAIC0xNTIsOCArMTU2LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGluaXRpYWxpemUgb25l
IG9mIHRoZSBpbnQgdG8gZW5zdXJlIHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgc3Ry
dWN0IGlzIGluaXRpYWxpemVkLgogICAgICAgICAgICAgbV91LmkgPSAwOwotICAgICAgICAgICAg
bV91LnJkcy5maXJzdCA9IGZpcnN0Lm1fdHlwZTsKLSAgICAgICAgICAgIG1fdS5yZHMuc2Vjb25k
ID0gc2Vjb25kLm1fdHlwZTsKKyAgICAgICAgICAgIG1fdS5yZHMuZmlyc3QgPSBmaXJzdC5tX2Jp
dHM7CisgICAgICAgICAgICBtX3UucmRzLnNlY29uZCA9IHNlY29uZC5tX2JpdHM7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHVuaW9uIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjAzMzUxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlR5cGVQcm9m
aWxlckxvZy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCisjaW5jbHVk
ZSAiUmVzdWx0VHlwZS5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogI2RlZmluZSBCRUdJTl9OT19T
RVRfUEMoKSBcCkBAIC0zNTksMjIgKzM2MiwyMSBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
bmVnYXRlKQogfQogCiAjaWYgRU5BQkxFKERGR19KSVQpCi1zdGF0aWMgdm9pZCB1cGRhdGVSZXN1
bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBw
YywgSlNWYWx1ZSByZXN1bHQsIEpTVmFsdWUgbGVmdCwgSlNWYWx1ZSByaWdodCkKK3N0YXRpYyB2
b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJ
bnN0cnVjdGlvbiogcGMsIEpTVmFsdWUgcmVzdWx0LCBKU1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmln
aHQpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKLSAg
ICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGNvZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQocGMp
OwotICAgIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUgPSBjb2RlQmxvY2stPmVuc3VyZVJlc3VsdFBy
b2ZpbGUoYnl0ZWNvZGVPZmZzZXQpOworICAgIEFyaXRoUHJvZmlsZSYgcHJvZmlsZSA9IGNvZGVC
bG9jay0+YXJpdGhQcm9maWxlRm9yUEMocGMpOwogCiAgICAgaWYgKHJlc3VsdC5pc051bWJlcigp
KSB7CiAgICAgICAgIGlmICghcmVzdWx0LmlzSW50MzIoKSkgewogICAgICAgICAgICAgaWYgKGxl
ZnQuaXNJbnQzMigpICYmIHJpZ2h0LmlzSW50MzIoKSkKLSAgICAgICAgICAgICAgICBwcm9maWxl
LT5zZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLnNl
dE9ic2VydmVkSW50MzJPdmVyZmxvdygpOwogCiAgICAgICAgICAgICBkb3VibGUgZG91YmxlVmFs
ID0gcmVzdWx0LmFzTnVtYmVyKCk7CiAgICAgICAgICAgICBpZiAoIWRvdWJsZVZhbCAmJiBzdGQ6
OnNpZ25iaXQoZG91YmxlVmFsKSkKLSAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZl
ZE5lZ1plcm9Eb3VibGUoKTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLnNldE9ic2VydmVkTmVn
WmVyb0RvdWJsZSgpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHJvZmls
ZS0+c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7CisgICAgICAgICAgICAgICAgcHJvZmls
ZS5zZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsKIAogICAgICAgICAgICAgICAgIC8vIFRo
ZSBJbnQ1MiBvdmVyZmxvdyBjaGVjayBoZXJlIGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8IDUx
IGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUuCiAgICAgICAgICAgICAgICAgLy8gVGhl
cmVmb3JlLCB3ZSB3aWxsIGdldCBhIGZhbHNlIHBvc2l0aXZlIGlmIHRoZSByZXN1bHQgaXMgdGhh
dCB2YWx1ZS4gVGhpcyBpcyBpbnRlbnRpb25hbGx5CkBAIC0zODIsMTQgKzM4NCwxNCBAQCBzdGF0
aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiAgICAgICAgICAgICAgICAgc3Rh
dGljIGNvbnN0IGludDY0X3QgaW50NTJPdmVyZmxvd1BvaW50ID0gKDFsbCA8PCA1MSk7CiAgICAg
ICAgICAgICAgICAgaW50NjRfdCBpbnQ2NFZhbCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6
YWJzKGRvdWJsZVZhbCkpOwogICAgICAgICAgICAgICAgIGlmIChpbnQ2NFZhbCA+PSBpbnQ1Mk92
ZXJmbG93UG9pbnQpCi0gICAgICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkSW50
NTJPdmVyZmxvdygpOworICAgICAgICAgICAgICAgICAgICBwcm9maWxlLnNldE9ic2VydmVkSW50
NTJPdmVyZmxvdygpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAg
ICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTnVtYmVyKCk7CisgICAgICAgIHByb2ZpbGUuc2V0
T2JzZXJ2ZWROb25OdW1iZXIoKTsKIH0KICNlbHNlCi1zdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQ
cm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiosIEpTVmFsdWUs
IEpTVmFsdWUsIEpTVmFsdWUpIHsgfQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9y
QmluYXJ5QXJpdGhPcChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiosIEpTVmFsdWUsIEpTVmFsdWUs
IEpTVmFsdWUpIHsgfQogI2VuZGlmCiAKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90b19udW1i
ZXIpCkBAIC00MDcsNiArNDA5LDI0IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAg
ICAgSlNWYWx1ZSB2MiA9IE9QX0MoMykuanNWYWx1ZSgpOwogICAgIEpTVmFsdWUgcmVzdWx0Owog
CisgICAgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUgPSBleGVjLT5jb2RlQmxvY2soKS0+YXJp
dGhQcm9maWxlRm9yUEMocGMpOworICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhTQW5kUkhTKHYx
LCB2Mik7CisKKyAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsKKwor
ICAgIC8qCisgICAgZGF0YUxvZygic2xvd19wYXRoX2FkZFxuIik7CisgICAgZGF0YUxvZygiVjE6
ICIsIHJ1bnRpbWVUeXBlQXNTdHJpbmcocnVudGltZVR5cGVGb3JWYWx1ZSh2MSkpLCAiXG4iKTsK
KyAgICBkYXRhTG9nKCJWMjogIiwgcnVudGltZVR5cGVBc1N0cmluZyhydW50aW1lVHlwZUZvclZh
bHVlKHYyKSksICJcbiIpOworICAgIGRhdGFMb2coIlN0YXRzOiAiLCBwY1s0XS51Lm9wZXJhbmQs
ICJcbiIpOworICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChw
Y1s0XS51Lm9wZXJhbmQpOworICAgIFJlc3VsdFR5cGUgYSA9IHR5cGVzLmZpcnN0KCk7CisgICAg
UmVzdWx0VHlwZSBiID0gdHlwZXMuc2Vjb25kKCk7CisgICAgZGF0YUxvZygqYml0d2lzZV9jYXN0
PHVpbnQ4X3QqPigmYSksICJcbiIpOworICAgIGRhdGFMb2coKmJpdHdpc2VfY2FzdDx1aW50OF90
Kj4oJmIpLCAiXG4iKTsKKyAgICAqLworICAgIAorCiAgICAgaWYgKHYxLmlzU3RyaW5nKCkgJiYg
IXYyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGFzU3RyaW5n
KHYxKSwgdjIudG9TdHJpbmcoZXhlYykpOwogICAgIGVsc2UgaWYgKHYxLmlzTnVtYmVyKCkgJiYg
djIuaXNOdW1iZXIoKSkKQEAgLTQxNSw3ICs0MzUsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfYWRkKQogICAgICAgICByZXN1bHQgPSBqc0FkZFNsb3dDYXNlKGV4ZWMsIHYxLCB2Mik7CiAK
ICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3Vs
dFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIHYxLCB2Mik7CisgICAg
ICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwg
djEsIHYyKTsKICAgICB9KTsKIH0KIApAQCAtNDMyLDcgKzQ1Miw3IEBAIFNMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9tdWwpCiAgICAgZG91YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9G
SUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0
aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgdXBkYXRlQXJpdGhQ
cm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CiAg
ICAgfSk7CiB9CiAKQEAgLTQ0NSw3ICs0NjUsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
c3ViKQogICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7CiAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBqc051bWJlcihhIC0gYik7CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3Vs
dCwgewotICAgICAgICB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBw
YywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJp
bmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwogICAgIH0pOwogfQog
CkBAIC00NTgsNyArNDc4LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2RpdikKICAgICBk
b3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoYSAvIGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAg
ICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwg
bGVmdCwgcmlnaHQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9w
KGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaml0L0pJVE1hdGhJ
Q0ZvcndhcmRzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQg
QEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSklUTWF0aElDRm9yd2FyZHNfaAorI2RlZmluZSBXZWJD
b3JlX0ZXRF9KSVRNYXRoSUNGb3J3YXJkc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSklU
TWF0aElDRm9yd2FyZHMuaD4KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284034</attachid>
            <date>2016-07-19 12:55:12 -0700</date>
            <delta_ts>2016-07-19 19:02:52 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>142612</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMzNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxNiArMTI4MSwyMCBAQAogCQk3OTA1QkI2OTFE
MTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzkxNjBEQkQxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MTYwREJCMUM4RTNFQzgwMDhD
MDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi87IH07CiAJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1
QSAvKiBQcm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzkxNjBEQkMxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzkyMzNDMkIxRDM0
NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzkyMzNDMjkxRDM0NzE1NzAwQzVBODM0IC8qIEpJVE1hdGhJQy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5MkNC
MzQ5MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovOyB9OwogCQk3OTJDQjM0QTFDNEVFRDVDMDBE
MTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9y
aWdpbk1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc5NjQ2NTZBMUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTY0NjU2ODFCOTUyRkYwMDAzMDU5
RUUgLyogR2V0UHV0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQuY3BwICovOyB9OwogCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5N0UwN0E4MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc5OUVGN0M0MUM1NkVEOTYwMDJCMDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5OUVGN0MzMUM1NkVEOTYwMDJC
MDUzNCAvKiBCM1BDVG9PcmlnaW5NYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3OUEyMjgzNTFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QTIyODMzMUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwICovOyB9OworCQk3OUEy
MjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcgLyog
QXJpdGhQcm9maWxlLmggKi87IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94
eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAq
LzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2
QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNl
dHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7
IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3
RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJ
Q0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIx
NThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFC
QTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5j
cHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJp
YWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFy
aWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFu
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNG
QzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDEyICszNDgwLDE2IEBACiAJ
CTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94
eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQg
LyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJ
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNB
RjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1
dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyog
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5
RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09y
aWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFF
MDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyog
UHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlC
MDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA1Nyw2ICs1MDY1LDggQEAKIAkJCQlERTVB
MDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQy
OUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3
MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBK
SVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElD
Rm9yd2FyZHMuaCAqLywKIAkJCQlGRTEyMjAyNTFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmNwcCAqLywKIAkJCQlGRTEyMjAyNjFCRTdGNTY0MDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmggKi8sCiAJCQkJODZBOTBFQ0YwRUU3RDUxRjAwQUIzNTBEIC8qIEpJVEFyaXRobWV0
aWMuY3BwICovLApAQCAtNjU1Niw2ICs2NTY2LDggQEAKIAkJCQkwRjgzMzVCNTE2MzlDMUUzMDAx
NDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovLAogCQkJCTBGNjM5NDUxMTVEMDcw
NTEwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuY3BwICovLAogCQkJCTBGNjM5NDUyMTVEMDcwNTEw
MDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCAqLywKKwkJCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUw
NjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLywKKwkJCQk3OUEyMjgzNDFEMzVENzFFMDBEOEUwNjcg
LyogQXJpdGhQcm9maWxlLmggKi8sCiAJCQkJQzJGQ0FFMEMxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5
dGVjb2RlQmFzaWNCbG9jay5jcHAgKi8sCiAJCQkJQzJGQ0FFMEQxN0E5QzI0RTAwMzRDNzM1IC8q
IEJ5dGVjb2RlQmFzaWNCbG9jay5oICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAv
KiBCeXRlY29kZUNvbnZlbnRpb25zLmggKi8sCkBAIC03MDY4LDYgKzcwODAsNyBAQAogCQkJCUE1
RUE3MEU4MTlGNUIxMDEwMDk4RjVFQyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0FyZ3VtZW50UmVnVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MjMzQzJCMUQz
NDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwMzFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrVXRpbHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRUM4NTA0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jsb2NrV29ya2xp
c3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzc1NCw2ICs3NzY3LDcgQEAKIAkJCQlBNTEwMDdDMTE4
N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDEx
MEYxNCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3OUEyMjgzNjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEzRTVDMDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhv
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMyMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ0MkNCMjUx
QTZDREI4QzAwNUQzRDdDIC8qIEpTSW5wdXRzLmpzb24gaW4gSGVhZGVycyAqLywKQEAgLTgxNzks
NiArODE5Myw3IEBACiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmll
clN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAv
KiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFB
QTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk3OUIxNzg4RTFEMzk5QjgwMDBCMUE1
NjcgLyogSklUTWF0aElDRm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJE
Qzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NTEyREJB
MzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njcw
NEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC05MjYz
LDYgKzkyNzgsNyBAQAogCQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2Vt
Ymxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyog
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVCMTM3NTcxQkIxMUVG
OTAwQ0Q1MTAwIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NzlBMjI4MzUxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzI5MDA5QzE3OTc2QzYwMDAzMTcyOTggLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTY4QzYzODFCOTBERTBCMDA0MkJDQjMgLyogTWFjcm9B
c3NlbWJsZXJQcmludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTRBRTA4MTc5NzNCMjYw
MDU2MTJCMSAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJv
ZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjaWYgRU5BQkxFKEpJVCkK
K3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBq
aXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBpZiAo
IXNob3VsZEVtaXRTZXREb3VibGUoKSAmJiAhc2hvdWxkRW1pdFNldE5vbk51bWJlcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5icmFu
Y2hJZkludDMyKHJlZ3MsIG1vZGUpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3VibGUg
PSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOworICAgIGVt
aXRTZXREb3VibGUoaml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1w
KCk7CisgICAgbm90RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQp
OworICAgIGRvbmUubGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK2Jv
b2wgQXJpdGhQcm9maWxlOjpzaG91bGRFbWl0U2V0RG91YmxlKCkgY29uc3QKK3sKKyAgICB1aW50
MzJfdCBtYXNrID0gQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpJ
bnQ1Mk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgQXJpdGhQcm9maWxl
OjpOb25OZWdaZXJvRG91YmxlOworICAgIHJldHVybiAobV9iaXRzICYgbWFzaykgIT0gbWFzazsK
K30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQp
Cit7CisgICAgaWYgKHNob3VsZEVtaXRTZXREb3VibGUoKSkKKyAgICAgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgQXJp
dGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwg
QXJpdGhQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MoYWRkcmVzc09mQml0cygpKSk7Cit9CisKK2Jvb2wgQXJpdGhQcm9maWxlOjpzaG91bGRF
bWl0U2V0Tm9uTnVtYmVyKCkgY29uc3QKK3sKKyAgICB1aW50MzJfdCBtYXNrID0gQXJpdGhQcm9m
aWxlOjpOb25OdW1iZXI7CisgICAgcmV0dXJuIChtX2JpdHMgJiBtYXNrKSAhPSBtYXNrOworfQor
Cit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmIGppdCkK
K3sKKyAgICBpZiAoc2hvdWxkRW1pdFNldE5vbk51bWJlcigpKQorICAgICAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5vbk51bWJlciksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQorI2VuZGlmIC8v
IEVOQUJMRShKSVQpCisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKyAg
ICAKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVh
bSYgb3V0LCBjb25zdCBBcml0aFByb2ZpbGUmIHByb2ZpbGUpCit7CisgICAgY29uc3QgY2hhciog
c2VwYXJhdG9yID0gIiI7CisKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkp
IHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOworICAgICAgICBzZXBhcmF0b3IgPSAifCI7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3Vi
bGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUi
KTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQu
cHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsK
KyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsK
KyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBhcmF0
b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMy
T3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7Cisg
ICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2Zp
bGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJ
bnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0K
KyAgICB9CisgICAgaWYgKHByb2ZpbGUudG9va1NwZWNpYWxGYXN0UGF0aCgpKQorICAgICAgICBv
dXQucHJpbnQoIiB0b29rIHNwZWNpYWwgZmFzdCBwYXRoLiIpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9m
aWxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJp
dGhQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNNb2RlLmgiCisKK25hbWVzcGFjZSBKU0Mg
eworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK3N0cnVjdCBPYnNlcnZlZFR5cGUgeworICAgIE9i
c2VydmVkVHlwZSh1aW50OF90IGJpdHMgPSBUeXBlRW1wdHkpCisgICAgICAgIDogbV9iaXRzKGJp
dHMpCisgICAgeyB9CisKKyAgICBib29sIHNhd0ludDMyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRz
ICYgVHlwZUludDMyOyB9CisgICAgYm9vbCBpc09ubHlJbnQzMigpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0cyA9PSBUeXBlSW50MzI7IH0KKyAgICBib29sIHNhd051bWJlcigpIGNvbnN0IHsgcmV0dXJu
IG1fYml0cyAmIFR5cGVOdW1iZXI7IH0KKyAgICBib29sIGlzT25seU51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYml0cyA9PSBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBzYXdOb25OdW1iZXIoKSBj
b25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTm9uTnVtYmVyOyB9CisgICAgYm9vbCBpc09ubHlO
b25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU5vbk51bWJlcjsgfQorICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2JpdHM7IH0KKyAgICB1aW50OF90IGJp
dHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKworICAgIE9ic2VydmVkVHlwZSB3aXRoSW50
MzIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlwZUludDMyKTsgfQor
ICAgIE9ic2VydmVkVHlwZSB3aXRoTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBl
KG1fYml0cyB8IFR5cGVOdW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhOb25OdW1iZXIo
KSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlwZU5vbk51bWJlcik7IH0K
KyAgICBPYnNlcnZlZFR5cGUgd2l0aG91dE5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9ic2Vy
dmVkVHlwZShtX2JpdHMgJiB+VHlwZU5vbk51bWJlcik7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBPYnNlcnZlZFR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gb3Ro
ZXIubV9iaXRzOyB9CisKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlRW1wdHkgPSAweDA7
CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUludDMyID0gMHgxOworICAgIHN0YXRpYyBj
b25zdCB1aW50OF90IFR5cGVOdW1iZXIgPSAweDAyOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90
IFR5cGVOb25OdW1iZXIgPSAweDA0OworCitwcml2YXRlOgorICAgIHVpbnQ4X3QgbV9iaXRzOwor
fTsKKworc3RydWN0IEFyaXRoUHJvZmlsZSB7Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBudW1iZXJPZkZsYWdCaXRzID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
cmhzUmVzdWx0VHlwZVNoaWZ0ID0gNTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbGhzUmVz
dWx0VHlwZVNoaWZ0ID0gMTE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc09ic2VydmVk
VHlwZVNoaWZ0ID0gMTc7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGxoc09ic2VydmVkVHlw
ZVNoaWZ0ID0gMjA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGJvdHRvbTZCaXRzID0gKDEg
PDwgNikgLSAxOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b20zQml0cyA9ICgxIDw8
IDMpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJSaHNPYnNlcnZlZFR5cGVC
aXRzID0gfigoMSA8PCAxNykgfCAoMSA8PCAxOCkgfCAoMSA8PCAxOSkpOworICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBjbGVhckxoc09ic2VydmVkVHlwZUJpdHMgPSB+KCgxIDw8IDIwKSB8ICgx
IDw8IDIxKSB8ICgxIDw8IDIyKSk7CisKKyAgICBzdGF0aWNfYXNzZXJ0KFJlc3VsdFR5cGU6Om51
bUJpdHNOZWVkZWQgPT0gNiwgIldlIG1ha2UgYSBzdHJvbmcgYXNzdW1wdGlvbiBoZXJlIHRoYXQg
UmVzdWx0VHlwZSBmaXRzIGluIDYgYmlzLiIpOworCitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IHNwZWNpYWxGYXN0UGF0aEJpdCA9IDEgPDwgMjM7CisKKyAgICBBcml0aFByb2Zp
bGUoUmVzdWx0VHlwZSBsaHMsIFJlc3VsdFR5cGUgcmhzKQorICAgIHsKKyAgICAgICAgbV9iaXRz
ID0gKGxocy5iaXRzKCkgPDwgbGhzUmVzdWx0VHlwZVNoaWZ0KSB8IChyaHMuYml0cygpIDw8IHJo
c1Jlc3VsdFR5cGVTaGlmdCk7CisgICAgICAgIEFTU0VSVChsaHNSZXN1bHRUeXBlKCkuYml0cygp
ID09IGxocy5iaXRzKCkgJiYgcmhzUmVzdWx0VHlwZSgpLmJpdHMoKSA9PSByaHMuYml0cygpKTsK
KyAgICAgICAgQVNTRVJUKGxoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7CisgICAgICAgIEFT
U0VSVChyaHNPYnNlcnZlZFR5cGUoKS5pc0VtcHR5KCkpOworICAgIH0KKyAgICBBcml0aFByb2Zp
bGUoKQorICAgIHsgfQorCisgICAgc3RhdGljIEFyaXRoUHJvZmlsZSBmcm9tSW50KHVpbnQzMl90
IGJpdHMpCisgICAgeworICAgICAgICBBcml0aFByb2ZpbGUgcmVzdWx0OworICAgICAgICByZXN1
bHQubV9iaXRzID0gYml0czsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBl
bnVtIE9ic2VydmVkUmVzdWx0cyB7CisgICAgICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8IDAs
CisgICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDEsCisgICAgICAgIE5vbk51bWJlciAg
ICAgICAgPSAxIDw8IDIsCisgICAgICAgIEludDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCisgICAg
ICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDQsCisgICAgfTsKKworICAgIFJlc3VsdFR5cGUg
bGhzUmVzdWx0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIFJlc3VsdFR5cGUoKG1fYml0cyA+PiBsaHNS
ZXN1bHRUeXBlU2hpZnQpICYgYm90dG9tNkJpdHMpOyB9CisgICAgUmVzdWx0VHlwZSByaHNSZXN1
bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9iaXRzID4+IHJoc1Jlc3VsdFR5
cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0KKworICAgIE9ic2VydmVkVHlwZSBsaHNPYnNlcnZl
ZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+PiBsaHNPYnNlcnZl
ZFR5cGVTaGlmdCkgJiBib3R0b20zQml0cyk7IH0KKyAgICBPYnNlcnZlZFR5cGUgcmhzT2JzZXJ2
ZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKChtX2JpdHMgPj4gcmhzT2JzZXJ2
ZWRUeXBlU2hpZnQpICYgYm90dG9tM0JpdHMpOyB9CisgICAgdm9pZCBzZXRMaHNPYnNlcnZlZFR5
cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0gbV9i
aXRzOworICAgICAgICBiaXRzICY9IGNsZWFyTGhzT2JzZXJ2ZWRUeXBlQml0czsKKyAgICAgICAg
Yml0cyB8PSB0eXBlLmJpdHMoKSA8PCBsaHNPYnNlcnZlZFR5cGVTaGlmdDsKKyAgICAgICAgbV9i
aXRzID0gYml0czsKKyAgICAgICAgQVNTRVJUKGxoc09ic2VydmVkVHlwZSgpID09IHR5cGUpOwor
ICAgIH0KKworICAgIHZvaWQgc2V0UmhzT2JzZXJ2ZWRUeXBlKE9ic2VydmVkVHlwZSB0eXBlKQor
ICAgIHsgCisgICAgICAgIHVpbnQzMl90IGJpdHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0g
Y2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRzOworICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8
IHJoc09ic2VydmVkVHlwZVNoaWZ0OworICAgICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBB
U1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7CisgICAgfQorCisgICAgYm9vbCB0b29r
U3BlY2lhbEZhc3RQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgc3BlY2lhbEZhc3RQYXRo
Qml0OyB9CisKKyAgICBib29sIGRpZE9ic2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhh
c0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9Cisg
ICAgYm9vbCBkaWRPYnNlcnZlRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWda
ZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OZWda
ZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQor
ICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KE5lZ1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3Qg
eyByZXR1cm4gaGFzQml0cyhOb25OdW1iZXIpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlSW50MzJP
dmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KKyAgICBi
b29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1
Mk92ZXJmbG93KTsgfQorCisgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7
IHNldEJpdChOb25OZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJv
RG91YmxlKCkgeyBzZXRCaXQoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICB2b2lkIHNldE9ic2VydmVk
Tm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9uTnVtYmVyKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRJ
bnQzMk92ZXJmbG93KCkgeyBzZXRCaXQoSW50MzJPdmVyZmxvdyk7IH0KKyAgICB2b2lkIHNldE9i
c2VydmVkSW50NTJPdmVyZmxvdygpIHsgc2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2
b2lkKiBhZGRyZXNzT2ZCaXRzKCkgeyByZXR1cm4gJm1fYml0czsgfQorCisgICAgdm9pZCBkZXRl
Y3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlz
SW50MzIoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgIG1fYml0cyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxv
dyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIG1fYml0cyB8PSBOb25OdW1iZXI7CisgICAgfQorCisgICAg
dm9pZCBsaHNTYXdJbnQzMigpIHsgc2V0TGhzT2JzZXJ2ZWRUeXBlKGxoc09ic2VydmVkVHlwZSgp
LndpdGhJbnQzMigpKTsgfQorICAgIHZvaWQgbGhzU2F3TnVtYmVyKCkgeyBzZXRMaHNPYnNlcnZl
ZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJlcigpKTsgfQorICAgIHZvaWQgbGhzU2F3
Tm9uTnVtYmVyKCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5v
bk51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3SW50MzIoKSB7IHNldFJoc09ic2VydmVkVHlw
ZShyaHNPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKSk7IH0KKyAgICB2b2lkIHJoc1Nhd051bWJl
cigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhOdW1iZXIoKSk7
IH0KKyAgICB2b2lkIHJoc1Nhd05vbk51bWJlcigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09i
c2VydmVkVHlwZSgpLndpdGhOb25OdW1iZXIoKSk7IH0KKworICAgIHZvaWQgb2JzZXJ2ZUxIU0Fu
ZFJIUyhKU1ZhbHVlIGxocywgSlNWYWx1ZSByaHMpCisgICAgeworICAgICAgICBBcml0aFByb2Zp
bGUgbmV3UHJvZmlsZSA9ICp0aGlzOworICAgICAgICBpZiAobGhzLmlzTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIGlmIChsaHMuaXNJbnQzMigpKQorICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUu
bGhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdQcm9m
aWxlLmxoc1Nhd051bWJlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5ld1Byb2Zp
bGUubGhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAgaWYgKHJocy5pc051bWJlcigpKSB7Cisg
ICAgICAgICAgICBpZiAocmhzLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICBuZXdQcm9maWxl
LnJoc1Nhd0ludDMyKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3UHJv
ZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBuZXdQcm9m
aWxlLnJoc1Nhd05vbk51bWJlcigpOworCisgICAgICAgIG1fYml0cyA9IG5ld1Byb2ZpbGUuYml0
cygpOworICAgIH0KKworI2lmIEVOQUJMRShKSVQpICAgIAorICAgIC8vIFNldHMgKEludDMyT3Zl
cmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUp
IGlmIGl0IHNlZXMgYQorICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBh
IG5vbi1udW1iZXIuCisgICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJz
JiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAg
ICAKKyAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1pl
cm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKS4KKyAgICBib29sIHNob3VsZEVtaXRTZXREb3VibGUo
KSBjb25zdDsKKyAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7CisgICAgCisg
ICAgLy8gU2V0cyBOb25OdW1iZXIuCisgICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVs
cGVycyYpOworICAgIGJvb2wgc2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0OworI2VuZGlm
IC8vIEVOQUJMRShKSVQpCisKKyAgICB1aW50MzJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9i
aXRzOyB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJl
dHVybiBtX2JpdHMgJiBtYXNrOyB9CisgICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9iaXRz
IHw9IG1hc2s7IH0KKworICAgIHVpbnQzMl90IG1fYml0cyB7IDAgfTsgLy8gV2UgdGFrZSBjYXJl
IHRvIHVwZGF0ZSBtX2JpdHMgb25seSBpbiBhIHNpbmdsZSBvcGVyYXRpb24uIFdlIGRvbid0IGV2
ZXIgc3RvcmUgYW4gaW5jb25zaXN0ZW50IGJpdCByZXByZXNlbnRhdGlvbiB0byBpdC4KK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiwgY29uc3QgSlNDOjpBcml0aFByb2ZpbGUmKTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKIAorI2luY2x1ZGUgIkFyaXRo
UHJvZmlsZS5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkJ5
dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVVc2VEZWYuaCIKQEAgLTQ1LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJJbmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJJbnRlcnBy
ZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1
ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNM
ZXhpY2FsRW52aXJvbm1lbnQuaCIKQEAgLTc2Nyw3ICs3NjksNyBAQCB2b2lkIENvZGVCbG9jazo6
ZHVtcFJhcmVDYXNlUHJvZmlsZShQcmluCiAgICAgb3V0LnByaW50KG5hbWUsIHByb2ZpbGUtPm1f
Y291bnRlcik7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpkdW1wUmVzdWx0UHJvZmlsZShQcmludFN0
cmVhbSYgb3V0LCBSZXN1bHRQcm9maWxlKiBwcm9maWxlLCBib29sJiBoYXNQcmludGVkUHJvZmls
aW5nKQordm9pZCBDb2RlQmxvY2s6OmR1bXBBcml0aFByb2ZpbGUoUHJpbnRTdHJlYW0mIG91dCwg
QXJpdGhQcm9maWxlKiBwcm9maWxlLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKQogewogICAg
IGlmICghcHJvZmlsZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTc2Nyw3ICsxNzY5LDcgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICBkdW1wUmFyZUNhc2VQcm9maWxlKG91dCwg
InJhcmUgY2FzZTogIiwgcmFyZUNhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24p
LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICB7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIGR1bXBSZXN1bHRQcm9maWxlKG91dCwgcmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgbG9jYXRpb24pLCBoYXNQcmludGVkUHJv
ZmlsaW5nKTsKKyAgICAgICAgZHVtcEFyaXRoUHJvZmlsZShvdXQsIGFyaXRoUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgfQogICAg
IAogI2lmIEVOQUJMRShERkdfSklUKQpAQCAtMzAwMCw2ICszMDAyLDU5IEBAIFN0cnVjdHVyZVN0
dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmYKICAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRk
KGFjY2Vzc1R5cGUpOwogfQogCitKSVRBZGRJQyogQ29kZUJsb2NrOjphZGRKSVRBZGRJQygpCit7
CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9h
ZGRJQ3MuYWRkKCk7Cit9CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBl
cy5oPgorCit2b2lkIENvZGVCbG9jazo6ZHVtcEpJVEFkZElDU3RhdHMoKQoreworICAgIHJldHVy
bjsKKworICAgIC8qCisgICAgZG91YmxlIHNpemUgPSAwLjA7CisgICAgZG91YmxlIG91dE9mTGlu
ZSA9IDAuMDsKKyAgICBhdXRvIGZ1bmMgPSBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSAtPiBi
b29sIHsKKyAgICAgICAgZm9yIChKSVRBZGRJQyogYWRkSUMgOiBjb2RlQmxvY2stPm1fYWRkSUNz
KSB7CisgICAgICAgICAgICArK3NpemU7CisgICAgICAgICAgICBpZiAoYWRkSUMtPm1fY29kZSkK
KyAgICAgICAgICAgICAgICArK291dE9mTGluZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfTsKKyAgICB2bSgpLT5oZWFwLmZvckVhY2hDb2RlQmxvY2soZnVuYyk7Cisg
ICAgYXV0byBwaWQgPSBnZXRwaWQoKTsKKyAgICBkYXRhTG9nKCJQSUQ6ICIsIHBpZCwgIiBDb2Rl
QmxvY2sgaGFzIG91dE9mTGluZSByYXRpbzogIiwgb3V0T2ZMaW5lL3NpemUsICJcbiIpOworICAg
IGRhdGFMb2coIlBJRDogIiwgcGlkLCAiIFRvdGFsIG51bSBhZGQgSUNzOiIsIHNpemUsICIuIFRv
dGFsIG51bSBvdXQgb2YgbGluZTogIiwgb3V0T2ZMaW5lLCAiXG4iKTsKKyAgICAqLworCisgICAg
c3RhdGljIGRvdWJsZSBwZWFrU2l6ZSA9IDAuMDsKKyAgICBkb3VibGUgc2l6ZSA9IDAuMDsKKyAg
ICBkb3VibGUgbnVtQWRkcyA9IDAuMDsKKyAgICBzaXplX3Qgc21hbGxlc3RTaXplID0gVUlOVF9N
QVg7CisgICAgc2l6ZV90IGxhcmdlc3RTaXplID0gMDsKKyAgICBhdXRvIGZ1bmMgPSBbJl0gKENv
ZGVCbG9jayogY29kZUJsb2NrKSAtPiBib29sIHsKKyAgICAgICAgZm9yIChKSVRBZGRJQyogYWRk
SUMgOiBjb2RlQmxvY2stPm1fYWRkSUNzKSB7CisgICAgICAgICAgICArK251bUFkZHM7CisgICAg
ICAgICAgICBzaXplICs9IGFkZElDLT5jb2RlU2l6ZSgpOworICAgICAgICAgICAgbGFyZ2VzdFNp
emUgPSBzdGQ6Om1heChhZGRJQy0+Y29kZVNpemUoKSwgbGFyZ2VzdFNpemUpOworICAgICAgICAg
ICAgc21hbGxlc3RTaXplID0gc3RkOjptaW4oYWRkSUMtPmNvZGVTaXplKCksIHNtYWxsZXN0U2l6
ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdm0oKS0+
aGVhcC5mb3JFYWNoQ29kZUJsb2NrKGZ1bmMpOworICAgIHBlYWtTaXplID0gc3RkOjptYXgoc2l6
ZSwgcGVha1NpemUpOworICAgIGF1dG8gcGlkID0gZ2V0cGlkKCk7CisgICAgZGF0YUxvZygiUElE
OiAiLCBwaWQsICIgQ29kZUJsb2NrIGhhcyBzaXplIHJhdGlvOiAiLCBzaXplL251bUFkZHMsICJc
biIpOworICAgIGRhdGFMb2coIlBJRDogIiwgcGlkLCAiIFRvdGFsIG51bSBhZGQgSUNzOiIsIG51
bUFkZHMsICIuIFRvdGFsIG51bSBzaXplOiAiLCBzaXplLCAiXG4iKTsKKyAgICBkYXRhTG9nKCJQ
SUQ6ICIsIHBpZCwgIiBQZWFrIHNpemU6ICIsIHBlYWtTaXplLCAiXG4iKTsKKyAgICBkYXRhTG9n
KCJQSUQ6ICIsIHBpZCwgIiBsYXJnZXN0IHNpemU6IiwgbGFyZ2VzdFNpemUsICIgU21hbGxlc3Qg
c2l6ZToiLCBzbWFsbGVzdFNpemUsICAiXG4iKTsKK30KKwogU3RydWN0dXJlU3R1YkluZm8qIENv
ZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKICAgICBmb3Ig
KFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7CkBAIC0zMDQ2LDEx
ICszMTAxLDYgQEAgdm9pZCBDb2RlQmxvY2s6OnJlc2V0SklURGF0YSgpCiAgICAgLy8gV2UgY2Fu
IGNsZWFyIHRoaXMgYmVjYXVzZSB0aGUgREZHJ3MgcXVlcmllcyB0byB0aGVzZSBkYXRhIHN0cnVj
dHVyZXMgYXJlIGd1YXJkZWQgYnkgd2hldGhlcgogICAgIC8vIHRoZXJlIGlzIEpJVCBjb2RlLgog
ICAgIG1fcmFyZUNhc2VQcm9maWxlcy5jbGVhcigpOwotICAgIAotICAgIC8vIFdlIGNhbiBjbGVh
ciB0aGVzZSBiZWNhdXNlIHRoZSBERkcgb25seSBhY2Nlc3NlcyBtZW1iZXJzIG9mIHRoaXMgZGF0
YSBzdHJ1Y3R1cmUgd2hlbgotICAgIC8vIGhvbGRpbmcgdGhlIGxvY2sgb3IgYWZ0ZXIgcXVlcnlp
bmcgd2hldGhlciB3ZSBoYXZlIEpJVCBjb2RlLgotICAgIG1fcmVzdWx0UHJvZmlsZXMuY2xlYXIo
KTsKLSAgICBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAgPSBudWxscHRy
OwogfQogI2VuZGlmCiAKQEAgLTMyODAsNyArMzMzMCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpzaHJp
bmtUb0ZpdChTaHJpbmtNb2RlIHMKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xv
Y2spOwogCiAgICAgbV9yYXJlQ2FzZVByb2ZpbGVzLnNocmlua1RvRml0KCk7Ci0gICAgbV9yZXN1
bHRQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwogICAgIAogICAgIGlmIChzaHJpbmtNb2RlID09IEVh
cmx5U2hyaW5rKSB7CiAgICAgICAgIG1fY29uc3RhbnRSZWdpc3RlcnMuc2hyaW5rVG9GaXQoKTsK
QEAgLTQxNTYsMTEgKzQyMDUsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVlUHJvZmlsZXMo
KQogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHByb2ZpbGUgPSByYXJlQ2FzZVByb2ZpbGUoaSk7
CiAgICAgICAgIGRhdGFMb2dGKCIgICBiYyA9ICVkOiAldVxuIiwgcHJvZmlsZS0+bV9ieXRlY29k
ZU9mZnNldCwgcHJvZmlsZS0+bV9jb3VudGVyKTsKICAgICB9Ci0gICAgZGF0YUxvZygiUmVzdWx0
UHJvZmlsZSBmb3IgIiwgKnRoaXMsICI6XG4iKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpOyArK2kpIHsKLSAgICAgICAgY29uc3QgUmVzdWx0
UHJvZmlsZSYgcHJvZmlsZSA9ICpyZXN1bHRQcm9maWxlKGkpOwotICAgICAgICBkYXRhTG9nKCIg
ICBiYyA9ICIsIHByb2ZpbGUuYnl0ZWNvZGVPZmZzZXQoKSwgIjogIiwgcHJvZmlsZSwgIlxuIik7
Ci0gICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShWRVJCT1NFX1ZBTFVFX1BST0ZJTEUpCiAKQEAg
LTQzNjMsNTYgKzQ0MDcsNTYgQEAgdW5zaWduZWQgQ29kZUJsb2NrOjpyYXJlQ2FzZVByb2ZpbGVD
b3VudAogICAgIHJldHVybiAwOwogfQogCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OnJlc3Vs
dFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgaW50
IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlKiBDb2RlQmxvY2s6OmFyaXRoUHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBpZiAoIW1fYnl0ZWNv
ZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRl
eE1hcC0+ZmluZChieXRlY29kZU9mZnNldCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fYnl0ZWNv
ZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZW5kKCkpCisgICAgYXV0byBvcGNvZGVJ
RCA9IHZtKCktPmludGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVtieXRlY29k
ZU9mZnNldF0udS5vcGNvZGUpOworICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKKyAgICBjYXNlIG9w
X2JpdG9yOgorICAgIGNhc2Ugb3BfYml0YW5kOgorICAgIGNhc2Ugb3BfYml0eG9yOgorICAgIGNh
c2Ugb3BfYWRkOgorICAgIGNhc2Ugb3BfbXVsOgorICAgIGNhc2Ugb3Bfc3ViOgorICAgIGNhc2Ug
b3BfZGl2OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVlXTsKLX0K
KyAgICB9CiAKLXVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50
Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIHNwZWNpYWxGYXN0Q2FzZVByb2Zp
bGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOworICAgIElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9ICZpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9mZnNldCAr
IDRdOworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxlKj4oJmluc3RydWN0aW9u
LT51Lm9wZXJhbmQpOwogfQogCi11bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0Q2FzZVBy
b2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxv
Y2tlciwgaW50IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlJiBDb2RlQmxvY2s6OmFyaXRo
UHJvZmlsZUZvclBDKEluc3RydWN0aW9uKiBwYykKIHsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9m
aWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZz
ZXQpOwotICAgIGlmICghcHJvZmlsZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHBy
b2ZpbGUtPnNwZWNpYWxGYXN0UGF0aENvdW50KCk7CisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQp
IHsKKyAgICAgICAgQVNTRVJUKHBjID49IGluc3RydWN0aW9ucygpLmJlZ2luKCkgJiYgcGMgPCBp
bnN0cnVjdGlvbnMoKS5lbmQoKSk7CisgICAgICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRl
cnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpOworICAgICAgICBzd2l0Y2ggKG9w
Y29kZUlEKSB7CisgICAgICAgIGNhc2Ugb3BfYml0b3I6CisgICAgICAgIGNhc2Ugb3BfYml0YW5k
OgorICAgICAgICBjYXNlIG9wX2JpdHhvcjoKKyAgICAgICAgY2FzZSBvcF9hZGQ6CisgICAgICAg
IGNhc2Ugb3BfbXVsOgorICAgICAgICBjYXNlIG9wX3N1YjoKKyAgICAgICAgY2FzZSBvcF9kaXY6
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICpiaXR3aXNl
X2Nhc3Q8QXJpdGhQcm9maWxlKj4oJnBjWzRdLnUub3BlcmFuZCk7CiB9CiAKIGJvb2wgQ29kZUJs
b2NrOjpjb3VsZFRha2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KQogewogICAg
IGlmICghaGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZUNvdW50ID0gc3BlY2lhbEZhc3RDYXNlUHJvZmls
ZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIHJldHVybiBzcGVj
aWFsRmFzdENhc2VDb3VudCA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3Vu
dCgpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJlc3VsdFByb2ZpbGUo
aW50IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1f
bG9jayk7Ci0gICAgcmV0dXJuIGVuc3VyZVJlc3VsdFByb2ZpbGUobG9ja2VyLCBieXRlY29kZU9m
ZnNldCk7Ci19Ci0KLVJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6ZW5zdXJlUmVzdWx0UHJvZmls
ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9mZnNldCkK
LXsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2Rl
T2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmICghcHJvZmlsZSkgewotICAg
ICAgICBtX3Jlc3VsdFByb2ZpbGVzLmFwcGVuZChSZXN1bHRQcm9maWxlKGJ5dGVjb2RlT2Zmc2V0
KSk7Ci0gICAgICAgIHByb2ZpbGUgPSAmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCk7Ci0gICAgICAg
IEFTU0VSVCgmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCkgPT0gJm1fcmVzdWx0UHJvZmlsZXNbbV9y
ZXN1bHRQcm9maWxlcy5zaXplKCkgLSAxXSk7Ci0gICAgICAgIGlmICghbV9ieXRlY29kZU9mZnNl
dFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwKQotICAgICAgICAgICAgbV9ieXRlY29kZU9mZnNldFRv
UmVzdWx0UHJvZmlsZUluZGV4TWFwID0gc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZU9mZnNldFRv
UmVzdWx0UHJvZmlsZUluZGV4TWFwPigpOwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1
bHRQcm9maWxlSW5kZXhNYXAtPmFkZChieXRlY29kZU9mZnNldCwgbV9yZXN1bHRQcm9maWxlcy5z
aXplKCkgLSAxKTsKLSAgICB9Ci0gICAgcmV0dXJuIHByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxl
KiBwcm9maWxlID0gYXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQp
OworICAgIGlmICghcHJvZmlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBw
cm9maWxlLT50b29rU3BlY2lhbEZhc3RQYXRoKCk7CiB9CiAKICNpZiBFTkFCTEUoSklUKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24g
MjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSGFuZGxlckluZm8uaCIK
ICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKKyNpbmNsdWRl
ICJKSVRNYXRoSUNGb3J3YXJkcy5oIgogI2luY2x1ZGUgIkpJVFdyaXRlQmFycmllci5oIgogI2lu
Y2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkBAIC03OSw2ICs4
MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSklUQWRk
R2VuZXJhdG9yOwogY2xhc3MgSlNNb2R1bGVFbnZpcm9ubWVudDsKIGNsYXNzIExMSW50T2Zmc2V0
c0V4dHJhY3RvcjsKIGNsYXNzIFBDVG9Db2RlT3JpZ2luTWFwOwpAQCAtODgsNiArOTAsOCBAQCBj
bGFzcyBUeXBlTG9jYXRpb247CiAKIGVudW0gY2xhc3MgQWNjZXNzVHlwZSA6IGludDhfdDsKIAor
c3RydWN0IEFyaXRoUHJvZmlsZTsKKwogdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0cnVj
dHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9NYXA7CiAK
IGVudW0gUmVvcHRpbWl6YXRpb25Nb2RlIHsgRG9udENvdW50UmVvcHRpbWl6YXRpb24sIENvdW50
UmVvcHRpbWl6YXRpb24gfTsKQEAgLTI0NSw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgCiAjaWYg
RU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNjZXNzVHlw
ZSk7CisgICAgSklUQWRkSUMqIGFkZEpJVEFkZElDKCk7CisgICAgdm9pZCBkdW1wSklUQWRkSUNT
dGF0cygpOwogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvQmVn
aW4oKSB7IHJldHVybiBtX3N0dWJJbmZvcy5iZWdpbigpOyB9CiAgICAgQmFnPFN0cnVjdHVyZVN0
dWJJbmZvPjo6aXRlcmF0b3Igc3R1YkluZm9FbmQoKSB7IHJldHVybiBtX3N0dWJJbmZvcy5lbmQo
KTsgfQogICAgIApAQCAtNDQwLDEzICs0NDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB2
YWx1ZSA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpOwogICAgIH0K
IAotICAgIFJlc3VsdFByb2ZpbGUqIGVuc3VyZVJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2RlT2Zm
c2V0KTsKLSAgICBSZXN1bHRQcm9maWxlKiBlbnN1cmVSZXN1bHRQcm9maWxlKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIG51bWJl
ck9mUmVzdWx0UHJvZmlsZXMoKSB7IHJldHVybiBtX3Jlc3VsdFByb2ZpbGVzLnNpemUoKTsgfQot
ICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgaW50IGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHVuc2lnbmVk
IHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIHNwZWNp
YWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNl
dCk7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQg
Ynl0ZWNvZGVPZmZzZXQpOworICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlRm9yUEMoSW5z
dHJ1Y3Rpb24qKTsKIAogICAgIGJvb2wgY291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRl
Y29kZU9mZnNldCk7CiAKQEAgLTk1Nyw3ICs5NTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVt
cFZhbHVlUHJvZmlsaW5nKFByaW50U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgYm9vbCYg
aGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgdm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRT
dHJlYW0mLCBjb25zdCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsK
ICAgICB2b2lkIGR1bXBSYXJlQ2FzZVByb2ZpbGUoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKiBu
YW1lLCBSYXJlQ2FzZVByb2ZpbGUqLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKLSAgICB2
b2lkIGR1bXBSZXN1bHRQcm9maWxlKFByaW50U3RyZWFtJiwgUmVzdWx0UHJvZmlsZSosIGJvb2wm
IGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgIHZvaWQgZHVtcEFyaXRoUHJvZmlsZShQcmludFN0
cmVhbSYsIEFyaXRoUHJvZmlsZSosIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogCiAgICAg
Ym9vbCBzaG91bGRWaXNpdFN0cm9uZ2x5KCk7CiAgICAgYm9vbCBzaG91bGRKZXR0aXNvbkR1ZVRv
V2Vha1JlZmVyZW5jZSgpOwpAQCAtMTAxMyw2ICsxMDE0LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoSklUKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpc3RlckF0T2Zmc2V0TGlzdD4gbV9jYWxs
ZWVTYXZlUmVnaXN0ZXJzOwogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7
CisgICAgQmFnPEpJVEFkZElDPiBtX2FkZElDczsKICAgICBCYWc8QnlWYWxJbmZvPiBtX2J5VmFs
SW5mb3M7CiAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9jYWxsTGlua0luZm9zOwogICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxDYWxsTGlua0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5r
SW5mbz4+IG1faW5jb21pbmdDYWxsczsKQEAgLTEwMjksOSArMTAzMSw2IEBAIHByaXZhdGU6CiAg
ICAgUmVmQ291bnRlZEFycmF5PFZhbHVlUHJvZmlsZT4gbV9hcmd1bWVudFZhbHVlUHJvZmlsZXM7
CiAgICAgUmVmQ291bnRlZEFycmF5PFZhbHVlUHJvZmlsZT4gbV92YWx1ZVByb2ZpbGVzOwogICAg
IFNlZ21lbnRlZFZlY3RvcjxSYXJlQ2FzZVByb2ZpbGUsIDg+IG1fcmFyZUNhc2VQcm9maWxlczsK
LSAgICBTZWdtZW50ZWRWZWN0b3I8UmVzdWx0UHJvZmlsZSwgOD4gbV9yZXN1bHRQcm9maWxlczsK
LSAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIHVuc2lnbmVkLCBJbnRIYXNoPHVuc2lnbmVk
PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IEJ5dGVjb2Rl
T2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVj
b2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA+IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3Vs
dFByb2ZpbGVJbmRleE1hcDsKICAgICBSZWZDb3VudGVkQXJyYXk8QXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZT4gbV9hcnJheUFsbG9jYXRpb25Qcm9maWxlczsKICAgICBBcnJheVByb2ZpbGVWZWN0b3Ig
bV9hcnJheVByb2ZpbGVzOwogICAgIFJlZkNvdW50ZWRBcnJheTxPYmplY3RBbGxvY2F0aW9uUHJv
ZmlsZT4gbV9vYmplY3RBbGxvY2F0aW9uUHJvZmlsZXM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJp
dGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpAQCAtNjUsOCArNjYsOCBAQCB2b2lkIE1l
dGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6OmVtaXRSCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgICAgIAotICAgIGNhc2UgUmVzdWx0UHJvZmlsZVJlYWR5OiB7Ci0gICAgICAgIHUucmVz
dWx0UHJvZmlsZS0+ZW1pdERldGVjdE51bWVyaWNuZXNzKGppdCwgcmVncywgRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzKTsKKyAgICBjYXNlIEFyaXRoUHJvZmlsZVJlYWR5OiB7CisgICAgICAgIHUuYXJp
dGhQcm9maWxlLT5lbWl0RGV0ZWN0TnVtZXJpY25lc3Moaml0LCByZWdzLCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpOwogICAgICAgICByZXR1cm47CiAgICAgfSB9CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDQ2FsbEhlbHBlcnM7
CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleTsKLXN0
cnVjdCBSZXN1bHRQcm9maWxlOworc3RydWN0IEFyaXRoUHJvZmlsZTsKIHN0cnVjdCBWYWx1ZVBy
b2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgewpAQCAtNTksMTEg
KzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQogICAg
IAotICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoUmVzdWx0UHJvZmlsZSogcHJvZmls
ZSkKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKEFyaXRoUHJvZmlsZSogcHJvZmls
ZSkKICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7Ci0gICAgICAgICAgICBtX2tpbmQgPSBS
ZXN1bHRQcm9maWxlUmVhZHk7Ci0gICAgICAgICAgICB1LnJlc3VsdFByb2ZpbGUgPSBwcm9maWxl
OworICAgICAgICAgICAgbV9raW5kID0gQXJpdGhQcm9maWxlUmVhZHk7CisgICAgICAgICAgICB1
LmFyaXRoUHJvZmlsZSA9IHByb2ZpbGU7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9r
aW5kID0gTm9uZTsKICAgICB9CkBAIC03OSwxNCArNzksMTQgQEAgcHJpdmF0ZToKICAgICBlbnVt
IEtpbmQgewogICAgICAgICBOb25lLAogICAgICAgICBSZWFkeSwKLSAgICAgICAgUmVzdWx0UHJv
ZmlsZVJlYWR5LAorICAgICAgICBBcml0aFByb2ZpbGVSZWFkeSwKICAgICAgICAgTGF6eU9wZXJh
bmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5kOwogICAgIHVuaW9uIHsKICAgICAgICAg
VmFsdWVQcm9maWxlKiBwcm9maWxlOwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlOworICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZTsKICAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrOwogICAgICAgICAgICAgdW5zaWdu
ZWQgYnl0ZWNvZGVPZmZzZXQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcwICszMSw0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jaWYgRU5BQkxFKEpJVCkKLXZvaWQg
UmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYgaml0LCBK
U1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCi17Ci0gICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKLSAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25O
b3RJbnQzMihyZWdzLCBtb2RlKTsKLSAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9yZSBwcmVj
aXNlIGhlcmUuCi0gICAgZW1pdFNldERvdWJsZShqaXQpOwotICAgIENDYWxsSGVscGVyczo6SnVt
cCBkb25lID0gaml0Lmp1bXAoKTsKLSAgICBub3REb3VibGUubGluaygmaml0KTsKLSAgICBlbWl0
U2V0Tm9uTnVtYmVyKGppdCk7Ci0gICAgZG9uZS5saW5rKCZqaXQpOwotICAgIGlzSW50MzIubGlu
aygmaml0KTsKLX0KLQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVs
cGVycyYgaml0KQotewotICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJl
c3VsdFByb2ZpbGU6OkludDMyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93
IHwgUmVzdWx0UHJvZmlsZTo6TmVnWmVyb0RvdWJsZSB8IFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1pl
cm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygp
KSk7Ci19Ci0KLXZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBl
cnMmIGppdCkKLXsKLSAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRy
ZXNzT2ZGbGFncygpKSk7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCi0KLW5hbWVzcGFjZSBXVEYgewotICAgIAotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQot
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IFJlc3VsdFByb2ZpbGUm
IHByb2ZpbGUpCi17Ci0gICAgY29uc3QgY2hhciogc2VwYXJhdG9yID0gIiI7Ci0KLSAgICBpZiAo
IXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJJbnQz
MiIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYg
KHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnBy
aW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVy
b0RvdWJsZSgpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsK
LSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJv
ZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiTm9u
TnVtYmVyIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICAgICAg
b3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3co
KSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7Ci0gICAgICAgICAg
ICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuc3Bl
Y2lhbEZhc3RQYXRoQ291bnQoKSkgewotICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3Qg
cGF0aDogIik7Ci0gICAgICAgIG91dC5wcmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50
KCkpOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAyMDMzNTEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwOSw4OCArMjA5LDYgQEAgaW5saW5lIGludCBnZXRSYXJlQ2FzZVByb2ZpbGVC
eXRlY29kZU9mZgogICAgIHJldHVybiByYXJlQ2FzZVByb2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQ7
CiB9CiAKLXN0cnVjdCBSZXN1bHRQcm9maWxlIHsKLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0
IGludCBudW1iZXJPZkZsYWdCaXRzID0gNTsKLQotcHVibGljOgotICAgIFJlc3VsdFByb2ZpbGUo
aW50IGJ5dGVjb2RlT2Zmc2V0KQotICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyhi
eXRlY29kZU9mZnNldCA8PCBudW1iZXJPZkZsYWdCaXRzKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KCgoYnl0ZWNvZGVPZmZzZXQgPDwgbnVtYmVyT2ZGbGFnQml0cykgPj4gbnVtYmVyT2ZGbGFnQml0
cykgPT0gYnl0ZWNvZGVPZmZzZXQpOwotICAgIH0KLQotICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRz
IHsKLSAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKLSAgICAgICAgTmVnWmVyb0Rv
dWJsZSAgICA9IDEgPDwgMSwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKLSAg
ICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKLSAgICAgICAgSW50NTJPdmVyZmxvdyAg
ICA9IDEgPDwgNCwKLSAgICB9OwotCi0gICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7IH0KLSAg
ICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lh
bEZhc3RQYXRoQ291bnQ7IH0KLQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3Qg
eyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51
bWJlcik7IH0KLSAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2Jz
ZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9E
b3VibGUpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0
dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOb25OdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KLSAgICBib29sIGRpZE9i
c2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93
KTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9Ci0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVy
b0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgdm9pZCBzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQotICAgIHZvaWQg
c2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9Ci0gICAgdm9pZCBz
ZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQotICAg
IHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7
IH0KLQotICAgIHZvaWQqIGFkZHJlc3NPZkZsYWdzKCkgeyByZXR1cm4gJm1fYnl0ZWNvZGVPZmZz
ZXRBbmRGbGFnczsgfQotICAgIHZvaWQqIGFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkg
eyByZXR1cm4gJm1fc3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KLSAgICAKLSAgICB2b2lkIGRldGVj
dE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUuaXNJ
bnQzMigpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodmFsdWUuaXNOdW1iZXIo
KSkgewotICAgICAgICAgICAgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IEludDMyT3ZlcmZs
b3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbV9ieXRlY29kZU9mZnNldEFu
ZEZsYWdzIHw9IE5vbk51bWJlcjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoSklUKSAgICAKLSAgICAv
LyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlKSBpZiBpdCBzZWVzIGEKLSAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVt
YmVyIGlmIGl0IHNlZXMgYSBub24tbnVtYmVyLgotICAgIHZvaWQgZW1pdERldGVjdE51bWVyaWNu
ZXNzKENDYWxsSGVscGVycyYsIEpTVmFsdWVSZWdzLCBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRh
Z1JlZ2lzdGVycyk7Ci0gICAgCi0gICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3Zl
cmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkuCi0gICAgdm9pZCBlbWl0
U2V0RG91YmxlKENDYWxsSGVscGVycyYpOwotICAgIAotICAgIC8vIFNldHMgTm9uTnVtYmVyLgot
ICAgIHZvaWQgZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmKTsKLSNlbmRpZiAvLyBFTkFC
TEUoSklUKQotCi1wcml2YXRlOgotICAgIGJvb2wgaGFzQml0cyhpbnQgbWFzaykgY29uc3QgeyBy
ZXR1cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzICYgbWFzazsgfQotICAgIHZvaWQgc2V0Qml0
KGludCBtYXNrKSB7IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBtYXNrOyB9Ci0KLSAgICBp
bnQgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzOwotICAgIHVuc2lnbmVkIG1fc3BlY2lhbEZhc3RQ
YXRoQ291bnQgeyAwIH07Ci19OwotCi1pbmxpbmUgaW50IGdldFJlc3VsdFByb2ZpbGVCeXRlY29k
ZU9mZnNldChSZXN1bHRQcm9maWxlKiBwcm9maWxlKQotewotICAgIHJldHVybiBwcm9maWxlLT5i
eXRlY29kZU9mZnNldCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotbmFtZXNwYWNlIFdU
RiB7Ci0KLXZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IEpTQzo6UmVzdWx0
UHJvZmlsZSYpOwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQogI2VuZGlmIC8vIFZhbHVlUHJvZmls
ZV9oCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNs
dWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJCeXRlY29kZUxpdmVuZXNzQW5h
bHlzaXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAtMTU5OCw3ICsxNTk5LDcgQEAg
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRCaW5hcgogCiAgICAgaWYgKG9wY29k
ZUlEID09IG9wX2JpdG9yIHx8IG9wY29kZUlEID09IG9wX2JpdGFuZCB8fCBvcGNvZGVJRCA9PSBv
cF9iaXR4b3IgfHwKICAgICAgICAgb3Bjb2RlSUQgPT0gb3BfYWRkIHx8IG9wY29kZUlEID09IG9w
X211bCB8fCBvcGNvZGVJRCA9PSBvcF9zdWIgfHwgb3Bjb2RlSUQgPT0gb3BfZGl2KQotICAgICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodHlwZXMudG9JbnQoKSk7CisgICAgICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChBcml0aFByb2ZpbGUodHlwZXMuZmlyc3QoKSwgdHlwZXMuc2Vjb25kKCkp
LmJpdHMoKSk7CiAKICAgICByZXR1cm4gZHN0OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1
ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRlICJDYWxsTGlua1N0YXR1cy5oIgpA
QCAtOTEwLDI5ICs5MTEsMjggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBub2RlOwog
CiAgICAgICAgIHsKLSAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5s
aW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIFJlc3Vs
dFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxv
Y2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIG1fY3VycmVudEluZGV4
KTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7CisgICAgICAgICAgICBBcml0aFBy
b2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAgICAg
ICAgaWYgKGFyaXRoUHJvZmlsZSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3Ao
KSkgewogICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBBcml0aFN1YjoKICAgICAgICAgICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAg
ICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25O
dW1iZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2
ZU5vbk51bWJlcigpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhO
b2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93
KCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1
Mk92ZXJmbG93KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5v
ZGVNYXlPdmVyZmxvd0ludDUyKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2Zp
bGUtPmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICAg
ICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIE92ZXJmbG93KSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3Mo
Tm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVa
ZXJvKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5l
Z1plcm9Eb3VibGUoKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRT
aXRlKG1fY3VycmVudEluZGV4LCBOZWdhdGl2ZVplcm8pKQogICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwotICAgICAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAg
ICAgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVz
dWx0KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVO
b25OdW1iZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2Jz
ZXJ2ZU5vbk51bWJlcigpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFn
cyhOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R3JhcGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0OCw5ICsxNTQ4LDggQEAgTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6bWV0aAogICAgICAgICAgICAgcmV0dXJuIHByb2Zp
bGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1h
bnRpYy5ieXRlY29kZUluZGV4KTsKICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIENv
bmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7CiAgICAgICAg
ICAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewotICAg
ICAgICAgICAgICAgIGlmIChSZXN1bHRQcm9maWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5y
ZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBub2RlLT5vcmlnaW4uc2VtYW50
aWMuYnl0ZWNvZGVJbmRleCkpCisgICAgICAgICAgICAgICAgaWYgKEFyaXRoUHJvZmlsZSogcmVz
dWx0ID0gcHJvZmlsZWRCbG9jay0+YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYwNCw3ICs2MDQsNyBAQCB2b2lkIEpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjaygp
CiAgICAgSGFuZGxlckluZm8qIGV4Y2VwdGlvbkhhbmRsZXI7CiAgICAgYm9vbCB3aWxsQ2F0Y2hF
eGNlcHRpb24gPSBtX2dyYXBoLndpbGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG1fc3Bl
Y3VsYXRpdmUtPm1fY3VycmVudE5vZGUtPm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBl
eGNlcHRpb25IYW5kbGVyKTsgCiAgICAgaWYgKHdpbGxDYXRjaEV4Y2VwdGlvbikgewotICAgICAg
ICB1bnNpZ25lZCBzdHJlYW1JbmRleCA9IG1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFt
SW5kZXggIT0gVUlOVF9NQVggPyBtX3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4
IDogbV9zcGVjdWxhdGl2ZS0+bV9zdHJlYW0tPnNpemUoKTsKKyAgICAgICAgdW5zaWduZWQgc3Ry
ZWFtSW5kZXggPSBtX3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4ID8gKm1fc3Bl
Y3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggOiBtX3NwZWN1bGF0aXZlLT5tX3N0cmVh
bS0+c2l6ZSgpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBoYWRFeGNlcHRpb24gPSBl
bWl0Tm9uUGF0Y2hhYmxlRXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgLy8gV2UgYXNzdW1lIGhl
cmUgdGhhdCB0aGlzIGlzIGNhbGxlZCBhZnRlciBjYWxsT3BlYXJ0aW9uKCkvYXBwZW5kQ2FsbCgp
IGlzIGNhbGxlZC4KICAgICAgICAgYXBwZW5kRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0KEV4Y2Vw
dGlvbkNoZWNrLCBzdHJlYW1JbmRleCwgb3BDYXRjaE9yaWdpbiwgZXhjZXB0aW9uSGFuZGxlciwg
bV9qaXRDb2RlLT5jb21tb24ubGFzdENhbGxTaXRlKCksIGhhZEV4Y2VwdGlvbik7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRo
R2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAg
ICAgICBqaXQtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBtX3N0cmVhbUluZGV4OwogICAgICAg
ICBqaXQtPm1fb3JpZ2luID0gbV9vcmlnaW47CiAgICAgICAgIGdlbmVyYXRlSW50ZXJuYWwoaml0
KTsKLSAgICAgICAgaml0LT5tX291dE9mTGluZVN0cmVhbUluZGV4ID0gVUlOVF9NQVg7CisgICAg
ICAgIGppdC0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9IE51bGxvcHQ7CiAgICAgICAgIGlmICgh
QVNTRVJUX0RJU0FCTEVEKQogICAgICAgICAgICAgaml0LT5tX2ppdC5hYm9ydFdpdGhSZWFzb24o
REZHU2xvd1BhdGhHZW5lcmF0b3JGZWxsVGhyb3VnaCk7CiAgICAgfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIw
MzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSklUQml0WG9yR2Vu
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklURGl2R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUTGVm
dFNoaWZ0R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklU
TXVsR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUUmlnaHRTaGlmdEdlbmVyYXRvci5oIgogI2lu
Y2x1ZGUgIkpJVFN1YkdlbmVyYXRvci5oIgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNj
b3BlZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgog
I2luY2x1ZGUgIldyaXRlQmFycmllckJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CkBAIC0zNjIsNyArMzY0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhH
ZW5lcmF0bwogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcihzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gbGFtYmRhKQogewotICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVu
ZChzdGQ6Om1ha2VfcGFpcihsYW1iZGEsIG1fY3VycmVudE5vZGUpKTsKKyAgICBtX3Nsb3dQYXRo
TGFtYmRhcy5hcHBlbmQoU2xvd1BhdGhMYW1iZGF7IGxhbWJkYSwgbV9jdXJyZW50Tm9kZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG1fc3RyZWFtLT5zaXplKCkpIH0pOwogfQogCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjpydW5TbG93UGF0aEdlbmVyYXRvcnMoUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVy
JiBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIpCkBAIC0zNzEsMTEgKzM3MywxMyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpydW5TbG93UGF0aEdlbmVyYXRvCiAgICAgICAgIHBjVG9Db2RlT3JpZ2lu
TWFwQnVpbGRlci5hcHBlbmRJdGVtKG1faml0LmxhYmVsKCksIHNsb3dQYXRoR2VuZXJhdG9yLT5v
cmlnaW4oKS5zZW1hbnRpYyk7CiAgICAgICAgIHNsb3dQYXRoR2VuZXJhdG9yLT5nZW5lcmF0ZSh0
aGlzKTsKICAgICB9Ci0gICAgZm9yIChhdXRvJiBnZW5lcmF0b3JQYWlyIDogbV9zbG93UGF0aExh
bWJkYXMpIHsKLSAgICAgICAgTm9kZSogY3VycmVudE5vZGUgPSBnZW5lcmF0b3JQYWlyLnNlY29u
ZDsKKyAgICBmb3IgKGF1dG8mIHNsb3dQYXRoTGFtYmRhIDogbV9zbG93UGF0aExhbWJkYXMpIHsK
KyAgICAgICAgTm9kZSogY3VycmVudE5vZGUgPSBzbG93UGF0aExhbWJkYS5tX2N1cnJlbnROb2Rl
OwogICAgICAgICBtX2N1cnJlbnROb2RlID0gY3VycmVudE5vZGU7CisgICAgICAgIG1fb3V0T2ZM
aW5lU3RyZWFtSW5kZXggPSBzbG93UGF0aExhbWJkYS5tX3N0cmVhbUluZGV4OwogICAgICAgICBw
Y1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBjdXJyZW50
Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLSAgICAgICAgZ2VuZXJhdG9yUGFpci5maXJzdCgpOwor
ICAgICAgICBzbG93UGF0aExhbWJkYS5tX2dlbmVyYXRvcigpOworICAgICAgICBtX291dE9mTGlu
ZVN0cmVhbUluZGV4ID0gTnVsbG9wdDsKICAgICB9CiB9CiAKQEAgLTMzNzksMzEgKzMzODMsNzYg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZAogICAgICAgICByaWdo
dFJlZ3MgPSByaWdodC0+anNWYWx1ZVJlZ3MoKTsKICAgICB9CiAKLSAgICBKSVRBZGRHZW5lcmF0
b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCBy
aWdodFJlZ3MsCi0gICAgICAgIGxlZnRGUFIsIHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNo
RlBSKTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgYXV0byBzdGFydCA9
IG1faml0LmxhYmVsKCk7CiAKLSAgICBBU1NFUlQoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKTsKLSAg
ICBnZW4uZW5kSnVtcExpc3QoKS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICBKSVRBZGRJQyog
YWRkSUMgPSBtX2ppdC5jb2RlQmxvY2soKS0+YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8TWF0aElD
R2VuZXJhdGlvblN0YXRlPiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0
aW9uU3RhdGU+OjpjcmVhdGUoKTsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1f
aml0LmdyYXBoKCkuYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVj
b2RlSW5kZXgpOworICAgIGFkZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0
T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBs
ZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsK
IAotICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmbV9qaXQpOworICAgIGJvb2wgZ2Vu
ZXJhdGVkSW5saW5lID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0
aW9uU3RhdGUpOwogCi0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7Cisg
ICAgaWYgKGdlbmVyYXRlZElubGluZSkgeworICAgICAgICBBU1NFUlQoIWFkZElDR2VuZXJhdGlv
blN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMuZW1wdHkoKSk7CiAKLSAgICBpZiAobGVmdE9wZXJhbmQu
aXNDb25zdCgpKSB7Ci0gICAgICAgIGxlZnRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9q
aXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+YXNKU1ZhbHVlKCksIGxlZnRSZWdzKTsKLSAgICB9IGVs
c2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKLSAgICAgICAgcmlnaHRSZWdzID0gcmVz
dWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgp
LCByaWdodFJlZ3MpOwotICAgIH0KKyAgICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBs
YW4sIDQ+IHNhdmVQbGFuczsKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZh
bHNlLCBzYXZlUGxhbnMsIHJlc3VsdFJlZ3MpOwogCi0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgICAgIGF1
dG8gZG9uZSA9IG1faml0LmxhYmVsKCk7CiAKLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJl
c3VsdFJlZ3MpOwotICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgIGFkZFNsb3dQ
YXRoR2VuZXJhdG9yKFs9XSAoKSB7CisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+
bV9zbG93UGF0aEp1bXBzLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlv
blN0YXRlLT5tX3Nsb3dQYXRoU3RhcnQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAgICBh
dXRvIHNsb3dTdGFydCA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgIHNpbGVudFNwaWxs
KHNhdmVQbGFucyk7CisKKyAgICAgICAgICAgIGF1dG8gaW5uZXJMZWZ0UmVncyA9IGxlZnRSZWdz
OworICAgICAgICAgICAgYXV0byBpbm5lclJpZ2h0UmVncyA9IHJpZ2h0UmVnczsKKyAgICAgICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lckxl
ZnRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUobGVm
dENoaWxkLT5hc0pTVmFsdWUoKSwgaW5uZXJMZWZ0UmVncyk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lclJpZ2h0
UmVncyA9IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0
Q2hpbGQtPmFzSlNWYWx1ZSgpLCBpbm5lclJpZ2h0UmVncyk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zaG91bGRTbG93UGF0aFJlcGF0
Y2gpCisgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxs
ID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCByZXN1bHRSZWdzLCBp
bm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgYWRkSUMpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGlubmVyTGVmdFJlZ3Ms
IGlubmVyUmlnaHRSZWdzKTsKKworICAgICAgICAgICAgc2lsZW50RmlsbChzYXZlUGxhbnMpOwor
ICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgIG1faml0Lmp1
bXAoKS5saW5rVG8oZG9uZSwgJm1faml0KTsKKworICAgICAgICAgICAgYXV0byBzbG93RW5kID0g
bV9qaXQubGFiZWwoKTsKKworICAgICAgICAgICAgbV9qaXQuYWRkTGlua1Rhc2soWz1dIChMaW5r
QnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5s
aW5lQ29kZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICAgICAg
ICAgIGFkZElDLT5tX2NvZGVTaXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc2xv
d0VuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yo
c2xvd1N0YXJ0KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsK
KyAgICAgICAgICAgIGxlZnQgPSBKU1ZhbHVlT3BlcmFuZCh0aGlzLCBsZWZ0Q2hpbGQpOworICAg
ICAgICAgICAgbGVmdFJlZ3MgPSBsZWZ0LT5qc1ZhbHVlUmVncygpOworICAgICAgICB9IGVsc2Ug
aWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgIHJpZ2h0ID0gSlNWYWx1
ZU9wZXJhbmQodGhpcywgcmlnaHRDaGlsZCk7CisgICAgICAgICAgICByaWdodFJlZ3MgPSByaWdo
dC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxl
ZnRSZWdzLCByaWdodFJlZ3MpOworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAg
IH0KKworICAgIGF1dG8gZG9uZSA9IG1faml0LmxhYmVsKCk7CisgICAgbV9qaXQuYWRkTGlua1Rh
c2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgIGFkZElDLT5tX2NvZGVT
aXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZG9uZSkuZXhlY3V0YWJsZUFkZHJl
c3MoKSAtIChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRy
ZXNzKCk7CisgICAgfSk7CiAKLSAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5rKCZtX2ppdCk7CiAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICByZXR1cm47CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZp
c2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTM4OCwxMyArMzg4LDE1IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1NwaWxsLCBwbGFucywgSW52
YWxpZEdQUlJlZywgSW52YWxpZEdQUlJlZywgZXhjbHVkZSk7CiAgICAgfQotI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CiAgICAgdm9p
ZCBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoYm9vbCBkb1NwaWxsLCBDb2xsZWN0aW9uVHlw
ZSYgcGxhbnMsIEpTVmFsdWVSZWdzIGV4Y2x1ZGUpCiAgICAgeworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1NwaWxsLCBwbGFucywg
ZXhjbHVkZS50YWdHUFIoKSwgZXhjbHVkZS5wYXlsb2FkR1BSKCkpOwotICAgIH0KKyNlbHNlCisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1NwaWxsLCBwbGFucywgZXhjbHVk
ZS5ncHIoKSk7CiAjZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzaWxlbnRTcGlsbEFsbFJl
Z2lzdGVycyhHUFJSZWcgZXhjbHVkZSwgR1BSUmVnIGV4Y2x1ZGUyID0gSW52YWxpZEdQUlJlZywg
RlBSUmVnIGZwckV4Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQogICAgIHsKQEAgLTEyODUsNiArMTI4
NywxMyBAQCBwdWJsaWM6CiAKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisKKyAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBK
U1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJ
VEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7Cisg
ICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0Lmdwcigp
KTsKKyAgICB9CisKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cih1aWQpKTsK
QEAgLTE3MDIsNiArMTcxMSwxMiBAQCBwdWJsaWM6CiAgICAgfQogI2Vsc2UgLy8gVVNFKEpTVkFM
VUUzMl82NCkKIAorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKSmFpYyBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3Mg
YXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgSklUQWRkSUMqIGFkZElDKQorICAgIHsKKyAgICAgICAg
bV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFy
ZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50
YWdHUFIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIHJlc3VsdC50YWdHUFIo
KSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBh
eWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFn
LCBHUFJSZWcgYXJnMlBheWxvYWQsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiAgICAgewogICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9B
UkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1t
UHRyKHVpZCkpOwpAQCAtMjgzMCw5ICsyODQ1LDE0IEBAIHB1YmxpYzoKICAgICBNaW5pZmllZEdy
YXBoKiBtX21pbmlmaWVkR3JhcGg7CiAgICAgCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxT
bG93UGF0aEdlbmVyYXRvcj4sIDg+IG1fc2xvd1BhdGhHZW5lcmF0b3JzOwotICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8c3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBOb2RlKj4sIDg+IG1fc2xvd1BhdGhMYW1i
ZGFzOworICAgIHN0cnVjdCBTbG93UGF0aExhbWJkYSB7CisgICAgICAgIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBtX2dlbmVyYXRvcjsKKyAgICAgICAgTm9kZSogbV9jdXJyZW50Tm9kZTsKKyAgICAg
ICAgdW5zaWduZWQgbV9zdHJlYW1JbmRleDsKKyAgICB9OworICAgIFZlY3RvcjxTbG93UGF0aExh
bWJkYT4gbV9zbG93UGF0aExhbWJkYXM7CiAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBs
YW4+IG1fcGxhbnM7Ci0gICAgdW5zaWduZWQgbV9vdXRPZkxpbmVTdHJlYW1JbmRleCB7IFVJTlRf
TUFYIH07CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXg7CiB9
OwogCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1
ZGUgIkpJVERpdkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVElubGluZUNhY2hlR2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSklUTWF0
aElDLmgiCiAjaW5jbHVkZSAiSklUTXVsR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUUmlnaHRT
aGlmdEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRvci5oIgpAQCAtMTUyOCw3
ICsxNTI5LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgpCiAg
ICAgewotICAgICAgICBlbWl0QmluYXJ5U25pcHBldDxKSVRBZGRHZW5lcmF0b3I+KG9wZXJhdGlv
blZhbHVlQWRkKTsKKyAgICAgICAgZW1pdEFkZFNuaXBwZXQoKTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBjb21waWxlU3RyQ2F0KCkKQEAgLTgwNTgsNiArODA1OSw4NiBAQCBwcml2YXRlOgogICAg
ICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOwogICAgIH0KIAorICAgIHZvaWQgZW1pdEFkZFNu
aXBwZXQoKQorICAgIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKKyAgICAgICAgCisg
ICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIFNu
aXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSku
cmVzdWx0VHlwZSgpKTsKKyAgICAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAgICAgIAor
ICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KElu
dDY0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGxlZnQpOworICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIocmlnaHQpOworICAgICAgICBwYXRj
aHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdN
YXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJl
ciwgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Cisg
ICAgICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUg
PQorICAgICAgICAgICAgcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQp
OworICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSAxOworICAgICAg
ICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSAyOworICAgICAgICBwYXRjaHBv
aW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAg
ICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBwYXRjaHBvaW50LT5zZXRH
ZW5lcmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgICAgIEFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKworICAgICAgICAgICAg
ICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0KKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5q
dW1wcyhqaXQpOworCisgICAgICAgICAgICAgICAgSklUQWRkSUMqIGFkZElDID0gaml0LmNvZGVC
bG9jaygpLT5hZGRKSVRBZGRJQygpOworICAgICAgICAgICAgICAgIEJveDxNYXRoSUNHZW5lcmF0
aW9uU3RhdGU+IGFkZElDR2VuZXJhdGlvblN0YXRlID0gQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZT46OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
ID0gc3RhdGUtPmdyYXBoLmJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YyktPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5i
eXRlY29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBKSVRB
ZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNWYWx1ZVJlZ3MocGFyYW1z
WzBdLmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdw
cigpKSwgSlNWYWx1ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwgcGFyYW1zLmZwU2NyYXRjaCgwKSwK
KyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2NyYXRjaCgxKSwgcGFyYW1zLmdwU2NyYXRj
aCgwKSwgSW52YWxpZEZQUlJlZywgYXJpdGhQcm9maWxlKTsKKworICAgICAgICAgICAgICAgIGF1
dG8gc3RhcnQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICBib29sIGdlbmVyYXRlZElu
bGluZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZShqaXQsICphZGRJQ0dlbmVyYXRpb25TdGF0ZSk7
CisKKyAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkSW5saW5lKSB7CisgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVCghYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhKdW1wcy5lbXB0
eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBkb25lID0gaml0LmxhYmVsKCk7CisgICAg
ICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRlUGF0aChbPV0gKENDYWxsSGVscGVycyYgaml0
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UgYWxsb3dTY3JhdGNoKGppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVy
YXRpb25TdGF0ZS0+bV9zbG93UGF0aEp1bXBzLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+bV9zbG93UGF0aFN0YXJ0ID0gaml0LmxhYmVs
KCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBqaXQubGFiZWwoKTsK
KworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3No
b3VsZFNsb3dQYXRoUmVwYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3dQ
YXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJl
Z2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6
ZSwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51
bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9uVmFs
dWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Ns
b3dQYXRoQ2FsbCA9IGNhbGwuY2FsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gaml0LmxhYmVsKCk7CisKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZm
ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVD
b2RlKCphZGRJQ0dlbmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkSUMtPm1fY29kZVNpemUgKz0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRp
b25PZihlbmQpLmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlv
bk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAg
ICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdp
bi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9w
ZXJhdGlvblZhbHVlQWRkLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1z
WzJdLmdwcigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXV0byBlbmQg
PSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5r
QnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZElDLT5tX2NvZGVT
aXplICs9IChjaGFyKilsaW5rQnVmZmVyLmxvY2F0aW9uT2YoZW5kKS5leGVjdXRhYmxlQWRkcmVz
cygpIC0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRpb25PZihzdGFydCkuZXhlY3V0YWJsZUFkZHJl
c3MoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNl
dEpTVmFsdWUocGF0Y2hwb2ludCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmlu
YXJ5Qml0T3BHZW5lcmF0b3I+CiAgICAgdm9pZCBlbWl0QmluYXJ5Qml0T3BTbmlwcGV0KEpfSklU
T3BlcmF0aW9uX0VKSiBzbG93UGF0aEZ1bmN0aW9uKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtODI2
LDYgKzgyNiwxOCBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsKICAg
ICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVz
dGVkSW1tUHRyIGFyZzUsIFRydXN0ZWRJbW1QdHIgYXJnNikKKyAgICB7CisgICAgICAgIHJlc2V0
Q2FsbEFyZ3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFk
ZENhbGxBcmd1bWVudChhcmcyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAg
ICAgICBhZGRDYWxsQXJndW1lbnQoYXJnNCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc1
KTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzYpOworICAgIH0KKwogICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJl
ZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1LCBHUFJSZWcgYXJn
NiwgVHJ1c3RlZEltbVB0ciBhcmc3KQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRz
KCk7CkBAIC0yMDk5LDYgKzIxMTEsMTQgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFy
ZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkK
KyAgICB7CisgICAgICAgIHNldHVwVHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIx
LCBHUFJJbmZvOjphcmd1bWVudEdQUjI+KGFyZzEsIGFyZzIpOworICAgICAgICBtb3ZlKGFyZzMs
IEdQUkluZm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJn
dW1lbnRHUFI0KTsKKyAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIs
IFRydXN0ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAg
ICAgICBzZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJnNSk7
CkBAIC0yMjA3LDYgKzIyMjcsMTUgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAg
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFs
dWVSZWdzIGFyZzIpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpKTsKKyNlbHNlCisgICAg
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcx
LnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFn
R1BSKCkpOworI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBh
cmczKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjIxNSw2ICsyMjQ0LDE1IEBAIHB1
YmxpYzoKICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVN
TVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIo
KSwgYXJnMi50YWdHUFIoKSwgYXJnMyk7CiAjZW5kaWYKICAgICB9CisKKyAgICB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcy
LCBUcnVzdGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisjaWYgVVNF
KEpTVkFMVUU2NCkKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3By
KCksIGFyZzIuZ3ByKCksIGFyZzMsIGFyZzQpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBh
cmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgYXJnMywgYXJn
NCk7CisjZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50cyhKU1ZhbHVl
UmVncyBhcmcxKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24g
MjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsMTAgKzQzLDEwIEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRl
ICJKSVREaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5o
IgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpTSW50ZXJmYWNlSklULmgiCiAj
aW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmlnaW5NYXAuaCIKLSNpbmNs
dWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTQzNSw3ICs0MzUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9p
ZCBjb21waWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRpZmllciopOwogCiAgICAgICAgIC8v
IEFyaXRobWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAgdm9pZCBlbWl0U3ViMzJDb25zdGFu
dChpbnQgZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQsIFJlc3VsdFR5cGUgb3BUeXBlKTsK
ICAgICAgICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bjb2RlSUQsIGludCBkc3QsIGludCBv
cDEsIGludCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3QmIG5vdEludDMyT3AxLCBKdW1wTGlz
dCYgbm90SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVycyA9IHRydWUsIGJvb2wgb3AySXNJ
blJlZ2lzdGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNzYz
LDcgKzc2MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJSZWcs
IFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKLSAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpS
cCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmlsZSop
OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKSlJwLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBBcml0aFBy
b2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkosIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MpOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VKSlJwSmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgQXJpdGhQ
cm9maWxlKiwgSklUQWRkSUMqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3Ms
IEpTVmFsdWVSZWdzLCBKSVRBZGRJQyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBB
cnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRp
b25fRUpPSiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CkBAIC05NTMsNiArOTU1LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyIG1fcGNUb0Nv
ZGVPcmlnaW5NYXBCdWlsZGVyOwogCisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24qLCBKSVRB
ZGRJQyo+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDOworICAgICAgICBIYXNoTWFwPEluc3RydWN0
aW9uKiwgTWF0aElDR2VuZXJhdGlvblN0YXRlPiBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVy
YXRpb25TdGF0ZTsKKwogICAgICAgICBib29sIG1fY2FuQmVPcHRpbWl6ZWQ7CiAgICAgICAgIGJv
b2wgbV9jYW5CZU9wdGltaXplZE9ySW5saW5lZDsKICAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQ
cm9maWxpbmc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5l
cmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiw1OSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDLmgiCisjaW5jbHVkZSAi
TGlua0J1ZmZlci5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQor
Ym9vbCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYgaml0LCBN
YXRoSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQoreworICAgIC8vIFdlIGRlZmF1bHQgdG8gc3Bl
Y3VsYXRpbmcgaW50MzIuCisgICAgT2JzZXJ2ZWRUeXBlIGxocyA9IE9ic2VydmVkVHlwZSgpLndp
dGhJbnQzMigpOworICAgIE9ic2VydmVkVHlwZSByaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRoSW50
MzIoKTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpIHsKKyAgICAgICAgbGhzID0gbV9hcml0aFBy
b2ZpbGUtPmxoc09ic2VydmVkVHlwZSgpOworICAgICAgICByaHMgPSBtX2FyaXRoUHJvZmlsZS0+
cmhzT2JzZXJ2ZWRUeXBlKCk7CisgICAgICAgIGlmIChsaHMuaXNFbXB0eSgpIHx8IHJocy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgIGxocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpOwor
ICAgICAgICAgICAgcmhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBpZiAobGhzLmlzT25seU5vbk51bWJlcigpICYmIHJocy5pc09ubHlOb25O
dW1iZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKChsaHMuaXNPbmx5SW50
MzIoKSB8fCBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSAmJiAocmhzLmlzT25seUludDMy
KCkgfHwgbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpKSB7CisgICAgICAgIHN0YXRlLm1f
c2hvdWxkU2xvd1BhdGhSZXBhdGNoID0gdHJ1ZTsKKworICAgICAgICBBU1NFUlQoIW1fbGVmdE9w
ZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsK
KyAgICAgICAgaWYgKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKQorICAgICAgICAgICAg
c3RhdGUubV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQp
KTsKKyAgICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkKKyAgICAgICAg
ICAgIHN0YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9y
aWdodCkpOworCisgICAgICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8IG1f
cmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2
YXIgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9yaWdodCA6IG1fbGVmdDsKKyAg
ICAgICAgICAgIGludDMyX3QgY29uc3RWYWx1ZSA9IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMy
KCkgPyBtX2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpIDogbV9yaWdodE9wZXJhbmQuYXNDb25z
dEludDMyKCk7CisgICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5i
cmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2Fs
bEhlbHBlcnM6OkltbTMyKGNvbnN0VmFsdWUpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hB
ZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0
LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIGppdC5ib3hJbnQzMihtX3Nj
cmF0Y2hHUFIsIG1fcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
c3RhdGUubV9zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSBmYWxzZTsKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7CisgICAgYm9vbCByZXN1bHQgPSBnZW5lcmF0ZUZhc3RQ
YXRoKGppdCwgZW5kSnVtcExpc3QsIHN0YXRlLm1fc2xvd1BhdGhKdW1wcyk7CisgICAgaWYgKHJl
c3VsdCkKKyAgICAgICAgZW5kSnVtcExpc3QubGluaygmaml0KTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitib29sIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBl
cnMmIGppdCwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVy
czo6SnVtcExpc3QmIHNsb3dQYXRoSnVtcExpc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQ
UiAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IG1fbGVmdC5w
YXlsb2FkR1BSKCkpOwpAQCAtNDMsMTIgKzkxLDggQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgoQwogCiAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQz
MigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgCi0gICAgaWYgKCFt
X2xlZnRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWlnaHRCZU51
bWJlcigpKSB7Ci0gICAgICAgIEFTU0VSVCghbV9kaWRFbWl0RmFzdFBhdGgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgbV9kaWRFbWl0RmFzdFBhdGggPSB0cnVlOworICAgIGlmICgh
bV9sZWZ0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVO
dW1iZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgfHwgbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKICAgICAg
ICAgSlNWYWx1ZVJlZ3MgdmFyID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmln
aHQgOiBtX2xlZnQ7CkBAIC01OCwyMCArMTAyLDIwIEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgLy8gVHJ5IHRvIGRvIGludFZhciArIGludENvbnN0
YW50LgogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90SW50MzIgPSBqaXQuYnJhbmNoSWZO
b3RJbnQzMih2YXIpOwogCi0gICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJy
YW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZhci5wYXlsb2FkR1BSKCksIENDYWxs
SGVscGVyczo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMyKCkpLCBtX3NjcmF0Y2hHUFIpKTsK
KyAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVs
cGVyczo6T3ZlcmZsb3csIHZhci5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6SW1tMzIoY29u
c3RPcHIuYXNDb25zdEludDMyKCkpLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQuYm94
SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Ci0gICAgICAgIG1fZW5kSnVtcExpc3QuYXBw
ZW5kKGppdC5qdW1wKCkpOworICAgICAgICBlbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7
CiAKICAgICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKLSAgICAgICAg
ICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobm90SW50MzIpOwotICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobm90SW50MzIpOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBUcnkgdG8gZG8g
ZG91YmxlVmFyICsgZG91YmxlKGludENvbnN0YW50KS4KICAgICAgICAgbm90SW50MzIubGluaygm
aml0KTsKICAgICAgICAgaWYgKCF2YXJPcHIuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAg
ICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcih2YXIs
IG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LnVu
Ym94RG91YmxlTm9uRGVzdHJ1Y3RpdmUodmFyLCBtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUiwgbV9z
Y3JhdGNoRlBSKTsKIApAQCAtODksMjIgKzEzMywyNCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIGxlZnROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJ
bnQzMihtX2xlZnQpOwogICAgICAgICByaWdodE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMy
KG1fcmlnaHQpOwogCi0gICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5j
aEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX2xl
ZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKworICAgICAgICBzbG93UGF0aEp1bXBM
aXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgbV9yaWdo
dC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUikpOwogCiAg
ICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKLSAgICAgICAgbV9l
bmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CisgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVu
ZChqaXQuanVtcCgpKTsKKwogCiAgICAgICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2lu
dCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGxlZnROb3RJbnQp
OwotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7Ci0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChs
ZWZ0Tm90SW50KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90
SW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgbGVm
dE5vdEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1fbGVmdE9wZXJhbmQuZGVmaW5pdGVs
eUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xv
d1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fbGVmdCwgbV9zY3Jh
dGNoR1BSKSk7CiAgICAgICAgIGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVy
KCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5v
dE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIp
KTsKIAogICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xlZnQsIG1fbGVm
dEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXAgcmlnaHRJc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwpAQCAt
MTE0LDcgKzE2MCw3IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMK
IAogICAgICAgICByaWdodE5vdEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1fcmlnaHRP
cGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBM
aXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7
CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRv
RG91YmxlKG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fbGVmdEZQUik7CiAKQEAgLTEyOCwxMCArMTc0
LDEyIEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIC8v
IERvIGRvdWJsZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQuYWRkRG91YmxlKG1fcmlnaHRGUFIs
IG1fbGVmdEZQUik7Ci0gICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgbV9yZXN1bHRQ
cm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQorICAg
ICAgICBtX2FyaXRoUHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOwogICAgICAgICAKICAgICBq
aXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOworCisgICAgcmV0dXJuIHRydWU7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRBZGRHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFkZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjks
MjIgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5j
bHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlvblN0YXRlOworCiBjbGFzcyBK
SVRBZGRHZW5lcmF0b3IgewogcHVibGljOgorICAgIEpJVEFkZEdlbmVyYXRvcigpCisgICAgeyB9
CisKICAgICBKSVRBZGRHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBw
ZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1Zh
bHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIs
IEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAot
ICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAg
QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9w
ZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5k
KQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDE2ICs1NCwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIo
c2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAg
LCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmls
ZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXND
b25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICB9CiAK
LSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7Ci0KLSAgICBib29sIGRp
ZEVtaXRGYXN0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRW1pdEZhc3RQYXRoOyB9Ci0gICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QoKSB7IHJldHVybiBtX2VuZEp1bXBM
aXN0OyB9Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCgpIHsg
cmV0dXJuIG1fc2xvd1BhdGhKdW1wTGlzdDsgfQorICAgIGJvb2wgZ2VuZXJhdGVJbmxpbmUoQ0Nh
bGxIZWxwZXJzJiwgTWF0aElDR2VuZXJhdGlvblN0YXRlJik7CisgICAgYm9vbCBnZW5lcmF0ZUZh
c3RQYXRoKENDYWxsSGVscGVycyYsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIGVuZEp1bXBMaXN0
LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93UGF0aEp1bXBMaXN0KTsKIAogcHJpdmF0ZToK
ICAgICBTbmlwcGV0T3BlcmFuZCBtX2xlZnRPcGVyYW5kOwpAQCAtNjksMTEgKzcyLDcgQEAgcHJp
dmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwog
ICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9m
aWxlOwotICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwotCi0gICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwotICAgIENDYWxsSGVscGVyczo6SnVtcExp
c3QgbV9zbG93UGF0aEp1bXBMaXN0OworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQXJpdGhtZXRpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBcml0aG1ldGljLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogI2lmIEVOQUJMRShKSVQpCiAjaW5jbHVkZSAiSklULmgiCiAKKyNpbmNsdWRlICJB
cml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKSVRBZGRH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIKQEAgLTM2LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJKSVREaXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSklUTWF0
aElDLmgiCiAjaW5jbHVkZSAiSklUTXVsR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUTmVnR2Vu
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgpAQCAtNDQsMTEgKzQ2LDExIEBA
CiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2Fs
bC5oIgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVDo6ZW1pdF9vcF9qbGVzcyhJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNjc1LDIwICs2NzcsMjYgQEAgdm9pZCBK
SVQ6OmVtaXRTbG93X29wX3Vyc2hpZnQoSW5zdHJ1Y3RpbwogICAgIHNsb3dQYXRoQ2FsbC5jYWxs
KCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgc3RhdGljIE9wZXJhbmRUeXBlcyBnZXRPcGVyYW5kVHlw
ZXMoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQoreworICAgIHJldHVybiBPcGVyYW5kVHlwZXMo
QXJpdGhQcm9maWxlOjpmcm9tSW50KGluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0
VHlwZSgpLCBBcml0aFByb2ZpbGU6OmZyb21JbnQoaW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5y
aHNSZXN1bHRUeXBlKCkpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
LSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJh
bmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50
SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJl
Z1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogICAgIEdQUlJlZyBzY3JhdGNo
R1BSID0gcmVnVDI7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOwogI2Vs
c2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3Ry
dWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJl
Z1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC02OTYsOSAr
NzA0LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQ
UlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVzdWx0UHJvZmlsZSog
cmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3Vs
dFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zm
c2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVG
b3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJh
bmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVz
LnNlY29uZCgpKTsKQEAgLTcxMCw1MiArNzE4LDU4IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJ
bnN0cnVjdGlvbiogY3VycmUKIAogICAgIFJFTEVBU0VfQVNTRVJUKCFsZWZ0T3BlcmFuZC5pc0Nv
bnN0KCkgfHwgIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpOwogCisgICAgYXV0byBzdGFydCA9IGxh
YmVsKCk7CisKICAgICBpZiAoIWxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKICAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICBpZiAoIXJpZ2h0T3BlcmFuZC5p
c0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3Mp
OwogCi0gICAgSklUQWRkR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1Qx
LCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICBKSVRBZGRJQyog
YWRkSUMgPSBtX2NvZGVCbG9jay0+YWRkSklUQWRkSUMoKTsKIAotICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKKyAgICBtX2luc3RydWN0aW9uVG9KSVRBZGRJQy5hZGQoY3VycmVudElu
c3RydWN0aW9uLCBhZGRJQyk7CisgICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVy
YXRpb25TdGF0ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmFkZChj
dXJyZW50SW5zdHJ1Y3Rpb24sIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSgpKS5pdGVyYXRvci0+dmFs
dWU7CiAKLSAgICBpZiAoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKSB7Ci0gICAgICAgIGdlbi5lbmRK
dW1wTGlzdCgpLmxpbmsodGhpcyk7Ci0gICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVz
dWx0LCByZXN1bHRSZWdzKTsKLSAgICAgICAgCi0gICAgICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93
UGF0aEp1bXBMaXN0KCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChnZW4uZW5kSnVt
cExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgQVNTRVJUKGdlbi5zbG93UGF0aEp1bXBMaXN0KCku
ZW1wdHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7Ci0gICAgICAgICAgICBpZiAo
bGVmdE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29u
c3QoKSkKLSAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRS
ZWdzKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7Ci0gICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRo
aXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7Ci0gICAgICAgICAgICBzbG93
UGF0aENhbGwuY2FsbCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGFkZElDLT5tX2dlbmVyYXRv
ciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdz
LCBsZWZ0UmVncywgcmlnaHRSZWdzLCBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3Jh
dGNoRlBSLCBhcml0aFByb2ZpbGUpOworCisgICAgYm9vbCBnZW5lcmF0ZWRJbmxpbmVDb2RlID0g
YWRkSUMtPmdlbmVyYXRlSW5saW5lKCp0aGlzLCBhZGRJQ0dlbmVyYXRpb25TdGF0ZSk7CisgICAg
aWYgKCFnZW5lcmF0ZWRJbmxpbmVDb2RlKSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0Nv
bnN0KCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3Mp
OworICAgICAgICBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisKKyAgICAgICAgaWYgKGFy
aXRoUHJvZmlsZSkKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQ
cm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgYXJpdGhQcm9maWxlKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgfSBlbHNlCisgICAgICAg
IGFkZFNsb3dDYXNlKGFkZElDR2VuZXJhdGlvblN0YXRlLm1fc2xvd1BhdGhKdW1wcyk7CisgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIGF1dG8gZW5k
ID0gbGFiZWwoKTsKKyAgICBhZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIp
IHsKKyAgICAgICAgYWRkSUMtPm1fY29kZVNpemUgKz0gKGNoYXIqKWxpbmtCdWZmZXIubG9jYXRp
b25PZihlbmQpLmV4ZWN1dGFibGVBZGRyZXNzKCkgLSAoY2hhciopbGlua0J1ZmZlci5sb2NhdGlv
bk9mKHN0YXJ0KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIH0pOwogfQogCiB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0Zv
ckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKIAor
ICAgIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3Ry
dWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5maW5kKGN1cnJlbnRJbnN0cnVjdGlvbikt
PnZhbHVlOworICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLm1fc2xvd1BhdGhTdGFydCA9IGxhYmVs
KCk7CisKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsK
ICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQg
b3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMg
dHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdl
dE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAg
ICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVl
UmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0UmVncyA9IGxlZnRSZWdzOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRP
cGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVn
cyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gbGVmdFJlZ3M7CkBAIC03NjksMTggKzc4MywzMCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
YWRkKEluc3RydWN0aW9uKiBjCiAgICAgZWxzZSBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQob3Ay
KSkKICAgICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50
SW50KG9wMikpOwogCisgICAgYXV0byBzdGFydCA9IGxhYmVsKCk7CisKKyAgICBpZiAobGVmdE9w
ZXJhbmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVm
dFJlZ3MpOworICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKworICAgIEpJVEFkZElDKiBhZGRJQyA9
IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDLmdldChjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIGlm
IChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKLSAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29u
c3QoKSkKLSAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7
Ci0gICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUq
IHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVj
b2RlT2Zmc2V0KTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKLSAg
ICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVu
dEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwo
KTsKLSAgICB9CisgICAgICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxv
Y2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGlmIChh
ZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nob3VsZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAg
IGFkZElDR2VuZXJhdGlvblN0YXRlLm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdo
dFJlZ3MsICZhcml0aFByb2ZpbGUsIGFkZElDKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
YWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZh
cml0aFByb2ZpbGUpOworICAgIH0gZWxzZQorICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5t
X3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgYWRkSUMpOworICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKKyAgICBhdXRvIGVuZCA9IGxhYmVsKCk7
CisKKyAgICBhZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAg
ICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1faW5zdHJ1
Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQoY3VycmVudEluc3RydWN0aW9uKS0+
dmFsdWU7CisgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUoYWRkSUNHZW5lcmF0aW9u
U3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICBhZGRJQy0+bV9jb2RlU2l6ZSArPSAoY2hhciop
bGlua0J1ZmZlci5sb2NhdGlvbk9mKGVuZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSAtIChjaGFyKils
aW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhcnQpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgfSk7
CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQpAQCAtNzg4LDE0ICs4MTQsMTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0
aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVz
ID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikp
OwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpT
VmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVn
cyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsK
ICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJ
bnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1Qz
LCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtODAz
LDkgKzgzMCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICNl
bmRpZgogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKIAotICAgIFJlc3VsdFByb2Zp
bGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9m
aWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICBy
ZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29k
ZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQcm9m
aWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRP
cGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0
eXBlcy5zZWNvbmQoKSk7CkBAIC04MzEsNyArODU4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2
KEluc3RydWN0aW9uKiBjdXJyZQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwg
cmlnaHRSZWdzKTsKIAogICAgIEpJVERpdkdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0
T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdU
MCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAg
ICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmls
ZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTg2MSwxNSArODg4
LDE2IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQg
cmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5k
VHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhj
b3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBs
ZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3Mg
PSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QyKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QzOwogICAgIEZQUlJl
ZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQUlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5
cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJl
Z3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtODc3LDkgKzkwNSw5IEBAIHZvaWQgSklUOjplbWl0
X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVn
VDI7CiAjZW5kaWYKIAotICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRy
OworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hv
dWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2st
PmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJv
ZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9u
KTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAg
IFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC04OTcsNyAr
OTI1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJVE11bEdl
bmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJl
Z3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2Ny
YXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0
Y2hHUFIsIHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aCgqdGhpcyk7CiAKQEAgLTkwOSwxMiArOTM3LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX211
bChJbnN0cnVjdGlvbiogY3VycmUKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoZ2VuLmVu
ZEp1bXBMaXN0KCkuZW1wdHkoKSk7CiAgICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlz
dCgpLmVtcHR5KCkpOwotICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICBpZiAo
YXJpdGhQcm9maWxlKSB7CiAgICAgICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNQb3NpdGl2ZUNv
bnN0SW50MzIoKSkKICAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwg
bGVmdFJlZ3MpOwogICAgICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJ
bnQzMigpKQogICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdo
dFJlZ3MpOwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2Zp
bGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAg
ICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgYXJpdGhQcm9maWxlKTsKICAgICAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVu
dEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKQEAgLTkzMCwxMyArOTU4LDE0IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICBpbnQgcmVzdWx0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21J
bnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVj
dGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpT
VmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogI2Vsc2UK
KyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0
aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1Qy
KTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC05NTUsOCArOTg0
LDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgICAgICAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAgICAgaWYgKHJp
Z2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAgICAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJl
c3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2Rl
T2Zmc2V0KTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVk
LCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAg
ICAgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxl
Rm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJp
dGhQcm9maWxlKTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3Vs
dFJlZ3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENh
bGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKQEAgLTk2OSwxNSAr
OTk4LDE2IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBp
bnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3Ax
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVy
YW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBl
cyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVn
cyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJl
Z3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxl
ZnRSZWdzOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gcmVnVDI7CiAgICAgRlBSUmVnIHNjcmF0
Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBn
ZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0
UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gbGVmdFJlZ3M7CkBAIC05ODUsOSArMTAxNSw5IEBAIHZvaWQgSklUOjplbWl0X29wX3N1
YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAj
ZW5kaWYKIAotICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAg
IEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1p
dFByb2ZpbGluZygpKQotICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3Vy
ZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9
ICZtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAog
ICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBw
ZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC05OTYsNyArMTAyNiw3
IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJVFN1YkdlbmVyYXRvciBn
ZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0
UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwg
cmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNj
cmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhp
cyk7CiAKQEAgLTEwMjMsOCArMTA1Myw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5z
dHJ1Y3Rpb24qIGMKICNlbmRpZgogCiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewot
ICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3Vy
ZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVn
cywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0g
bV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywgJmFyaXRoUHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewogICAgICAgICBK
SVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xv
d19wYXRoX3N1Yik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZH
ZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKIApAQCAtMTAx
LDkgKzEwMiw5IEBAIHZvaWQgSklURGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAg
ICB9CiAKICAgICAvLyBJcyB0aGUgcmVzdWx0IGFjdHVhbGx5IGFuIGludGVnZXI/IFRoZSBERkcg
SklUIHdvdWxkIHJlYWxseSBsaWtlIHRvIGtub3cuIElmIGl0J3MKLSAgICAvLyBub3QgYW4gaW50
ZWdlciwgd2UgaW5jcmVtZW50IGEgY291bnQuIElmIHRoaXMgdG9nZXRoZXIgd2l0aCB0aGUgc2xv
dyBjYXNlIGNvdW50ZXIKLSAgICAvLyBhcmUgYmVsb3cgdGhyZXNob2xkIHRoZW4gdGhlIERGRyBK
SVQgd2lsbCBjb21waWxlIHRoaXMgZGl2aXNpb24gd2l0aCBhIHNwZWN1bGF0aW9uCi0gICAgLy8g
dGhhdCB0aGUgcmVtYWluZGVyIGlzIHplcm8uCisgICAgLy8gbm90IGFuIGludGVnZXIsIHdlIHNl
dCBhIGJpdC4gSWYgdGhpcyB0b2dldGhlciB3aXRoIHRoZSBzbG93IGNhc2UgY291bnRlciBhcmUg
YmVsb3cKKyAgICAvLyB0aHJlc2hvbGQgdGhlbiB0aGUgREZHIEpJVCB3aWxsIGNvbXBpbGUgdGhp
cyBkaXZpc2lvbiB3aXRoIGEgc3BlY3VsYXRpb24gdGhhdCB0aGUKKyAgICAvLyByZW1haW5kZXIg
aXMgemVyby4KIAogICAgIC8vIEFzIHdlbGwsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBhIGRvdWJs
ZSByZXN1bHQgaGVyZSB3b3VsZCBjYXVzZSBhbiBpbXBvcnRhbnQgZmllbGQKICAgICAvLyBpbiB0
aGUgaGVhcCB0byBzb21ldGltZXMgaGF2ZSBkb3VibGVzIGluIGl0LCByZXN1bHRpbmcgaW4gZG91
YmxlIHByZWRpY3Rpb25zIGdldHRpbmcKQEAgLTEyOCw4ICsxMjksOCBAQCB2b2lkIEpJVERpdkdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICBub3REb3VibGVaZXJvLmxpbmsoJmpp
dCk7CiAjZW5kaWYKLSAgICBpZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAgICBqaXQuYWRkMzIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRy
ZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQoKSkpOwor
ICAgIGlmIChtX2FyaXRoUHJvZmlsZSkKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhCaXQpLCBDQ2FsbEhlbHBl
cnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAg
ICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVREaXZHZW5lcmF0b3IoU25p
cHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAg
ICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyBy
aWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNj
cmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAg
ICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3Vs
dCkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRG
UFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoRlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2Zp
bGUpCisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFu
ZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAg
IEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVn
IG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAg
QXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRo
IHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAyMDMz
NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtNDE2LDkgKzQxNiwzMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKIH0KIAotaW5saW5lIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpScCBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNW
YWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJv
ZmlsZSkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNW
YWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSk7Cisg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOworICAgIENhbGwgY2Fs
bCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJl
c3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnAg
b3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVS
ZWdzIGFyZzIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFyaXRoUHJvZmlsZSkp
OworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
KTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKworQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKUnBKYWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVl
UmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwg
SklUQWRkSUMqIGFkZElDKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFyaXRoUHJvZmlsZSksIFRydXN0ZWRJbW1QdHIoYWRkSUMp
KTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKK0FM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVS
ZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhZGRJQykp
OwogICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
KTsKICAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKICAgICByZXR1cm4gY2FsbDsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIK
KyNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisj
aW5jbHVkZSAiUmVwYXRjaC5oIgorI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCisKK25hbWVz
cGFjZSBKU0MgeworCitjbGFzcyBMaW5rQnVmZmVyOworCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlv
blN0YXRlIHsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9mYXN0UGF0aFN0YXJ0OworICAg
IE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Zhc3RQYXRoRW5kOworICAgIE1hY3JvQXNzZW1ibGVy
OjpMYWJlbCBtX3Nsb3dQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbV9zbG93
UGF0aENhbGw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wczsK
KyAgICBib29sIG1fc2hvdWxkU2xvd1BhdGhSZXBhdGNoOworfTsKKwordGVtcGxhdGUgPHR5cGVu
YW1lIEdlbmVyYXRvclR5cGU+CitjbGFzcyBKSVRNYXRoSUMgeworcHVibGljOgorICAgIENvZGVM
b2NhdGlvbkxhYmVsIGRvbmVMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQubGFiZWxB
dE9mZnNldChtX2lubGluZVNpemUpOyB9CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xvd1BhdGhT
dGFydExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1fZGVs
dGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQpOyB9CisgICAgQ29kZUxvY2F0aW9uQ2FsbCBzbG93
UGF0aENhbGxMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQuY2FsbEF0T2Zmc2V0KG1f
ZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uKTsgfQorCisgICAgYm9vbCBnZW5l
cmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmIGppdCwgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0
ZSkKKyAgICB7CisgICAgICAgIHN0YXRlLm1fZmFzdFBhdGhTdGFydCA9IGppdC5sYWJlbCgpOwor
ICAgICAgICBib29sIHJlc3VsdCA9IG1fZ2VuZXJhdG9yLmdlbmVyYXRlSW5saW5lKGppdCwgc3Rh
dGUpOworICAgICAgICBzdGF0ZS5tX2Zhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgdm9pZCBnZW5lcmF0ZU91dE9mTGluZShWTSYg
dm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBGdW5jdGlvblB0ciBjYWxsUmVwbGFjZW1lbnQpCisg
ICAgeworICAgICAgICAvLyBXZSByZXdpcmUgdG8gdGhlIGFsdGVybmF0ZSByZWdhcmRsZXNzIG9m
IHdoZXRoZXIgb3Igbm90IHdlIGNhbiBhbGxvY2F0ZSB0aGUgb3V0IG9mIGxpbmUgcGF0aAorICAg
ICAgICAvLyBiZWNhdXNlIGlmIHdlIGZhaWwgYWxsb2NhdGluZyB0aGUgb3V0IG9mIGxpbmUgcGF0
aCwgd2UgZG9uJ3Qgd2FudCB0byB0cnkgdG8gYWxsb2NhdGUgaXQKKyAgICAgICAgLy8gYWdhaW4u
IEl0J3Mgbm90IGltcG9ydGFudCBlbm91Z2ggdG8gd2FycmFudCB0aGF0LgorICAgICAgICBmdGxU
aHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzbG93UGF0aENhbGxMb2NhdGlvbigpLCBj
YWxsUmVwbGFjZW1lbnQpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVscGVycyBq
aXQoJnZtLCBjb2RlQmxvY2spOworCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3QgZW5kSnVtcExpc3Q7IAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNs
b3dQYXRoSnVtcExpc3Q7IAorICAgICAgICAgICAgYm9vbCBlbWl0dGVkRmFzdFBhdGggPSBtX2dl
bmVyYXRvci5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgZW5kSnVtcExpc3QsIHNsb3dQYXRoSnVtcExp
c3QpOworICAgICAgICAgICAgaWYgKCFlbWl0dGVkRmFzdFBhdGgpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworCisg
ICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sIGppdCwgY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICAgICAgaWYgKGxpbmtCdWZmZXIuZGlkRmFpbFRv
QWxsb2NhdGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGxpbmtC
dWZmZXIubGluayhlbmRKdW1wTGlzdCwgZG9uZUxvY2F0aW9uKCkpOworICAgICAgICAgICAgbGlu
a0J1ZmZlci5saW5rKHNsb3dQYXRoSnVtcExpc3QsIHNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsK
KworICAgICAgICAgICAgbV9jb2RlID0gRklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICAg
ICAgY29kZUJsb2NrLCBsaW5rQnVmZmVyLCAoIkpJVE1hdGhJQzogZ2VuZXJhdGluZyBvdXQgb2Yg
bGluZSBJQyBzbmlwcGV0IikpOworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgICAgICBhdXRvIGp1bXAg
PSBqaXQuanVtcCgpOworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhIG5vcCBzbGVkIGhl
cmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBpbmcgaW50byB0aGUgbWlkZGxlIG9mIGFu
IElDLgorICAgICAgICAgICAgYm9vbCBuZWVkc0JyYW5jaENvbXBhY3Rpb24gPSBmYWxzZTsKKyAg
ICAgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIG1faW5saW5lU3RhcnQuZGF0YUxv
Y2F0aW9uKCksIGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpLCBKSVRDb21waWxh
dGlvbk11c3RTdWNjZWVkLCBuZWVkc0JyYW5jaENvbXBhY3Rpb24pOworICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOworICAgICAgICAgICAgbGlua0J1ZmZl
ci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKG1fY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkpOworICAgICAgICAgICAgRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCAoIkpJVE1h
dGhJQzogbGlua2luZyBjb25zdGFudCBqdW1wIHRvIG91dCBvZiBsaW5lIHN0dWIiKSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGZpbmFsaXplSW5saW5lQ29kZShjb25zdCBNYXRoSUNH
ZW5lcmF0aW9uU3RhdGUmIHN0YXRlLCBMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKQorICAgIHsKKyAg
ICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc3RhcnQgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3Rh
dGUubV9mYXN0UGF0aFN0YXJ0KTsKKyAgICAgICAgbV9pbmxpbmVTdGFydCA9IHN0YXJ0OworCisg
ICAgICAgIG1faW5saW5lU2l6ZSA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNv
ZGVQdHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLm1f
ZmFzdFBhdGhFbmQpKTsKKyAgICAgICAgQVNTRVJUKG1faW5saW5lU2l6ZSA+IDApOworCisgICAg
ICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJs
ZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9zbG93UGF0aENhbGwpKTsKKyAgICAgICAgbV9kZWx0YUZy
b21TdGFydFRvU2xvd1BhdGhTdGFydCA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2Vl
bkNvZGVQdHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRl
Lm1fc2xvd1BhdGhTdGFydCkpOworICAgIH0KKworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBt
X2NvZGU7CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgbV9pbmxpbmVTdGFydDsKKyAgICBpbnQzMl90
IG1faW5saW5lU2l6ZTsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2Fs
bExvY2F0aW9uOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydDsK
KworICAgIHNpemVfdCBtX2NvZGVTaXplIHsgMCB9OworCisgICAgc2l6ZV90IGNvZGVTaXplKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2NvZGVTaXplICsgbV9jb2RlLnNpemUoKTsKKyAgICB9
CisKKyAgICBHZW5lcmF0b3JUeXBlIG1fZ2VuZXJhdG9yOworfTsKKwordHlwZWRlZiBKSVRNYXRo
SUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRN
YXRoSUNGb3J3YXJkcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUTWF0aElDRm9yd2FyZHMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsKKwordGVtcGxhdGUgPHR5
cGVuYW1lIEdlbmVyYXRvcj4gY2xhc3MgSklUTWF0aElDOworY2xhc3MgSklUQWRkR2VuZXJhdG9y
OworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJVEFkZElDOworCit9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRl
ICJBcml0aFByb2ZpbGUuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUTXVsR2VuZXJh
dG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQpAQCAtMTM3LDcgKzEzOSw3
IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAvLyBEbyBk
b3VibGVWYXIgKiBkb3VibGVWYXIuCiAgICAgaml0Lm11bERvdWJsZShtX3JpZ2h0RlBSLCBtX2xl
ZnRGUFIpOwogCi0gICAgaWYgKCFtX3Jlc3VsdFByb2ZpbGUpCisgICAgaWYgKCFtX2FyaXRoUHJv
ZmlsZSkKICAgICAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKICAgICBl
bHNlIHsKICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGJlbG93IGludGVudGlv
bmFsbHkgb21pdHMgMWxsIDw8IDUxIGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUuCkBA
IC0xNDksMTggKzE1MSwxOCBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aChDCiAgICAgICAgIGppdC5tb3ZlRG91YmxlVG82NChtX2xlZnRGUFIsIG1fcmVzdWx0LnBheWxv
YWRHUFIoKSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub3ROZWdhdGl2ZVplcm8gPSBq
aXQuYnJhbmNoNjQoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5bG9hZEdQUigp
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChuZWdhdGl2ZVplcm9CaXRzKSk7CiAKLSAgICAg
ICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6TmVn
WmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmls
ZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFi
c29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdh
dGl2ZVplcm8ubGluaygmaml0KTsKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAg
ICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5v
bk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJv
ZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQucGF5
bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhl
bHBlcnM6OkltbTMyKDUyKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LmFuZDMyKENDYWxs
SGVscGVyczo6SW1tMzIoMHg3ZmYpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgbm9JbnQ1Mk92ZXJmbG93ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6TGVz
c1RoYW5PckVxdWFsLCBtX3NjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDB4
NDMxKSk7CiAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVz
dWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBD
Q2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0
cygpKSk7CiAgICAgICAgIG5vSW50NTJPdmVyZmxvdy5saW5rKCZqaXQpOwogCiAgICAgICAgIGRv
bmUubGluaygmaml0KTsKQEAgLTE3MSwxOCArMTczLDE4IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmFwcGVuZChqaXQu
YnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5bG9hZEdQUigpLCBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOwogICAgICAgICBub3ROZWdhdGl2ZVplcm8u
YXBwZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC50YWdH
UFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobmVnYXRpdmVaZXJvQml0cyA+PiAzMikp
KTsKIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQ
cm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9y
ZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkp
KTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAg
ICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOwotICAgICAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0Nh
bGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFn
cygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRo
UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBqaXQubW92ZSht
X3Jlc3VsdC50YWdHUFIoKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIo
Q0NhbGxIZWxwZXJzOjpJbW0zMig1MiAtIDMyKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0
LmFuZDMyKENDYWxsSGVscGVyczo6SW1tMzIoMHg3ZmYpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm9JbnQ1Mk92ZXJmbG93ID0gaml0LmJyYW5jaDMyKENDYWxs
SGVscGVyczo6TGVzc1RoYW5PckVxdWFsLCBtX3NjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKDB4NDMxKSk7CiAgICAgICAgIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxw
ZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7
CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmls
ZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQ
cm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVu
ZChub0ludDUyT3ZlcmZsb3cpOwogICAgICAgICBpZiAobV9zY3JhdGNoR1BSID09IG1fcmVzdWx0
LnRhZ0dQUigpIHx8IG1fc2NyYXRjaEdQUiA9PSBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJKHJldmlzaW9u
IDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEpJVE11bEdlbmVy
YXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVy
YW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFs
dWVSZWdzIHJpZ2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBH
UFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2Zp
bGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRo
UHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkK
ICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1
bHQocmVzdWx0KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQ
UihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAg
LCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVz
dWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmlsZShhcml0aFByb2ZpbGUpCiAgICAg
ewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSB8
fCAhbV9yaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNjks
NyArNjksNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBt
X3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxl
KiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAg
ICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2lu
Y2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIK
ICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIKQEAgLTIyNDcsMTggKzIyNDgsOTMgQEAg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdAogICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KS5zdHJpbmcoKSk7CiB9CiAK
K0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRBZGQoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5k
dW1wSklUQWRkSUNTdGF0cygpOworCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
Mik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9w
MikpOworfQorCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZEFk
ZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIFZNKiB2
bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4
ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEp
OworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAg
QVNTRVJUKGFyaXRoUHJvZmlsZSk7CisgICAgYXJpdGhQcm9maWxlLT5vYnNlcnZlTEhTQW5kUkhT
KG9wMSwgb3AyKTsKKworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIp
OworICAgIGFyaXRoUHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKworICAgIGV4
ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklUQWRkSUNTdGF0cygpOworCisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKKyAgICByZXR1cm4gdW5wcm9maWxlZEFk
ZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdFByb2ZpbGVkTm90T3B0aW1pemUoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopCit7CisgICAgcmV0dXJuIHVucHJvZmls
ZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFy
aXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIHJldHVybiBwcm9maWxlZEFkZChleGVj
LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCBhcml0aFByb2ZpbGUpOworfQorCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMpCit7
CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
Mik7CisKKyAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKKyAgICBhcml0aFByb2ZpbGUtPm9ic2Vy
dmVMSFNBbmRSSFMob3AxLCBvcDIpOworICAgIGF1dG8gbm9uT3B0aW1pemVWYXJpYW50ID0gb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vbk9wdGltaXplOworICAgIGFkZElDLT5nZW5lcmF0ZU91
dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBub25PcHRpbWl6ZVZhcmlhbnQpOworICAg
IAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIGFyaXRo
UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqKQoreworICAgIHJldHVybiBwcm9maWxlZEFkZChl
eGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCBhcml0aFByb2ZpbGUpOworfQorCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisKKyAgICBhdXRvIG5vbk9w
dGltaXplVmFyaWFudCA9IG9wZXJhdGlvblZhbHVlQWRkTm9uT3B0aW1pemU7CisgICAgYWRkSUMt
PmdlbmVyYXRlT3V0T2ZMaW5lKCp2bSwgZXhlYy0+Y29kZUJsb2NrKCksIG5vbk9wdGltaXplVmFy
aWFudCk7CisKKyAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcEpJVEFkZElDU3RhdHMoKTsKICAg
ICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBK
U1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3AyKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkTm9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopCiB7
CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgZXhlYyk7CkBAIC0yMjY2LDggKzIzNDIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDIpOwogICAgIAorICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wSklUQWRkSUNTdGF0cygpOwor
CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7Ci0gICAgcmVzdWx0
UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMjI4NCw3ICsyMzYyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoYSAqIGIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQogewogICAg
IFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGV4ZWMpOwpAQCAtMjI5Niw3ICsyMzc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYQogICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwogICAg
IAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOwotICAgIHJlc3VsdFByb2Zp
bGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisgICAgYXJpdGhQcm9maWxlLT5kZXRlY3RO
dW1lcmljbmVzcyhyZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIApAQCAtMjMxMyw3ICsyMzkxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2Zp
bGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52
bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjMy
NSw3ICsyNDAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQog
ICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNOdW1iZXIoYSAtIGIpOwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNu
ZXNzKHJlc3VsdCk7CisgICAgYXJpdGhQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIwMzM1MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiSklUTWF0
aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoUmV0dXJuVHlwZS5oIgpA
QCAtNDIsNiArNDMsNyBAQCBjbGFzcyBBcnJheVByb2ZpbGU7CiBjbGFzcyBDYWxsTGlua0luZm87
CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRHZW5lcmF0
b3I7CiBjbGFzcyBKU0FycmF5OwogY2xhc3MgSlNGdW5jdGlvbjsKIGNsYXNzIEpTTGV4aWNhbEVu
dmlyb25tZW50OwpAQCAtNTQsNyArNTYsNyBAQCBjbGFzcyBXYXRjaHBvaW50U2V0OwogCiBzdHJ1
Y3QgQnlWYWxJbmZvOwogc3RydWN0IElubGluZUNhbGxGcmFtZTsKLXN0cnVjdCBSZXN1bHRQcm9m
aWxlOworc3RydWN0IEFyaXRoUHJvZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1l
OwogCkBAIC04MSw2ICs4Myw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIEljZjog
SW5saW5lQ2FsbEZyYW1lKgogICAgIElkYzogY29uc3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNv
ZGVkSlNWYWx1ZQorICAgIEphaWM6IEpJVEFkZElDKgogICAgIEpjcDogY29uc3QgSlNWYWx1ZSoK
ICAgICBKc2M6IEpTU2NvcGUqCiAgICAgSnNmOiBKU0Z1bmN0aW9uKgpAQCAtOTIsNyArOTUsNyBA
QCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBROiBpbnQ2NF90CiAgICAgUjogUmVnaXN0
ZXIKICAgICBSZW86IFJlZ0V4cE9iamVjdCoKLSAgICBScDogUmVzdWx0UHJvZmlsZSoKKyAgICBS
cDogQXJpdGhQcm9maWxlKgogICAgIFM6IHNpemVfdAogICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJu
VHlwZQogICAgIFNzaTogU3RydWN0dXJlU3R1YkluZm8qCkBAIC0xMzMsNyArMTM2LDkgQEAgdHlw
ZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSgogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVk
ZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
OwotdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25f
RUpKUnApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0
UHJvZmlsZSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRP
cGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQXJpdGhQcm9maWxlKik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9O
ICpKX0pJVE9wZXJhdGlvbl9FSkpScEphaWMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKTsKK3R5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkphaWMpKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgSklUQWRkSUMqKTsKIHR5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKc3NaKShFeGVj
U3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklU
X09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1JlbykoRXhlY1N0YXRlKiwgSlNTdHJpbmcq
LCBSZWdFeHBPYmplY3QqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04g
KkpfSklUT3BlcmF0aW9uX0VKc3NSZW9Kc3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhw
T2JqZWN0KiwgSlNTdHJpbmcqKTsKQEAgLTQwOCwxMSArNDEzLDE2IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmUKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25Ub0luZGV4U3RyaW5nKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdFByb2ZpbGVkTm90T3B0aW1pemUoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
QXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9m
aWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRk
SUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkUHJvZmlsZWROb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRB
ZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVBZGRPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJl
c3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKikgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxl
ZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nKEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxv
ZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5l
cmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCiAjaWYgRU5BQkxFKEpJVCkK
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC04Myw4ICs4NSw4IEBAIHZvaWQgSklUU3ViR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICByaWdodFdhc0ludGVnZXIubGluaygmaml0KTsKIAog
ICAgIGppdC5zdWJEb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKLSAgICBpZiAobV9yZXN1
bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsK
KyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAgICAgIG1fYXJpdGhQcm9maWxlLT5lbWl0U2V0
RG91YmxlKGppdCk7CiAKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwog
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVy
YXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVRT
dWJHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJp
Z2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0
LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdo
dEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9w
ZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAs
IG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1f
cmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAg
ICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9m
aWxlKHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxl
KQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwpA
QCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQ
UlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQ
cm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmls
ZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVs
cGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMg
RnVuY3Rpb25QdHIgcmVhZENhbGxUYXJnZXQoQ29kZUJsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotc3RhdGljIHZvaWQgcmVwYXRjaENhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVMb2Nh
dGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3Q2FsbGVlRnVuY3Rpb24pCit2b2lkIGZ0bFRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxvY2F0aW9uQ2Fs
bCBjYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVGdW5jdGlvbikKIHsKICNpZiBFTkFCTEUoRlRM
X0pJVCkKICAgICBpZiAoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6RlRMSklUKSB7
CkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0
QnlJRAogCiAgICAgICAgICAgICAgICAgYm9vbCBnZW5lcmF0ZWRDb2RlSW5saW5lID0gSW5saW5l
QWNjZXNzOjpnZW5lcmF0ZUFycmF5TGVuZ3RoKCpjb2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBq
c0Nhc3Q8SlNBcnJheSo+KGJhc2VWYWx1ZSkpOwogICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0
ZWRDb2RlSW5saW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9j
aywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5n
R2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgZnRsVGh1bmtBd2Fy
ZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwg
YXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKICAgICAgICAgICAg
ICAgICAgICAgc3R1YkluZm8uaW5pdEFycmF5TGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjIwLDcgKzIy
MCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQKICAgICAgICAg
ICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5saW5lKSB7CiAgICAgICAgICAgICAgICAgTE9HX0lDKChJ
Q0V2ZW50OjpHZXRCeUlkU2VsZlBhdGNoLCBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBwcm9wZXJ0
eU5hbWUpKTsKICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPnN0YXJ0V2F0Y2hpbmdQcm9wZXJ0
eUZvclJlcGxhY2VtZW50cyh2bSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7Ci0gICAgICAgICAgICAg
ICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigp
LCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAgICAgICAg
ICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQ
YXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihr
aW5kKSk7CiAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdEdldEJ5SWRTZWxmKGNvZGVCbG9j
aywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAgICAgfQpAQCAtMzE0LDcgKzMxNCw3IEBAIHZv
aWQgcmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICBHQ1NhZmVDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxvY2soKS0+bV9sb2NrLCBleGVjLT52bSgp
LmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNoZUdldEJ5SUQoZXhlYywgYmFzZVZhbHVlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBraW5kKSA9PSBHaXZlVXBPbkNhY2hlKQotICAg
ICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxs
TG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmljR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAg
ICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5m
by5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNHZXRCeUlkRnVuY3Rp
b24oa2luZCkpOwogfQogCiBzdGF0aWMgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBhcHByb3ByaWF0
ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oY29uc3QgUHV0UHJvcGVydHlTbG90ICZzbG90LCBQdXRL
aW5kIHB1dEtpbmQpCkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9u
IHRyeUNhY2hlUHV0QnlJRAogICAgICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkQ29kZUlubGlu
ZSA9IElubGluZUFjY2Vzczo6Z2VuZXJhdGVTZWxmUHJvcGVydHlSZXBsYWNlKHZtLCBzdHViSW5m
bywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICBpZiAo
Z2VuZXJhdGVkQ29kZUlubGluZSkgewogICAgICAgICAgICAgICAgICAgICBMT0dfSUMoKElDRXZl
bnQ6OlB1dEJ5SWRTZWxmUGF0Y2gsIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIGlkZW50KSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNs
b3QsIHB1dEtpbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hD
YWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlh
dGVPcHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKICAgICAgICAgICAg
ICAgICAgICAgc3R1YkluZm8uaW5pdFB1dEJ5SWRSZXBsYWNlKGNvZGVCbG9jaywgc3RydWN0dXJl
LCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJldHJ5
Q2FjaGVMYXRlcjsKICAgICAgICAgICAgICAgICB9CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBy
ZXBhdGNoUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVgogICAgIEdDU2FmZUNvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKGV4ZWMtPmNvZGVCbG9jaygpLT5tX2xvY2ssIGV4ZWMtPnZtKCkuaGVh
cCk7CiAgICAgCiAgICAgaWYgKHRyeUNhY2hlUHV0QnlJRChleGVjLCBiYXNlVmFsdWUsIHN0cnVj
dHVyZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywgcHV0S2luZCkgPT0gR2l2ZVVwT25D
YWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNs
b3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihz
bG90LCBwdXRLaW5kKSk7CisgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5j
b2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVH
ZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKIH0KIAogc3RhdGljIElubGlu
ZUNhY2hlQWN0aW9uIHRyeVJlcGF0Y2hJbigKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIHJlcGF0
Y2hJbigKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7
CiAgICAgaWYgKHRyeVJlcGF0Y2hJbihleGVjLCBiYXNlLCBpZGVudCwgd2FzRm91bmQsIHNsb3Qs
IHN0dWJJbmZvKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5j
b2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uSW4p
OworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0
dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wZXJhdGlvbkluKTsKIH0KIAogc3RhdGlj
IHZvaWQgbGlua1Nsb3dGb3IoVk0qLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGNvZGVSZWYpCkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBsaW5rUG9s
eW1vcnBoaWNDYWxsKAogCiB2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqIGNvZGVCbG9jaywg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBHZXRCeUlES2luZCBraW5kKQogewotICAgIHJl
cGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBw
cm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICBmdGxUaHVua0F3
YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigp
LCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogICAgIElubGlu
ZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCgqY29kZUJsb2NrLT52bSgpLCBzdHViSW5mbywgc3R1
YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOwogfQogCkBAIC05MjAsNyArOTIwLDcgQEAg
dm9pZCByZXNldFB1dEJ5SUQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIAogICAgICAgICBvcHRpbWl6
ZWRGdW5jdGlvbiA9IG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZTsKICAg
ICB9CiAKLSAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExv
Y2F0aW9uKCksIG9wdGltaXplZEZ1bmN0aW9uKTsKKyAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENh
bGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRG
dW5jdGlvbik7CiAgICAgSW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wKCpjb2RlQmxvY2st
PnZtKCksIHN0dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CiB9CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCShyZXZpc2lvbiAyMDMzNTEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkod29ya2luZyBjb3B5KQpAQCAt
NTQsNiArNTQsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoRXhlY1N0YXRlKiwgQ2FsCiB2
b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIEdldEJ5SURL
aW5kKTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7
CiB2b2lkIHJlc2V0SW4oQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mKTsKK3ZvaWQgZnRs
VGh1bmtBd2FyZVJlcGF0Y2hDYWxsKENvZGVCbG9jayosIENvZGVMb2NhdGlvbkNhbGwsIEZ1bmN0
aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCShyZXZpc2lvbiAyMDMz
NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkxMSW50RGF0YS5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnl0
ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNv
ZGVUeXBlLmgiCkBAIC0yMjMsNiArMjI0LDQ3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlv
bnMoVk0mIHZtKQogI2VuZGlmCiAKICAgICBBU1NFUlQoU3RyaW5nSW1wbDo6c19oYXNoRmxhZzhC
aXRCdWZmZXIgPT0gOCk7CisKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDEyMDAw
MDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJp
dGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAg
YXJpdGhQcm9maWxlLnJoc1Nhd0ludDMyKCk7CisgICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUu
Yml0cygpID09IGJpdHMpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJp
dHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgICAgICBBU1NFUlQoQXJp
dGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkp
OworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDIyMDAwMDsKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxl
OworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIGFyaXRoUHJv
ZmlsZS5yaHNTYXdJbnQzMigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9
PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2Zp
bGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAg
fQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MjQwMDAwOworICAgICAgICBVTlVT
RURfUEFSQU0oYml0cyk7CisgICAgICAgIEFyaXRoUHJvZmlsZSBhcml0aFByb2ZpbGU7CisgICAg
ICAgIGFyaXRoUHJvZmlsZS5saHNTYXdOdW1iZXIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJo
c1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRz
KTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZl
ZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZy
b21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgIH0KKyAg
ICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDE0MDAwMDsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBh
cml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd051
bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAg
ICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUo
KS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChi
aXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgfQogfQogI2lmIENP
TVBJTEVSKENMQU5HKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20JKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC04OTMsNiArODkzLDkgQEAg
bWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAgIGJxYiB0MSwgdGFn
VHlwZU51bWJlciwgLm9wMk5vdEludAogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikK
ICAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDEsIHQwLCAuc2xvdywgdDIpCisgICAgbG9h
ZGlzRnJvbUluc3RydWN0aW9uKDQsIHQxKQorICAgIG9yaSAweDEyMDAwMCwgdDEgIyBCb3RoIGFy
ZSBpbnRzLgorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQxLCA0KQogICAgIGRpc3BhdGNoKDUp
CiAKIC5vcDFOb3RJbnQ6CkBAIC05MDIsOCArOTA1LDE0IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9t
U3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdwog
ICAgIGFkZHEgdGFnVHlwZU51bWJlciwgdDEKICAgICBmcTJkIHQxLCBmdDEKKyAgICBsb2FkaXNG
cm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisgICAgb3JpIDB4MjQwMDAwLCB0MiAjIEJvdGggYXJlIGRv
dWJsZXMuCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgam1wIC5vcDFOb3RJ
bnRSZWFkeQogLm9wMU5vdEludE9wMkludDoKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwg
dDIpCisgICAgb3JpIDB4MjIwMDAwLCB0MiAjIEZpcnN0IGlzIGRvdWJsZSwgc2Vjb25kIGlzIGlu
dC4KKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MiwgNCkKICAgICBjaTJkIHQxLCBmdDEKIC5v
cDFOb3RJbnRSZWFkeToKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCkBAIC05MTks
NiArOTI4LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAg
ICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29uZCBpcyBkZWZp
bml0ZWx5IG5vdC4KICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAgYnRxeiB0
MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDMp
CisgICAgb3JpIDB4MTQwMDAwLCB0MyAjIEZpcnN0IGlzIGludCwgc2Vjb29uZCBpcyBkb3VibGUK
KyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MywgNCkKICAgICBjaTJkIHQwLCBmdDAKICAgICBh
ZGRxIHRhZ1R5cGVOdW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQxCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZp
c2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTI4Niw2ICsyODYsMTAgQEAgaWYgSlNWQUxV
RTY0CiAgICAgICAgIGxvYWRwIG9mZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAogICAgIGVuZAog
ICAgIAorICAgIG1hY3JvIHN0b3JlaXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCisgICAg
ICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCisgICAgZW5kCisKICAgICBt
YWNybyBzdG9yZXBUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCiAgICAgICAgIHN0b3JlcCB2
YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCiAgICAgZW5kCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDQ2ICszMiw0OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBmcmll
bmQgc3RydWN0IE9wZXJhbmRUeXBlczsKIAotICAgICAgICB0eXBlZGVmIGNoYXIgVHlwZTsKKyAg
ICAgICAgdHlwZWRlZiB1aW50OF90IFR5cGU7CiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5
cGVJbnQzMiA9IDE7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5
YmVOdW1iZXIgPSAweDA0OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJp
bmcgPSAweDA4OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAw
eDEwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDIwOwot
ICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQwOworICAgICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDAyOworICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA0OworICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDA4OworICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlTWF5YmVCb29sICAgPSAweDEwOworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBl
TWF5YmVPdGhlciAgPSAweDIwOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVCaXRz
ID0gVHlwZU1heWJlTnVtYmVyIHwgVHlwZU1heWJlU3RyaW5nIHwgVHlwZU1heWJlTnVsbCB8IFR5
cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsKIAorICAgIHB1YmxpYzoKKyAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBudW1CaXRzTmVlZGVkID0gNjsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgo
VHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRlZCkgLSAxKSkgPT0gVHlwZUJpdHMsICJUaGlz
IGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MuIik7CisKICAgICAgICAgZXhwbGljaXQgUmVz
dWx0VHlwZShUeXBlIHR5cGUpCi0gICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAg
ICAgOiBtX2JpdHModHlwZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgaXNJbnQzMigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBtX3R5cGUgJiBUeXBlSW50MzI7CisgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZUlu
dDMyOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNOdW1iZXIoKSBjb25z
dAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRzKSA9PSBU
eXBlTWF5YmVOdW1iZXI7CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVCaXRzKSA9
PSBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGJvb2wgZGVm
aW5pdGVseUlzU3RyaW5nKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICht
X3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOworICAgICAgICAgICAgcmV0dXJu
IChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOwogICAgICAgICB9CiAKICAg
ICAgICAgYm9vbCBkZWZpbml0ZWx5SXNCb29sZWFuKCkgY29uc3QKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlQm9vbDsKKyAgICAg
ICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7CiAgICAg
ICAgIH0KIAogICAgICAgICBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbV90eXBlICYgVHlwZU1heWJlTnVtYmVyOworICAgICAgICAgICAg
cmV0dXJuIG1fYml0cyAmIFR5cGVNYXliZU51bWJlcjsKICAgICAgICAgfQogCiAgICAgICAgIGJv
b2wgaXNOb3ROdW1iZXIoKSBjb25zdApAQCAtMTQxLDggKzE0MywxMCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIHJldHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAgICAgICB9CiAK
KyAgICAgICAgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKICAgICBwcml2
YXRlOgotICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgVHlwZSBtX2JpdHM7CiAgICAgfTsK
ICAgICAKICAgICBzdHJ1Y3QgT3BlcmFuZFR5cGVzCkBAIC0xNTIsOCArMTU2LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGluaXRpYWxpemUgb25lIG9mIHRo
ZSBpbnQgdG8gZW5zdXJlIHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgc3RydWN0IGlz
IGluaXRpYWxpemVkLgogICAgICAgICAgICAgbV91LmkgPSAwOwotICAgICAgICAgICAgbV91LnJk
cy5maXJzdCA9IGZpcnN0Lm1fdHlwZTsKLSAgICAgICAgICAgIG1fdS5yZHMuc2Vjb25kID0gc2Vj
b25kLm1fdHlwZTsKKyAgICAgICAgICAgIG1fdS5yZHMuZmlyc3QgPSBmaXJzdC5tX2JpdHM7Cisg
ICAgICAgICAgICBtX3UucmRzLnNlY29uZCA9IHNlY29uZC5tX2JpdHM7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIHVuaW9uIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNv
bW1vblNsb3dQYXRocy5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAi
QXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgpAQCAtMzU5LDIyICszNjAsMjEgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX25lZ2F0ZSkKIH0KIAogI2lmIEVOQUJMRShERkdfSklUKQotc3RhdGljIHZvaWQgdXBkYXRl
UmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlv
biogcGMsIEpTVmFsdWUgcmVzdWx0LCBKU1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmlnaHQpCitzdGF0
aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSogZXhl
YywgSW5zdHJ1Y3Rpb24qIHBjLCBKU1ZhbHVlIHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBKU1ZhbHVl
IHJpZ2h0KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7
Ci0gICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjb2RlQmxvY2stPmJ5dGVjb2RlT2Zmc2V0
KHBjKTsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUmIHByb2ZpbGUgPSBj
b2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKHBjKTsKIAogICAgIGlmIChyZXN1bHQuaXNOdW1i
ZXIoKSkgewogICAgICAgICBpZiAoIXJlc3VsdC5pc0ludDMyKCkpIHsKICAgICAgICAgICAgIGlm
IChsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMyKCkpCi0gICAgICAgICAgICAgICAgcHJv
ZmlsZS0+c2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCk7CisgICAgICAgICAgICAgICAgcHJvZmls
ZS5zZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKTsKIAogICAgICAgICAgICAgZG91YmxlIGRvdWJs
ZVZhbCA9IHJlc3VsdC5hc051bWJlcigpOwogICAgICAgICAgICAgaWYgKCFkb3VibGVWYWwgJiYg
c3RkOjpzaWduYml0KGRvdWJsZVZhbCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2Jz
ZXJ2ZWROZWdaZXJvRG91YmxlKCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZl
ZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHBy
b2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOworICAgICAgICAgICAgICAgIHBy
b2ZpbGUuc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7CiAKICAgICAgICAgICAgICAgICAv
LyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sgaGVyZSBpbnRlbnRpb25hbGx5IG9taXRzIDFsbCA8
PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVlLgogICAgICAgICAgICAgICAgIC8v
IFRoZXJlZm9yZSwgd2Ugd2lsbCBnZXQgYSBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgcmVzdWx0IGlz
IHRoYXQgdmFsdWUuIFRoaXMgaXMgaW50ZW50aW9uYWxseQpAQCAtMzgyLDE0ICszODIsMTQgQEAg
c3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeQogICAgICAgICAgICAgICAg
IHN0YXRpYyBjb25zdCBpbnQ2NF90IGludDUyT3ZlcmZsb3dQb2ludCA9ICgxbGwgPDwgNTEpOwog
ICAgICAgICAgICAgICAgIGludDY0X3QgaW50NjRWYWwgPSBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGQ6OmFicyhkb3VibGVWYWwpKTsKICAgICAgICAgICAgICAgICBpZiAoaW50NjRWYWwgPj0gaW50
NTJPdmVyZmxvd1BvaW50KQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZl
ZEludDUyT3ZlcmZsb3coKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZl
ZEludDUyT3ZlcmZsb3coKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQot
ICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5vbk51bWJlcigpOworICAgICAgICBwcm9maWxl
LnNldE9ic2VydmVkTm9uTnVtYmVyKCk7CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgdXBkYXRlUmVz
dWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBKU1Zh
bHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7IH0KK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmls
ZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBKU1ZhbHVlLCBKU1Zh
bHVlLCBKU1ZhbHVlKSB7IH0KICNlbmRpZgogCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG9f
bnVtYmVyKQpAQCAtNDA3LDYgKzQwNywxMSBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfYWRk
KQogICAgIEpTVmFsdWUgdjIgPSBPUF9DKDMpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHJlc3Vs
dDsKIAorICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gZXhlYy0+Y29kZUJsb2NrKCkt
PmFyaXRoUHJvZmlsZUZvclBDKHBjKTsKKyAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZUxIU0FuZFJI
Uyh2MSwgdjIpOworCisgICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBKSVRBZGRJQ1N0YXRzKCk7
CisKICAgICBpZiAodjEuaXNTdHJpbmcoKSAmJiAhdjIuaXNPYmplY3QoKSkKICAgICAgICAgcmVz
dWx0ID0ganNTdHJpbmcoZXhlYywgYXNTdHJpbmcodjEpLCB2Mi50b1N0cmluZyhleGVjKSk7CiAg
ICAgZWxzZSBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigpKQpAQCAtNDE1LDcgKzQy
MCw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAgICAgICAgIHJlc3VsdCA9IGpz
QWRkU2xvd0Nhc2UoZXhlYywgdjEsIHYyKTsKIAogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhy
ZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhl
YywgcGMsIHJlc3VsdCwgdjEsIHYyKTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmlu
YXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCB2MSwgdjIpOwogICAgIH0pOwogfQogCkBAIC00
MzIsNyArNDM3LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAgICBkb3VibGUg
YiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIo
YSAqIGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBk
YXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwg
cmlnaHQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMs
IHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApAQCAtNDQ1LDcgKzQ1MCw3
IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zdWIpCiAgICAgZG91YmxlIGIgPSByaWdodC50
b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKICAg
ICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFBy
b2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAg
ICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0
LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1OCw3ICs0NjMsNyBAQCBTTE9XX1BB
VEhfREVDTChzbG93X3BhdGhfZGl2KQogICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhl
Yyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC8gYik7CiAgICAgUkVUVVJOX1dJ
VEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmlu
YXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgIHVwZGF0
ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmln
aHQpOwogICAgIH0pOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KSVRN
YXRoSUNGb3J3YXJkc19oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pJVE1hdGhJQ0ZvcndhcmRzX2gK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KSVRNYXRoSUNGb3J3YXJkcy5oPgorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284077</attachid>
            <date>2016-07-19 19:02:52 -0700</date>
            <delta_ts>2016-07-19 20:41:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>162814</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDM0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4MiBA
QAorMjAxNi0wNy0xOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgQWRkIGFuZCBJQyBpbnNpZGUgYWxsIEpJVCB0aWVycy4gSXQgZG9lcyBzbyBpbiBhCisgICAg
ICAgIHNpbXBsZSwgYnV0IGVmZmVjdGl2ZSwgd2F5LiBXZSB3aWxsIHRyeSB0byBnZW5lcmF0ZSBh
biBpbnQraW50IGFkZAorICAgICAgICB0aGF0IHdpbGwgcmVwYXRjaCBpdHNlbGYgaWYgaXRzIHR5
cGUgY2hlY2tzIGZhaWwuIFNvbWV0aW1lcyB0aG91Z2gsCisgICAgICAgIHdlIGhhdmUgcnVudGlt
ZSB0eXBlIGRhdGEgc2F5aW5nIHRoYXQgdGhlIGFkZCB3b24ndCBiZSBpbnQraW50LgorICAgICAg
ICBJbiB0aG9zZSBjYXNlcywgd2Ugd2lsbCBqdXN0IGdlbmVyYXRlIGEgZnVsbCBzbmlwcGV0IHRo
YXQgZG9lc24ndCBwYXRjaCBpdHNlbGYuCisgICAgICAgIE90aGVyIHRpbWVzLCB3ZSBtYXkgZ2Vu
ZXJhdGUgbm8gaW5saW5lIGNvZGUgYW5kIGRlZmVyIHRvIG1ha2luZyBhIEMgY2FsbC4gQSBsb3QK
KyAgICAgICAgb2YgdGhpcyBwYXRjaCBpcyBqdXN0IHJlZmFjdG9yaW5nIFJlc3VsdFByb2ZpbGUg
aW50byB3aGF0IHdlJ3JlIG5vdyBjYWxsaW5nIEFyaXRoUHJvZmlsZS4KKyAgICAgICAgQXJpdGhQ
cm9maWxlIGRvZXMgZXZlcnl0aGluZyBSZXN1bHRQcm9maWxlIHVzZWQgdG8gZG8sIGFuZCBtb3Jl
LiBJdCByZWNvcmRzIHNpbXBsZSB0eXBlCisgICAgICAgIGRhdGEgYWJvdXQgdGhlIExIUy9SSFMg
b3BlcmFuZHMgaXQgc2Vlcy4gVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIGlmIGFuIG9wX2Fk
ZAorICAgICAgICBoYXMgb25seSBzZWVuIGludCtpbnQgb3BlcmFuZHMsIGV0Yy4gQXJpdGhQcm9m
aWxlIHdpbGwgYWxzbyBjb250YWluIHRoZSBSZXN1bHRUeXBlCisgICAgICAgIGZvciB0aGUgTEhT
L1JIUyB0aGF0IHRoZSBwYXJzZXIgZmVlZHMgaW50byBvcF9hZGQuIEFyaXRoUHJvZmlsZSBub3cg
Zml0cyBpbnRvIDMyLWJpdHMuCisgICAgICAgIFRoaXMgbWVhbnMgaW5zdGVhZCBvZiBoYXZpbmcg
YSBzaWRlIHRhYmxlIGxpa2Ugd2UgZGlkIGZvciBSZXN1bHRQcm9maWxlLCB3ZSBqdXN0CisgICAg
ICAgIGluamVjdCB0aGUgQXJpdGhQcm9maWxlIGludG8gdGhlIGJ5dGVjb2RlIGluc3RydWN0aW9u
IHN0cmVhbS4gVGhpcyBtYWtlcyBhc2tpbmcKKyAgICAgICAgZm9yIEFyaXRoUHJvZmlsZSBmYXN0
ZXI7IHdlIG5vIGxvbmdlciBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMgb3BlcmF0aW9uLgorCisg
ICAgICAgIFRoZSBzaXplIG9mIGFuIEFkZCBoYXMgZ29uZSBkb3duIG9uIGF2ZXJhZ2UsIGJ1dCB3
ZSBjYW4gc3RpbGwgZG8gYmV0dGVyLgorICAgICAgICBXZSBzdGlsbCBnZW5lcmF0ZSBhIGxvdCBv
ZiBjb2RlIGJlY2F1c2Ugd2UgZ2VuZXJhdGUgY2FsbHMgdG8gdGhlIHNsb3cgcGF0aC4KKyAgICAg
ICAgSSB0aGluayB3ZSBjYW4gbWFrZSB0aGlzIGJldHRlciBieSBtb3ZpbmcgdGhlIHNsb3cgcGF0
aCB0byBhIHNoYXJlZCB0aHVuaworICAgICAgICBzeXN0ZW0uIFRoaXMgcGF0Y2ggbW9zdGx5IGxh
eXMgdGhlIGZvdW5kYXRpb24gZm9yIGZ1dHVyZSBpbXByb3ZlbWVudHMgdG8gQWRkLAorICAgICAg
ICBhbmQgYSBmcmFtZXdvcmsgdG8gbW92ZSBhbGwgb3RoZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25z
IHRvIGJlIHR5cGVkLWJhc2VkIElDcy4KKworICAgICAgICBIZXJlIGlzIHNvbWUgZGF0YSBJIHRv
b2sgb24gdGhlIGF2ZXJhZ2Ugb3BfYWRkL1ZhbHVlQWRkIHNpemUgb24gdmFyaW91cyBiZW5jaG1h
cmtzOgorICAgICAgICAgICAgICAgICAgIHwgICBKZXRTdHJlYW0gIHwgIFNwZWVkb21ldGVyIHwg
IFVuaXR5IDNEICB8CisgICAgICAgICAgICAgLS0tLS0tfCAtLS0tLS0tLS0tLS0tfC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIE9sZCAgfCAgMTg5IGJ5dGVzICAg
fCAgMTY5IGJ5dGVzICAgfCAgMTkyIGJ5dGVzIHwKKyAgICAgICAgICAgICAtLS0tLS18IC0tLS0t
LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgTmV3
ICB8ICAxNDggYnl0ZXMgICB8ICAxMjQgYnl0ZXMgICB8ICAxNDMgYnl0ZXMgfAorICAgICAgICAg
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgIE1ha2luZyBhbiBhcml0aG1ldGljIElDIGlzIG5vdyBlYXN5LiBUaGUgSklUTWF0
aElDIGNsYXNzIHdpbGwgaG9sZCBhIHNuaXBwZXQKKyAgICAgICAgZ2VuZXJhdG9yIGFzIGEgbWVt
YmVyIHZhcmlhYmxlLiBUbyBtYWtlIGEgc25pcHBldCBhbiBJQywgeW91IG5lZWQgdG8gaW1wbGVt
ZW50CisgICAgICAgIGEgZ2VuZXJhdGVJbmxpbmUoLikgbWV0aG9kLCB3aGljaCBnZW5lcmF0ZXMg
dGhlIGlubGluZSBJQy4gVGhlbiwgeW91IG5lZWQgdG8KKyAgICAgICAgZ2VuZXJhdGUgdGhlIElD
IHdoZXJlIHlvdSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBzbmlwcGV0LiBXaGVuIGdlbmVyYXRpbmcg
dGhlCisgICAgICAgIElDLCB3ZSBuZWVkIHRvIGluZm9ybSBKSVRNYXRoSUMgb2YgdmFyaW91cyBk
YXRhIGxpa2Ugd2UgZG8gd2l0aCBTdHJ1Y3R1cmVTdHViSW5mby4KKyAgICAgICAgV2UgbmVlZCB0
byB0ZWxsIGl0IGFib3V0IHdoZXJlIHRoZSBzbG93IHBhdGggc3RhcnRzLCB3aGVyZSB0aGUgc2xv
dyBwYXRoIGNhbGwgaXMsIGV0Yy4KKyAgICAgICAgV2hlbiBnZW5lcmF0aW5nIGEgSklUTWF0aElD
LCBpdCBtYXkgdGVsbCB5b3UgdGhhdCBpdCBkaWRuJ3QgZ2VuZXJhdGUgYW55IGNvZGUgaW5saW5l
LgorICAgICAgICBUaGlzIGlzIGEgcmVxdWVzdCB0byB0aGUgdXNlciBvZiBKSVRNYXRoSUMgdG8g
anVzdCBnZW5lcmF0ZSBhIEMgY2FsbCBhbG9uZyB0aGUKKyAgICAgICAgZmFzdCBwYXRoLiBKSVRN
YXRoSUMgbWF5IGFsc28gaGF2ZSB0aGUgc25pcHBldCB0ZWxsIGl0IHRvIGp1c3QgZ2VuZXJhdGUg
dGhlIGZ1bGwKKyAgICAgICAgc25pcHBldCBpbnN0ZWFkIG9mIHRoZSBpbnQraW50IHBhdGggYWxv
bmcgdGhlIGZhc3QgcGF0aC4KKworICAgICAgICBJbiBzdWJzZXF1ZW50IHBhdGNoZXMsIHdlIGNh
biBpbXByb3ZlIHVwb24gaG93IHdlIGRlY2lkZSB0byBnZW5lcmF0ZSBpbnQraW50IG9yCisgICAg
ICAgIHRoZSBmdWxsIHNuaXBwZXQuIEkgdHJpZWQgdG8gZ2V0IGNsZXZlciBieSBoYXZpbmcgZG91
YmxlK2RvdWJsZSwgZG91YmxlK2ludCwgaW50K2RvdWJsZSwKKyAgICAgICAgZmFzdCBwYXRocywg
YnV0IHRoZXkgZGlkbid0IHdvcmsgb3V0IG5lYXJseSBhcyB3ZWxsIGFzIHRoZSBpbnQraW50IGZh
c3QgcGF0aC4gSSBlbmRlZCB1cAorICAgICAgICBnZW5lcmF0aW5nIGEgbG90IG9mIGNvZGUgd2hl
biBJIGRpZCB0aGlzIGFuZCBlbmRlZCB1cCB1c2luZyBtb3JlIG1lbW9yeSB0aGFuIGp1c3QgZ2Vu
ZXJhdGluZworICAgICAgICB0aGUgZnVsbCBzbmlwcGV0LiBUaGVyZSBpcyBwcm9iYWJseSBzb21l
IHdheSB3ZSBjYW4gYmUgY2xldmVyIGFuZCBnZW5lcmF0ZSBzcGVjaWFsaXplZCBmYXN0CisgICAg
ICAgIHBhdGhzIHRoYXQgYXJlIG1vcmUgc3VjY2Vzc2Z1bCB0aGFuIHdoYXQgSSB0cmllZCBpbXBs
ZW1lbnRpbmcsIGJ1dCBJIHRoaW5rIHRoYXQncyB3b3J0aCBkb2luZworICAgICAgICB0aGlzIGlu
IGZvbGxvdyB1cCBwYXRjaGVzIG9uY2UgdGhlIEpJVE1hdGhJQyBmb3VuZGF0aW9uIGhhcyBsYW5k
ZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGZpeGVzIGEgYnVnIGluc2lkZSB0aGUgc2xv
dyBwYXRoIGxhbWJkYXMgaW4gdGhlIERGRy4KKyAgICAgICAgQmVmb3JlLCBpdCB3YXMgbm90IGxl
Z2FsIHRvIGVtaXQgYW4gZXhjZXB0aW9uIGNoZWNrIGluc2lkZSB0aGVtLiBOb3csCisgICAgICAg
IGl0IGlzLiBTbyBpdCdzIG5vdyBlYXN5IHRvIGRlZmluZSBhcmJpdHJhcnkgbGF0ZSBwYXRocyB1
c2luZyB0aGUgREZHCisgICAgICAgIHNsb3cgcGF0aCBsYW1iZGEgQVBJLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNob3VsZEVtaXRTZXREb3VibGUpOgorICAgICAgICAo
SlNDOjpBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFBy
b2ZpbGU6OnNob3VsZEVtaXRTZXROb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2Zp
bGU6OmVtaXRTZXROb25OdW1iZXIpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAg
ICAgICAgKiBieXRlY29kZS9Bcml0aFByb2ZpbGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6Ok9i
c2VydmVkVHlwZTo6T2JzZXJ2ZWRUeXBlKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpz
YXdJbnQzMik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNPbmx5SW50MzIpOgorICAg
ICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNhd051bWJlcik6CisgICAgICAgIChKU0M6Ok9ic2Vy
dmVkVHlwZTo6aXNPbmx5TnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpzYXdO
b25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzT25seU5vbk51bWJlcik6
CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNFbXB0eSk6CisgICAgICAgIChKU0M6Ok9i
c2VydmVkVHlwZTo6Yml0cyk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6d2l0aEludDMy
KToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRoTnVtYmVyKToKKyAgICAgICAgKEpT
Qzo6T2JzZXJ2ZWRUeXBlOjp3aXRoTm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRU
eXBlOjp3aXRob3V0Tm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpBcml0aFByb2ZpbGUpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmZyb21JbnQpOgorICAgICAgICAoSlNDOjpBcml0aFBy
b2ZpbGU6Omxoc1Jlc3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnJoc1Jl
c3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc09ic2VydmVkVHlwZSk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzT2JzZXJ2ZWRUeXBlKToKKyAgICAgICAg
KEpTQzo6QXJpdGhQcm9maWxlOjpzZXRMaHNPYnNlcnZlZFR5cGUpOgorICAgICAgICAoSlNDOjpB
cml0aFByb2ZpbGU6OnNldFJoc09ic2VydmVkVHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJv
ZmlsZTo6dG9va1NwZWNpYWxGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6
ZGlkT2JzZXJ2ZU5vbkludDMyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNl
cnZlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlTm9uTmVn
WmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVOb25OdW1i
ZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVJbnQzMk92ZXJmbG93
KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlSW50NTJPdmVyZmxvdyk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkTm9uTnVtYmVyKToKKyAg
ICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3cpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkSW50NTJPdmVyZmxvdyk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6YWRkcmVzc09mQml0cyk6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTo6ZGV0ZWN0TnVtZXJpY25lc3MpOgorICAgICAgICAoSlNDOjpBcml0aFByb2Zp
bGU6Omxoc1Nhd0ludDMyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpsaHNTYXdOdW1i
ZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc1Nhd05vbk51bWJlcik6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzU2F3SW50MzIpOgorICAgICAgICAoSlNDOjpBcml0
aFByb2ZpbGU6OnJoc1Nhd051bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhz
U2F3Tm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpvYnNlcnZlTEhTQW5k
UkhTKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6
QXJpdGhQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRC
aXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZHVtcFJhcmVDYXNlUHJvZmlsZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEFyaXRoUHJvZmlsZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2Rl
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRTdHViSW5mbyk6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6YWRkSklUQWRkSUMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmRT
dHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVzZXRKSVREYXRhKToKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpzaHJpbmtUb0ZpdCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6ZHVtcFZhbHVlUHJvZmlsZXMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnJhcmVDYXNl
UHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
Ojphcml0aFByb2ZpbGVGb3JQQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y291bGRUYWtl
U3BlY2lhbEZhc3RDYXNlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wUmVzdWx0UHJv
ZmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVzdWx0UHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzcGVj
aWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6ZW5zdXJlUmVzdWx0UHJvZmlsZSk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3R1
YkluZm9CZWdpbik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3R1YkluZm9FbmQpOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmNvdWxkVGFrZVNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjpudW1iZXJPZlJlc3VsdFByb2ZpbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZhbHVlKToKKyAgICAgICAg
KiBieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmg6CisgICAgICAgIChKU0M6
Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6
OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXRTZXREb3VibGUpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVQ
cm9maWxlLmg6CisgICAgICAgIChKU0M6OmdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6UmVzdWx0UHJvZmlsZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6c3BlY2lhbEZhc3RQYXRoQ291bnQpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlTm9uSW50MzIpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlRG91YmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZU5vbk5lZ1pl
cm9Eb3VibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNl
cnZlTmVnWmVyb0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6
OmRpZE9ic2VydmVOb25OdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9m
aWxlOjpkaWRPYnNlcnZlSW50MzJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJl
c3VsdFByb2ZpbGU6OmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6c2V0T2JzZXJ2ZWROZWdaZXJvRG91Ymxl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25O
dW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZEludDMyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpz
ZXRPYnNlcnZlZEludDUyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQ
cm9maWxlOjphZGRyZXNzT2ZGbGFncyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFBy
b2ZpbGU6OmFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGV0ZWN0TnVtZXJpY25lc3MpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
UmVzdWx0UHJvZmlsZTo6c2V0Qml0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2V0UmVzdWx0
UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdEJpbmFyeU9wKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtlU2FmZSk6CisgICAgICAgICogZGZn
L0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZUZvcik6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6ZXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAq
IGRmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpERkc6OlNsb3dQYXRo
R2VuZXJhdG9yOjpnZW5lcmF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpydW5TbG93UGF0aEdlbmVy
YXRvcnMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVB
ZGQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlU3RyQ2F0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6ZW1pdEJpbmFyeVNuaXBwZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjplbWl0QWRkU25pcHBldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmVtaXRCaW5hcnlCaXRPcFNuaXBwZXQpOgorICAgICAgICAqIGppdC9DQ2FsbEhl
bHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzKToK
KyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVEFkZEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVJbmxpbmUpOgorICAgICAg
ICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAqIGpp
dC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpKSVRB
ZGRHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmRpZEVtaXRGYXN0
UGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6ZW5kSnVtcExp
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OnNsb3dQYXRoSnVt
cExpc3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX2psZXNzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF91cnNoaWZ0KToKKyAgICAgICAgKEpTQzo6Z2V0T3BlcmFuZFR5cGVzKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bf
YWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211bCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRT
bG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVERpdkdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0
L0pJVERpdkdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVREaXZHZW5lcmF0b3I6OkpJVERp
dkdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUTWF0aElDLmg6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmRvbmVMb2NhdGlvbik6CisgICAgICAgIChKU0M6OkpJ
VE1hdGhJQzo6c2xvd1BhdGhTdGFydExvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklUTWF0aElD
OjpzbG93UGF0aENhbGxMb2NhdGlvbik6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6Z2VuZXJh
dGVJbmxpbmUpOgorICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmdlbmVyYXRlT3V0T2ZMaW5lKToK
KyAgICAgICAgKEpTQzo6SklUTWF0aElDOjpmaW5hbGl6ZUlubGluZUNvZGUpOgorICAgICAgICAq
IGppdC9KSVRNYXRoSUNGb3J3YXJkcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvSklUTXVsR2Vu
ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKToKKyAgICAgICAgKiBqaXQvSklUTXVsR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJ
VE11bEdlbmVyYXRvcjo6SklUTXVsR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQv
SklUU3ViR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklUU3ViR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKiBqaXQvSklUU3ViR2VuZXJhdG9yLmg6CisgICAgICAg
IChKU0M6OkpJVFN1YkdlbmVyYXRvcjo6SklUU3ViR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQv
UmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OnJlYWRDYWxsVGFyZ2V0KToKKyAgICAgICAgKEpT
Qzo6ZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRC
eUlEKToKKyAgICAgICAgKEpTQzo6cmVwYXRjaEdldEJ5SUQpOgorICAgICAgICAoSlNDOjphcHBy
b3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1
dEJ5SUQpOgorICAgICAgICAoSlNDOjpyZXBhdGNoUHV0QnlJRCk6CisgICAgICAgIChKU0M6OnRy
eVJlcGF0Y2hJbik6CisgICAgICAgIChKU0M6OnJlcGF0Y2hJbik6CisgICAgICAgIChKU0M6Omxp
bmtTbG93Rm9yKToKKyAgICAgICAgKEpTQzo6cmVzZXRHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6
cmVzZXRQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6cmVwYXRjaENhbGwpOiBEZWxldGVkLgorICAg
ICAgICAqIGppdC9SZXBhdGNoLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc206CisgICAgICAgICogcGFyc2VyL1Jlc3VsdFR5cGUuaDoKKyAgICAgICAgKEpTQzo6UmVz
dWx0VHlwZTo6UmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmlzSW50MzIp
OgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpkZWZpbml0ZWx5SXNOdW1iZXIpOgorICAgICAg
ICAoSlNDOjpSZXN1bHRUeXBlOjpkZWZpbml0ZWx5SXNTdHJpbmcpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRUeXBlOjpkZWZpbml0ZWx5SXNCb29sZWFuKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlw
ZTo6bWlnaHRCZU51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmlzTm90TnVtYmVy
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6Zm9yQml0T3ApOgorICAgICAgICAoSlNDOjpS
ZXN1bHRUeXBlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6T3BlcmFuZFR5cGVzOjpPcGVyYW5kVHlw
ZXMpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjp1cGRhdGVBcml0aFByb2ZpbGVGb3JC
aW5hcnlBcml0aE9wKToKKyAgICAgICAgKEpTQzo6dXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFy
eUFyaXRoT3ApOiBEZWxldGVkLgorCiAyMDE2LTA3LTE5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QyNjIgc2hvdWxkIGhhdmUgYSBmaWxlIHdp
dGggdGhlIHJldmlzaW9uIGFuZCB1cmwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHNldChKYXZhU2NyaXB0
Q29yZV9TT1VSQ0VTCiAgICAgYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVDcmVhdG9yLmNwcAog
CiAgICAgYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFz
ZS5jcHAKKyAgICBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZS5jcHAKICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUuY3BwCiAgICAg
Ynl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjgxLDE2ICsxMjgxLDIxIEBACiAJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVB
Y2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OTE2MERCRDFDOEUzRUM4MDA4QzA4
NUEgLyogUHJveHlSZXZva2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAq
LzsgfTsKIAkJNzkxNjBEQkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERCQzFDOEUzRUM4
MDA4QzA4NUEgLyogUHJveHlSZXZva2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElD
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0My
OTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBD
VG9Db2RlT3JpZ2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5j
cHAgKi87IH07CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0Iz
NDgxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1
OUVFIC8qIEdldFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhG
Q0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0
MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FB
MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAw
ODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0
IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIy
ODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8q
IEFyaXRoUHJvZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBB
cml0aFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKKwkJ
NzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBRjBCRTMxRDNFRkQ0
QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAv
KiBQcm94eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9y
LmNwcCAqLzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAw
Q0I5MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhD
NjVEIC8qIFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAg
Ki87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1j
YWxscyI7IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIx
QzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJ
VE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1
RDFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0
QjE1QjFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25Q
aGFzZS5jcHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0
Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNh
dGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTElu
dFBDUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUNGQzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDEyICszNDgxLDE3
IEBACiAJCTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAv
KiBQcm94eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJl
dm9rZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBD
NUE4MzQgLyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJ
VE1hdGhJQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVD
MDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAw
QkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0Iz
UENUb09yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFE
MzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3
YXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJk
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVG
QTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
eHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCQTFD
NkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTA1Nyw2ICs1MDY3LDkgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyog
SW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8q
IEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oICovLAor
CQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4
OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLywKKwkJCQk3OUFG
MEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8sCiAJCQkJ
RkUxMjIwMjUxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAgKi8sCiAJCQkJ
RkUxMjIwMjYxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovLAogCQkJCTg2
QTkwRUNGMEVFN0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAqLywKQEAgLTY1NTYs
NiArNjU2OSw4IEBACiAJCQkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2Nh
dGlvblByb2ZpbGUuaCAqLywKIAkJCQkwRjYzOTQ1MTE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQ
cm9maWxlLmNwcCAqLywKIAkJCQkwRjYzOTQ1MjE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9m
aWxlLmggKi8sCisJCQkJNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5j
cHAgKi8sCisJCQkJNzlBMjI4MzQxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oICov
LAogCQkJCUMyRkNBRTBDMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suY3Bw
ICovLAogCQkJCUMyRkNBRTBEMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2su
aCAqLywKIAkJCQkwRjIxQzI3RTE0QkVBQTgwMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9u
cy5oICovLApAQCAtNzA2OCw2ICs3MDgzLDcgQEAKIAkJCQlBNUVBNzBFODE5RjVCMTAxMDA5OEY1
RUMgLyogQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODRGRjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Js
b2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklU
TWF0aElDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMjFCREFDREFDMDA4MEZGNzQgLyog
QjNCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDMxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQmFzaWNCbG9ja1V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVD
ODUwNDFCREFDREFDMDA4MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywK
QEAgLTc2NDUsNiArNzY2MSw3IEBACiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFCMTc0IC8qIElu
dDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAwODA2NkREIC8q
IEludGVybmFsRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlENzdDMEVEMjBENzMw
MEI4OTYxOSAvKiBJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBRjBCRTQxRDNF
RkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFCOUUyM0ExQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50
bENvbGxhdG9yQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3NTQsNiArNzc3
MSw3IEBACiAJCQkJQTUxMDA3QzExODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAw
NjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTAzRkEyQTE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1Nl
cnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhFMDY3IC8qIEFy
aXRoUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzAxODVCRkFDQzAwN0U5NUFE
IC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDMjE4
NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM0NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0cy5qc29uIGlu
IEhlYWRlcnMgKi8sCkBAIC04MTc5LDYgKzgxOTcsNyBAQAogCQkJCTBGQzgxNTBBMTQwNDNCRjUw
MENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4
Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5OTU5RTkyRTFCRDE3RkE0MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBp
biBIZWFkZXJzICovLApAQCAtOTI2Myw2ICs5MjgyLDcgQEAKIAkJCQkwRkVCM0VDRjE2MjM3RjZD
MDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZDNTY4
RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFBy
b2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2MDAwMzE3Mjk4IC8q
IE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OEM2MzgxQjkw
REUwQjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJpdGhQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCisjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlND
IHsKKworI2lmIEVOQUJMRShKSVQpCit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdERldGVjdE51bWVy
aWNuZXNzKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNN
b2RlIG1vZGUpCit7CisgICAgaWYgKCFzaG91bGRFbWl0U2V0RG91YmxlKCkgJiYgIXNob3VsZEVt
aXRTZXROb25OdW1iZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQz
MihyZWdzLCBtb2RlKTsKKyAgICBlbWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAg
IGVtaXRTZXROb25OdW1iZXIoaml0KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAgaXNJbnQz
Mi5saW5rKCZqaXQpOworfQorCitib29sIEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldERvdWJs
ZSgpIGNvbnN0Cit7CisgICAgdWludDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6SW50MzJPdmVy
ZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6TmVnWmVy
b0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZTsKKyAgICByZXR1cm4gKG1f
Yml0cyAmIG1hc2spICE9IG1hc2s7Cit9CisKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0U2V0RG91
YmxlKENDYWxsSGVscGVycyYgaml0KQoreworICAgIGlmIChzaG91bGRFbWl0U2V0RG91YmxlKCkp
CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmls
ZTo6SW50MzJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJv
ZmlsZTo6TmVnWmVyb0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQorCitib29s
IEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0Cit7CisgICAgdWlu
dDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6Tm9uTnVtYmVyOworICAgIHJldHVybiAobV9iaXRz
ICYgbWFzaykgIT0gbWFzazsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXROb25OdW1i
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaWYgKHNob3VsZEVtaXRTZXROb25OdW1iZXIo
KSkKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9m
aWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZC
aXRzKCkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFjZSBKU0MK
KworbmFtZXNwYWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHBy
aW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgQXJpdGhQcm9maWxlJiBwcm9maWxl
KQoreworICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOworCisgICAgaWYgKCFwcm9maWxl
LmRpZE9ic2VydmVOb25JbnQzMigpKSB7CisgICAgICAgIG91dC5wcmludCgiSW50MzIiKTsKKyAg
ICAgICAgc2VwYXJhdG9yID0gInwiOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChwcm9maWxl
LmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludChzZXBh
cmF0b3IsICJOZWdaZXJvRG91YmxlIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUo
KSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJOb25OZWdaZXJvRG91YmxlIik7CisgICAgICAg
ICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlk
T2JzZXJ2ZU5vbk51bWJlcigpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJlciIp
OworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChw
cm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmlu
dCgiSW50MzJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAg
ICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2VwYXJh
dG9yID0gInwiOworICAgICAgICB9CisgICAgfQorICAgIGlmIChwcm9maWxlLnRvb2tTcGVjaWFs
RmFzdFBhdGgoKSkKKyAgICAgICAgb3V0LnByaW50KCIgdG9vayBzcGVjaWFsIGZhc3QgcGF0aC4i
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJpdGhQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFs
dWUuaCIKKyNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9k
ZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3Qg
T2JzZXJ2ZWRUeXBlIHsKKyAgICBPYnNlcnZlZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5
KQorICAgICAgICA6IG1fYml0cyhiaXRzKQorICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigp
IGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50
MzIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdO
dW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBp
c09ubHlOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAg
IGJvb2wgc2F3Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU5vbk51bWJl
cjsgfQorICAgIGJvb2wgaXNPbmx5Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09
IFR5cGVOb25OdW1iZXI7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9i
aXRzOyB9CisgICAgdWludDhfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKKyAg
ICBPYnNlcnZlZFR5cGUgd2l0aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1f
Yml0cyB8IFR5cGVJbnQzMik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0
IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQorICAgIE9ic2Vy
dmVkVHlwZSB3aXRoTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0
cyB8IFR5cGVOb25OdW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIo
KSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9
CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gbV9iaXRzID09IG90aGVyLm1fYml0czsgfQorCisgICAgc3RhdGljIGNvbnN0IHVp
bnQ4X3QgVHlwZUVtcHR5ID0gMHgwOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQz
MiA9IDB4MTsKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKworcHJpdmF0ZToK
KyAgICB1aW50OF90IG1fYml0czsKK307CisKK3N0cnVjdCBBcml0aFByb2ZpbGUgeworcHJpdmF0
ZToKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc1Jlc3VsdFR5cGVTaGlmdCA9IDU7CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9IDExOworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCByaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE3OworICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBsaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBib3R0b202Qml0cyA9ICgxIDw8IDYpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgYm90dG9tM0JpdHMgPSAoMSA8PCAzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IGNsZWFyUmhzT2JzZXJ2ZWRUeXBlQml0cyA9IH4oKDEgPDwgMTcpIHwgKDEgPDwgMTgpIHwgKDEg
PDwgMTkpKTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVC
aXRzID0gfigoMSA8PCAyMCkgfCAoMSA8PCAyMSkgfCAoMSA8PCAyMikpOworCisgICAgc3RhdGlj
X2Fzc2VydChSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25n
IGFzc3VtcHRpb24gaGVyZSB0aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpdHMuIik7CisKK3B1
YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc3BlY2lhbEZhc3RQYXRoQml0ID0gMSA8
PCAyMzsKKworICAgIEFyaXRoUHJvZmlsZShSZXN1bHRUeXBlIGxocywgUmVzdWx0VHlwZSByaHMp
CisgICAgeworICAgICAgICBtX2JpdHMgPSAobGhzLmJpdHMoKSA8PCBsaHNSZXN1bHRUeXBlU2hp
ZnQpIHwgKHJocy5iaXRzKCkgPDwgcmhzUmVzdWx0VHlwZVNoaWZ0KTsKKyAgICAgICAgQVNTRVJU
KGxoc1Jlc3VsdFR5cGUoKS5iaXRzKCkgPT0gbGhzLmJpdHMoKSAmJiByaHNSZXN1bHRUeXBlKCku
Yml0cygpID09IHJocy5iaXRzKCkpOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCku
aXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKHJoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7
CisgICAgfQorICAgIEFyaXRoUHJvZmlsZSgpCisgICAgeyB9CisKKyAgICBzdGF0aWMgQXJpdGhQ
cm9maWxlIGZyb21JbnQodWludDMyX3QgYml0cykKKyAgICB7CisgICAgICAgIEFyaXRoUHJvZmls
ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBiaXRzOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKworICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKKyAgICAgICAgTm9u
TmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwg
MSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVy
ZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKKyAg
ICB9OworCisgICAgUmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVz
dWx0VHlwZSgobV9iaXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0K
KyAgICBSZXN1bHRUeXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBl
KChtX2JpdHMgPj4gcmhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorCisgICAg
T2JzZXJ2ZWRUeXBlIGxoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlw
ZSgobV9iaXRzID4+IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAmIGJvdHRvbTNCaXRzKTsgfQorICAg
IE9ic2VydmVkVHlwZSByaHNPYnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5
cGUoKG1fYml0cyA+PiByaHNPYnNlcnZlZFR5cGVTaGlmdCkgJiBib3R0b20zQml0cyk7IH0KKyAg
ICB2b2lkIHNldExoc09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlwZSkKKyAgICB7CisgICAg
ICAgIHVpbnQzMl90IGJpdHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0gY2xlYXJMaHNPYnNl
cnZlZFR5cGVCaXRzOworICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8IGxoc09ic2VydmVk
VHlwZVNoaWZ0OworICAgICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBBU1NFUlQobGhzT2Jz
ZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7CisgICAgfQorCisgICAgdm9pZCBzZXRSaHNPYnNlcnZlZFR5
cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAgeyAKKyAgICAgICAgdWludDMyX3QgYml0cyA9IG1f
Yml0czsKKyAgICAgICAgYml0cyAmPSBjbGVhclJoc09ic2VydmVkVHlwZUJpdHM7CisgICAgICAg
IGJpdHMgfD0gdHlwZS5iaXRzKCkgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAgIG1f
Yml0cyA9IGJpdHM7CisgICAgICAgIEFTU0VSVChyaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsK
KyAgICB9CisKKyAgICBib29sIHRvb2tTcGVjaWFsRmFzdFBhdGgoKSBjb25zdCB7IHJldHVybiBt
X2JpdHMgJiBzcGVjaWFsRmFzdFBhdGhCaXQ7IH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbklu
dDMyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0Rv
dWJsZSB8IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7
IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAg
IGJvb2wgZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgp
IGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9i
c2VydmVOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAg
ICBib29sIGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJ
bnQzMk92ZXJmbG93KTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2Vy
dmVkTm9uTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAg
dm9pZCBzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsg
fQorICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9
CisgICAgdm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJm
bG93KTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50
NTJPdmVyZmxvdyk7IH0KKworICAgIHZvaWQqIGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9i
aXRzOyB9CisKKyAgICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCisgICAg
eworICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9IEludDMy
T3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3Vi
bGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRzIHw9IE5v
bk51bWJlcjsKKyAgICB9CisKKyAgICB2b2lkIGxoc1Nhd0ludDMyKCkgeyBzZXRMaHNPYnNlcnZl
ZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCBsaHNTYXdO
dW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVy
KCkpOyB9CisgICAgdm9pZCBsaHNTYXdOb25OdW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShs
aHNPYnNlcnZlZFR5cGUoKS53aXRoTm9uTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNTYXdJbnQz
MigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpKTsg
fQorICAgIHZvaWQgcmhzU2F3TnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2
ZWRUeXBlKCkud2l0aE51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3Tm9uTnVtYmVyKCkgeyBz
ZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigpKTsgfQor
CisgICAgdm9pZCBvYnNlcnZlTEhTQW5kUkhTKEpTVmFsdWUgbGhzLCBKU1ZhbHVlIHJocykKKyAg
ICB7CisgICAgICAgIEFyaXRoUHJvZmlsZSBuZXdQcm9maWxlID0gKnRoaXM7CisgICAgICAgIGlm
IChsaHMuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgaWYgKGxocy5pc0ludDMyKCkpCisgICAg
ICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNTYXdJbnQzMigpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNTYXdOb25OdW1iZXIoKTsKKworICAgICAgICBp
ZiAocmhzLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChyaHMuaXNJbnQzMigpKQorICAg
ICAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBuZXdQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAg
bV9iaXRzID0gbmV3UHJvZmlsZS5iaXRzKCk7CisgICAgfQorCisjaWYgRU5BQkxFKEpJVCkgICAg
CisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJv
RG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBTZXRz
IE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRlY3RO
dW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9
IEhhdmVUYWdSZWdpc3RlcnMpOworICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIGJv
b2wgc2hvdWxkRW1pdFNldERvdWJsZSgpIGNvbnN0OworICAgIHZvaWQgZW1pdFNldERvdWJsZShD
Q2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAgICB2b2lkIGVt
aXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CisgICAgYm9vbCBzaG91bGRFbWl0U2V0Tm9u
TnVtYmVyKCkgY29uc3Q7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworICAgIHVpbnQzMl90IGJp
dHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0Jp
dHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIG1hc2s7IH0KKyAgICB2b2lkIHNl
dEJpdChpbnQgbWFzaykgeyBtX2JpdHMgfD0gbWFzazsgfQorCisgICAgdWludDMyX3QgbV9iaXRz
IHsgMCB9OyAvLyBXZSB0YWtlIGNhcmUgdG8gdXBkYXRlIG1fYml0cyBvbmx5IGluIGEgc2luZ2xl
IG9wZXJhdGlvbi4gV2UgZG9uJ3QgZXZlciBzdG9yZSBhbiBpbmNvbnNpc3RlbnQgYml0IHJlcHJl
c2VudGF0aW9uIHRvIGl0LgorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBX
VEYgeworCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6OkFyaXRo
UHJvZmlsZSYpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xv
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRl
Y29kZVVzZURlZi5oIgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgIklubGluZUNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVk
ZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtNzY3LDcgKzc2
OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKFByaW4KICAgICBvdXQu
cHJpbnQobmFtZSwgcHJvZmlsZS0+bV9jb3VudGVyKTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6OmR1
bXBSZXN1bHRQcm9maWxlKFByaW50U3RyZWFtJiBvdXQsIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUs
IGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFyaXRoUHJv
ZmlsZShQcmludFN0cmVhbSYgb3V0LCBBcml0aFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wmIGhhc1By
aW50ZWRQcm9maWxpbmcpCiB7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICByZXR1cm47CkBA
IC0xNzY3LDcgKzE3NjksNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgIGR1
bXBSYXJlQ2FzZVByb2ZpbGUob3V0LCAicmFyZSBjYXNlOiAiLCByYXJlQ2FzZVByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChsb2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHsKICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgZHVtcFJl
c3VsdFByb2ZpbGUob3V0LCByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBs
b2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgICAgICBkdW1wQXJpdGhQcm9maWxl
KG91dCwgYXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVk
UHJvZmlsaW5nKTsKICAgICB9CiAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC0zMDAwLDYg
KzMwMDIsMTIgQEAgU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZgogICAg
IHJldHVybiBtX3N0dWJJbmZvcy5hZGQoYWNjZXNzVHlwZSk7CiB9CiAKK0pJVEFkZElDKiBDb2Rl
QmxvY2s6OmFkZEpJVEFkZElDKCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlciht
X2xvY2spOworICAgIHJldHVybiBtX2FkZElDcy5hZGQoKTsKK30KKwogU3RydWN0dXJlU3R1Yklu
Zm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKICAg
ICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7CkBAIC0z
MDQ2LDExICszMDU0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OnJlc2V0SklURGF0YSgpCiAgICAgLy8g
V2UgY2FuIGNsZWFyIHRoaXMgYmVjYXVzZSB0aGUgREZHJ3MgcXVlcmllcyB0byB0aGVzZSBkYXRh
IHN0cnVjdHVyZXMgYXJlIGd1YXJkZWQgYnkgd2hldGhlcgogICAgIC8vIHRoZXJlIGlzIEpJVCBj
b2RlLgogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5jbGVhcigpOwotICAgIAotICAgIC8vIFdlIGNh
biBjbGVhciB0aGVzZSBiZWNhdXNlIHRoZSBERkcgb25seSBhY2Nlc3NlcyBtZW1iZXJzIG9mIHRo
aXMgZGF0YSBzdHJ1Y3R1cmUgd2hlbgotICAgIC8vIGhvbGRpbmcgdGhlIGxvY2sgb3IgYWZ0ZXIg
cXVlcnlpbmcgd2hldGhlciB3ZSBoYXZlIEpJVCBjb2RlLgotICAgIG1fcmVzdWx0UHJvZmlsZXMu
Y2xlYXIoKTsKLSAgICBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAgPSBu
dWxscHRyOwogfQogI2VuZGlmCiAKQEAgLTMyODAsNyArMzI4Myw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpzaHJpbmtUb0ZpdChTaHJpbmtNb2RlIHMKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tl
cihtX2xvY2spOwogCiAgICAgbV9yYXJlQ2FzZVByb2ZpbGVzLnNocmlua1RvRml0KCk7Ci0gICAg
bV9yZXN1bHRQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwogICAgIAogICAgIGlmIChzaHJpbmtNb2Rl
ID09IEVhcmx5U2hyaW5rKSB7CiAgICAgICAgIG1fY29uc3RhbnRSZWdpc3RlcnMuc2hyaW5rVG9G
aXQoKTsKQEAgLTQxNTYsMTEgKzQxNTgsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVlUHJv
ZmlsZXMoKQogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHByb2ZpbGUgPSByYXJlQ2FzZVByb2Zp
bGUoaSk7CiAgICAgICAgIGRhdGFMb2dGKCIgICBiYyA9ICVkOiAldVxuIiwgcHJvZmlsZS0+bV9i
eXRlY29kZU9mZnNldCwgcHJvZmlsZS0+bV9jb3VudGVyKTsKICAgICB9Ci0gICAgZGF0YUxvZygi
UmVzdWx0UHJvZmlsZSBmb3IgIiwgKnRoaXMsICI6XG4iKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpOyArK2kpIHsKLSAgICAgICAgY29uc3Qg
UmVzdWx0UHJvZmlsZSYgcHJvZmlsZSA9ICpyZXN1bHRQcm9maWxlKGkpOwotICAgICAgICBkYXRh
TG9nKCIgICBiYyA9ICIsIHByb2ZpbGUuYnl0ZWNvZGVPZmZzZXQoKSwgIjogIiwgcHJvZmlsZSwg
IlxuIik7Ci0gICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShWRVJCT1NFX1ZBTFVFX1BST0ZJTEUp
CiAKQEAgLTQzNjMsNTYgKzQzNjAsNTYgQEAgdW5zaWduZWQgQ29kZUJsb2NrOjpyYXJlQ2FzZVBy
b2ZpbGVDb3VudAogICAgIHJldHVybiAwOwogfQogCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6
OnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgaW50IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlKiBDb2RlQmxvY2s6OmFyaXRoUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBpZiAoIW1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2Zp
bGVJbmRleE1hcC0+ZmluZChieXRlY29kZU9mZnNldCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZW5kKCkpCisgICAgYXV0byBv
cGNvZGVJRCA9IHZtKCktPmludGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVti
eXRlY29kZU9mZnNldF0udS5vcGNvZGUpOworICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKKyAgICBj
YXNlIG9wX2JpdG9yOgorICAgIGNhc2Ugb3BfYml0YW5kOgorICAgIGNhc2Ugb3BfYml0eG9yOgor
ICAgIGNhc2Ugb3BfYWRkOgorICAgIGNhc2Ugb3BfbXVsOgorICAgIGNhc2Ugb3Bfc3ViOgorICAg
IGNhc2Ugb3BfZGl2OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVl
XTsKLX0KKyAgICB9CiAKLXVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmls
ZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIENvbmN1
cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIHNwZWNpYWxGYXN0Q2Fz
ZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwor
ICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9ICZpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9m
ZnNldCArIDRdOworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxlKj4oJmluc3Ry
dWN0aW9uLT51Lm9wZXJhbmQpOwogfQogCi11bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0
Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImIGxvY2tlciwgaW50IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlJiBDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvclBDKEluc3RydWN0aW9uKiBwYykKIHsKLSAgICBSZXN1bHRQcm9maWxl
KiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNv
ZGVPZmZzZXQpOwotICAgIGlmICghcHJvZmlsZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIHByb2ZpbGUtPnNwZWNpYWxGYXN0UGF0aENvdW50KCk7CisgICAgaWYgKCFBU1NFUlRfRElT
QUJMRUQpIHsKKyAgICAgICAgQVNTRVJUKHBjID49IGluc3RydWN0aW9ucygpLmJlZ2luKCkgJiYg
cGMgPCBpbnN0cnVjdGlvbnMoKS5lbmQoKSk7CisgICAgICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgp
LT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpOworICAgICAgICBzd2l0
Y2ggKG9wY29kZUlEKSB7CisgICAgICAgIGNhc2Ugb3BfYml0b3I6CisgICAgICAgIGNhc2Ugb3Bf
Yml0YW5kOgorICAgICAgICBjYXNlIG9wX2JpdHhvcjoKKyAgICAgICAgY2FzZSBvcF9hZGQ6Cisg
ICAgICAgIGNhc2Ugb3BfbXVsOgorICAgICAgICBjYXNlIG9wX3N1YjoKKyAgICAgICAgY2FzZSBv
cF9kaXY6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICpi
aXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxlKj4oJnBjWzRdLnUub3BlcmFuZCk7CiB9CiAKIGJvb2wg
Q29kZUJsb2NrOjpjb3VsZFRha2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KQog
ewogICAgIGlmICghaGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZUNvdW50ID0gc3BlY2lhbEZhc3RDYXNl
UHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIHJldHVy
biBzcGVjaWFsRmFzdENhc2VDb3VudCA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmlt
dW1Db3VudCgpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJlc3VsdFBy
b2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIGVuc3VyZVJlc3VsdFByb2ZpbGUobG9ja2VyLCBieXRl
Y29kZU9mZnNldCk7Ci19Ci0KLVJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6ZW5zdXJlUmVzdWx0
UHJvZmlsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9m
ZnNldCkKLXsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmICghcHJvZmlsZSkg
ewotICAgICAgICBtX3Jlc3VsdFByb2ZpbGVzLmFwcGVuZChSZXN1bHRQcm9maWxlKGJ5dGVjb2Rl
T2Zmc2V0KSk7Ci0gICAgICAgIHByb2ZpbGUgPSAmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCk7Ci0g
ICAgICAgIEFTU0VSVCgmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCkgPT0gJm1fcmVzdWx0UHJvZmls
ZXNbbV9yZXN1bHRQcm9maWxlcy5zaXplKCkgLSAxXSk7Ci0gICAgICAgIGlmICghbV9ieXRlY29k
ZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwKQotICAgICAgICAgICAgbV9ieXRlY29kZU9m
ZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwID0gc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZU9m
ZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwPigpOwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0
VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmFkZChieXRlY29kZU9mZnNldCwgbV9yZXN1bHRQcm9m
aWxlcy5zaXplKCkgLSAxKTsKLSAgICB9Ci0gICAgcmV0dXJuIHByb2ZpbGU7CisgICAgQXJpdGhQ
cm9maWxlKiBwcm9maWxlID0gYXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVP
ZmZzZXQpOworICAgIGlmICghcHJvZmlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBwcm9maWxlLT50b29rU3BlY2lhbEZhc3RQYXRoKCk7CiB9CiAKICNpZiBFTkFCTEUoSklU
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2
aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSGFuZGxlcklu
Zm8uaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKKyNp
bmNsdWRlICJKSVRNYXRoSUNGb3J3YXJkcy5oIgogI2luY2x1ZGUgIkpJVFdyaXRlQmFycmllci5o
IgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkBAIC03
OSw2ICs4MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOworY2xhc3Mg
SklUQWRkR2VuZXJhdG9yOwogY2xhc3MgSlNNb2R1bGVFbnZpcm9ubWVudDsKIGNsYXNzIExMSW50
T2Zmc2V0c0V4dHJhY3RvcjsKIGNsYXNzIFBDVG9Db2RlT3JpZ2luTWFwOwpAQCAtODgsNiArOTAs
OCBAQCBjbGFzcyBUeXBlTG9jYXRpb247CiAKIGVudW0gY2xhc3MgQWNjZXNzVHlwZSA6IGludDhf
dDsKIAorc3RydWN0IEFyaXRoUHJvZmlsZTsKKwogdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4s
IFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9N
YXA7CiAKIGVudW0gUmVvcHRpbWl6YXRpb25Nb2RlIHsgRG9udENvdW50UmVvcHRpbWl6YXRpb24s
IENvdW50UmVvcHRpbWl6YXRpb24gfTsKQEAgLTI0NSw2ICsyNDksNyBAQCBwdWJsaWM6CiAgICAg
CiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNj
ZXNzVHlwZSk7CisgICAgSklUQWRkSUMqIGFkZEpJVEFkZElDKCk7CiAgICAgQmFnPFN0cnVjdHVy
ZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1YkluZm9CZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9z
LmJlZ2luKCk7IH0KICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBzdHViSW5m
b0VuZCgpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmVuZCgpOyB9CiAgICAgCkBAIC00NDAsMTMgKzQ0
NSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlID49IE9wdGlvbnM6OmNvdWxkVGFr
ZVNsb3dDYXNlTWluaW11bUNvdW50KCk7CiAgICAgfQogCi0gICAgUmVzdWx0UHJvZmlsZSogZW5z
dXJlUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIFJlc3VsdFByb2ZpbGUq
IGVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRl
Y29kZU9mZnNldCk7Ci0gICAgdW5zaWduZWQgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpIHsgcmV0
dXJuIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpOyB9Ci0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQg
Ynl0ZWNvZGVPZmZzZXQpOwotCi0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNv
dW50Rm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRl
Y29kZU9mZnNldCk7Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9y
Qnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUqIGFy
aXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CisgICAgQXJp
dGhQcm9maWxlJiBhcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiopOwogCiAgICAgYm9vbCBj
b3VsZFRha2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKIApAQCAtOTU3LDcg
Kzk1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxpbmcoUHJpbnRTdHJl
YW0mLCBjb25zdCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAg
ICB2b2lkIGR1bXBBcnJheVByb2ZpbGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3RydWN0aW9u
KiYsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHZvaWQgZHVtcFJhcmVDYXNlUHJv
ZmlsZShQcmludFN0cmVhbSYsIGNvbnN0IGNoYXIqIG5hbWUsIFJhcmVDYXNlUHJvZmlsZSosIGJv
b2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwotICAgIHZvaWQgZHVtcFJlc3VsdFByb2ZpbGUoUHJp
bnRTdHJlYW0mLCBSZXN1bHRQcm9maWxlKiwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7Cisg
ICAgdm9pZCBkdW1wQXJpdGhQcm9maWxlKFByaW50U3RyZWFtJiwgQXJpdGhQcm9maWxlKiwgYm9v
bCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAKICAgICBib29sIHNob3VsZFZpc2l0U3Ryb25nbHko
KTsKICAgICBib29sIHNob3VsZEpldHRpc29uRHVlVG9XZWFrUmVmZXJlbmNlKCk7CkBAIC0xMDEz
LDYgKzEwMTMsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlZ2lzdGVyQXRPZmZzZXRMaXN0PiBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgQmFn
PFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0dWJJbmZvczsKKyAgICBCYWc8SklUQWRkSUM+IG1fYWRk
SUNzOwogICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJ
bmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5m
bywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwpA
QCAtMTAyOSw5ICsxMDMwLDYgQEAgcHJpdmF0ZToKICAgICBSZWZDb3VudGVkQXJyYXk8VmFsdWVQ
cm9maWxlPiBtX2FyZ3VtZW50VmFsdWVQcm9maWxlczsKICAgICBSZWZDb3VudGVkQXJyYXk8VmFs
dWVQcm9maWxlPiBtX3ZhbHVlUHJvZmlsZXM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFJhcmVDYXNl
UHJvZmlsZSwgOD4gbV9yYXJlQ2FzZVByb2ZpbGVzOwotICAgIFNlZ21lbnRlZFZlY3RvcjxSZXN1
bHRQcm9maWxlLCA4PiBtX3Jlc3VsdFByb2ZpbGVzOwotICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNp
Z25lZCwgdW5zaWduZWQsIEludEhhc2g8dW5zaWduZWQ+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9L
ZXlIYXNoVHJhaXRzPHVuc2lnbmVkPj4gQnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRl
eE1hcDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJ
bmRleE1hcD4gbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwOwogICAgIFJl
ZkNvdW50ZWRBcnJheTxBcnJheUFsbG9jYXRpb25Qcm9maWxlPiBtX2FycmF5QWxsb2NhdGlvblBy
b2ZpbGVzOwogICAgIEFycmF5UHJvZmlsZVZlY3RvciBtX2FycmF5UHJvZmlsZXM7CiAgICAgUmVm
Q291bnRlZEFycmF5PE9iamVjdEFsbG9jYXRpb25Qcm9maWxlPiBtX29iamVjdEFsbG9jYXRpb25Q
cm9maWxlczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIw
MzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCkBAIC02NSw4ICs2Niw4IEBAIHZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZTo6ZW1pdFIKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBSZXN1
bHRQcm9maWxlUmVhZHk6IHsKLSAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0ZWN0TnVt
ZXJpY25lc3Moaml0LCByZWdzLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgIGNhc2UgQXJp
dGhQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5hcml0aFByb2ZpbGUtPmVtaXREZXRlY3ROdW1l
cmljbmVzcyhqaXQsIHJlZ3MsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9N
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkocmV2aXNp
b24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNz
IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5Owotc3RydWN0IFJlc3VsdFByb2ZpbGU7CitzdHJ1
Y3QgQXJpdGhQcm9maWxlOwogc3RydWN0IFZhbHVlUHJvZmlsZTsKIAogY2xhc3MgTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZSB7CkBAIC01OSwxMSArNTksMTEgQEAgcHVibGljOgogICAgICAg
ICAgICAgbV9raW5kID0gTm9uZTsKICAgICB9CiAgICAgCi0gICAgTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZShSZXN1bHRQcm9maWxlKiBwcm9maWxlKQorICAgIE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUoQXJpdGhQcm9maWxlKiBwcm9maWxlKQogICAgIHsKICAgICAgICAgaWYgKHBy
b2ZpbGUpIHsKLSAgICAgICAgICAgIG1fa2luZCA9IFJlc3VsdFByb2ZpbGVSZWFkeTsKLSAgICAg
ICAgICAgIHUucmVzdWx0UHJvZmlsZSA9IHByb2ZpbGU7CisgICAgICAgICAgICBtX2tpbmQgPSBB
cml0aFByb2ZpbGVSZWFkeTsKKyAgICAgICAgICAgIHUuYXJpdGhQcm9maWxlID0gcHJvZmlsZTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2tpbmQgPSBOb25lOwogICAgIH0KQEAgLTc5
LDE0ICs3OSwxNCBAQCBwcml2YXRlOgogICAgIGVudW0gS2luZCB7CiAgICAgICAgIE5vbmUsCiAg
ICAgICAgIFJlYWR5LAotICAgICAgICBSZXN1bHRQcm9maWxlUmVhZHksCisgICAgICAgIEFyaXRo
UHJvZmlsZVJlYWR5LAogICAgICAgICBMYXp5T3BlcmFuZAogICAgIH07CiAgICAgCiAgICAgS2lu
ZCBtX2tpbmQ7CiAgICAgdW5pb24gewogICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGU7Ci0g
ICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIEFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNzAgKzMxLDQgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNpZiBFTkFCTEUoSklUKQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0
TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lz
dGVyc01vZGUgbW9kZSkKLXsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5i
cmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3Vi
bGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOwotICAg
IC8vIEZJWE1FOiBXZSBjb3VsZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KLSAgICBlbWl0U2V0RG91
YmxlKGppdCk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwotICAg
IG5vdERvdWJsZS5saW5rKCZqaXQpOwotICAgIGVtaXRTZXROb25OdW1iZXIoaml0KTsKLSAgICBk
b25lLmxpbmsoJmppdCk7Ci0gICAgaXNJbnQzMi5saW5rKCZqaXQpOwotfQotCi12b2lkIFJlc3Vs
dFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9y
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50MzJPdmVyZmxv
dyB8IFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpOZWdaZXJv
RG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLQotdm9pZCBSZXN1bHRQcm9m
aWxlOjplbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYgaml0KQotewotICAgIGppdC5vcjMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51bWJlciksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLSNlbmRp
ZiAvLyBFTkFCTEUoSklUKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKLQotbmFtZXNwYWNlIFdURiB7
Ci0gICAgCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgUmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkKLXsKLSAgICBjb25zdCBj
aGFyKiBzZXBhcmF0b3IgPSAiIjsKLQotICAgIGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50
MzIoKSkgewotICAgICAgICBvdXQucHJpbnQoIkludDMyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVy
b0RvdWJsZSgpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0Rv
dWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgICAg
IG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0g
InwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIo
KSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsKLSAgICAgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZl
SW50MzJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ci
KTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJp
bnQoIkludDUyT3ZlcmZsb3ciKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAg
ICAgfQotICAgIH0KLSAgICBpZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsKLSAgICAgICAgb3V0LnBy
aW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSk7Ci0gICAgfQotfQotCi19IC8vIG5h
bWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDg4ICsyMDksNiBA
QCBpbmxpbmUgaW50IGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2ZmCiAgICAgcmV0dXJuIHJh
cmVDYXNlUHJvZmlsZS0+bV9ieXRlY29kZU9mZnNldDsKIH0KIAotc3RydWN0IFJlc3VsdFByb2Zp
bGUgewotcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgaW50IG51bWJlck9mRmxhZ0JpdHMgPSA1
OwotCi1wdWJsaWM6Ci0gICAgUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpCi0gICAg
ICAgIDogbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9m
RmxhZ0JpdHMpCi0gICAgewotICAgICAgICBBU1NFUlQoKChieXRlY29kZU9mZnNldCA8PCBudW1i
ZXJPZkZsYWdCaXRzKSA+PiBudW1iZXJPZkZsYWdCaXRzKSA9PSBieXRlY29kZU9mZnNldCk7Ci0g
ICAgfQotCi0gICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgewotICAgICAgICBOb25OZWdaZXJvRG91
YmxlID0gMSA8PCAwLAotICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAotICAgICAg
ICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0g
MSA8PCAzLAotICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAotICAgIH07Ci0KLSAg
ICBpbnQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgPj4gbnVtYmVyT2ZGbGFnQml0czsgfQotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0
aENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotCi0gICAg
Ym9vbCBkaWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1pl
cm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2Jz
ZXJ2ZURvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5l
Z1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNv
bnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAgICBib29sIGRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91Ymxl
KTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZl
SW50NTJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0K
LQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVn
WmVyb0RvdWJsZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0
Qml0KE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsg
c2V0Qml0KE5vbk51bWJlcik7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygp
IHsgc2V0Qml0KEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZEludDUyT3Zl
cmZsb3coKSB7IHNldEJpdChJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9pZCogYWRkcmVzc09m
RmxhZ3MoKSB7IHJldHVybiAmbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzOyB9Ci0gICAgdm9pZCog
YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQoKSB7IHJldHVybiAmbV9zcGVjaWFsRmFzdFBh
dGhDb3VudDsgfQotICAgIAotICAgIHZvaWQgZGV0ZWN0TnVtZXJpY25lc3MoSlNWYWx1ZSB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICBtX2J5dGVj
b2RlT2Zmc2V0QW5kRmxhZ3MgfD0gSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0gTm9uTnVtYmVyOwotICAg
IH0KLQotI2lmIEVOQUJMRShKSVQpICAgIAotICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpIGlmIGl0IHNl
ZXMgYQotICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBhIG5vbi1udW1i
ZXIuCi0gICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1
ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAKLSAgICAv
LyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlKS4KLSAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7
Ci0gICAgCi0gICAgLy8gU2V0cyBOb25OdW1iZXIuCi0gICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVy
KENDYWxsSGVscGVycyYpOwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCi0KLXByaXZhdGU6Ci0gICAg
Ym9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgJiBtYXNrOyB9Ci0gICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9ieXRlY29kZU9m
ZnNldEFuZEZsYWdzIHw9IG1hc2s7IH0KLQotICAgIGludCBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxh
Z3M7Ci0gICAgdW5zaWduZWQgbV9zcGVjaWFsRmFzdFBhdGhDb3VudCB7IDAgfTsKLX07Ci0KLWlu
bGluZSBpbnQgZ2V0UmVzdWx0UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KFJlc3VsdFByb2ZpbGUqIHBy
b2ZpbGUpCi17Ci0gICAgcmV0dXJuIHByb2ZpbGUtPmJ5dGVjb2RlT2Zmc2V0KCk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiwgY29uc3QgSlNDOjpSZXN1bHRQcm9maWxlJik7Ci0KLX0gLy8gbmFtZXNw
YWNlIFdURgotCiAjZW5kaWYgLy8gVmFsdWVQcm9maWxlX2gKLQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKIAor
I2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5o
IgogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5oIgogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCkBAIC0xNTk4LDcgKzE1OTksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEJpbmFyCiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfYml0b3IgfHwgb3Bjb2Rl
SUQgPT0gb3BfYml0YW5kIHx8IG9wY29kZUlEID09IG9wX2JpdHhvciB8fAogICAgICAgICBvcGNv
ZGVJRCA9PSBvcF9hZGQgfHwgb3Bjb2RlSUQgPT0gb3BfbXVsIHx8IG9wY29kZUlEID09IG9wX3N1
YiB8fCBvcGNvZGVJRCA9PSBvcF9kaXYpCi0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0
eXBlcy50b0ludCgpKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKEFyaXRoUHJvZmls
ZSh0eXBlcy5maXJzdCgpLCB0eXBlcy5zZWNvbmQoKSkuYml0cygpKTsKIAogICAgIHJldHVybiBk
c3Q7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5o
IgogI2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkBAIC05MTAsMjkgKzkxMSwyOCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKICAgICAgICAgewotICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJs
b2NrLT5tX2xvY2spOwotICAgICAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KGxvY2tlciwgbV9jdXJyZW50SW5kZXgpOwotICAgICAgICAgICAgaWYgKHJlc3Vs
dFByb2ZpbGUpIHsKKyAgICAgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbV9p
bmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5hcml0aFByb2ZpbGVGb3JCeXRlY29kZU9m
ZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlKSB7CiAg
ICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBBcml0aEFkZDoKICAgICAgICAgICAgICAgICBjYXNlIEFyaXRoU3ViOgogICAgICAgICAgICAg
ICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2Zp
bGUtPmRpZE9ic2VydmVEb3VibGUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAg
ICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgY2FzZSBBcml0aE11bDogewotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50NTIpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDMyT3ZlcmZs
b3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2Zp
bGUtPmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFz
ZWxpbmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2
ZU5lZ1plcm9Eb3VibGUoKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4
aXRTaXRlKG1fY3VycmVudEluZGV4LCBOZWdhdGl2ZVplcm8pKQorICAgICAgICAgICAgICAgICAg
ICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5l
U3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0
aXZlWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlOZWdaZXJvSW5CYXNlbGluZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9m
aWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFBy
b2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUt
Pm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOwotICAgICAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVz
dWx0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMzM1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTQ4LDkgKzE1NDgsOCBAQCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBo
OjptZXRoCiAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOwogICAg
ICAgICAKICAgICAgICAgewotICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
cHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKICAgICAgICAgICAgIGlmIChwcm9maWxlZEJsb2NrLT5o
YXNCYXNlbGluZUpJVFByb2ZpbGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9m
ZnNldChsb2NrZXIsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKKyAgICAg
ICAgICAgICAgICBpZiAoQXJpdGhQcm9maWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5hcml0
aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJ
bmRleCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGls
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA0LDcgKzYwNCw3IEBAIHZv
aWQgSklUQ29tcGlsZXI6OmV4Y2VwdGlvbkNoZWNrKCkKICAgICBIYW5kbGVySW5mbyogZXhjZXB0
aW9uSGFuZGxlcjsKICAgICBib29sIHdpbGxDYXRjaEV4Y2VwdGlvbiA9IG1fZ3JhcGgud2lsbENh
dGNoRXhjZXB0aW9uSW5NYWNoaW5lRnJhbWUobV9zcGVjdWxhdGl2ZS0+bV9jdXJyZW50Tm9kZS0+
b3JpZ2luLmZvckV4aXQsIG9wQ2F0Y2hPcmlnaW4sIGV4Y2VwdGlvbkhhbmRsZXIpOyAKICAgICBp
ZiAod2lsbENhdGNoRXhjZXB0aW9uKSB7Ci0gICAgICAgIHVuc2lnbmVkIHN0cmVhbUluZGV4ID0g
bV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCAhPSBVSU5UX01BWCA/IG1fc3Bl
Y3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggOiBtX3NwZWN1bGF0aXZlLT5tX3N0cmVh
bS0+c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzdHJlYW1JbmRleCA9IG1fc3BlY3VsYXRpdmUt
Pm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPyAqbV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJl
YW1JbmRleCA6IG1fc3BlY3VsYXRpdmUtPm1fc3RyZWFtLT5zaXplKCk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGhhZEV4Y2VwdGlvbiA9IGVtaXROb25QYXRjaGFibGVFeGNlcHRpb25D
aGVjaygpOwogICAgICAgICAvLyBXZSBhc3N1bWUgaGVyZSB0aGF0IHRoaXMgaXMgY2FsbGVkIGFm
dGVyIGNhbGxPcGVhcnRpb24oKS9hcHBlbmRDYWxsKCkgaXMgY2FsbGVkLgogICAgICAgICBhcHBl
bmRFeGNlcHRpb25IYW5kbGluZ09TUkV4aXQoRXhjZXB0aW9uQ2hlY2ssIHN0cmVhbUluZGV4LCBv
cENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyLCBtX2ppdENvZGUtPmNvbW1vbi5sYXN0Q2Fs
bFNpdGUoKSwgaGFkRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2xvd1BhdGhHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+bV9vdXRPZkxpbmVTdHJl
YW1JbmRleCA9IG1fc3RyZWFtSW5kZXg7CiAgICAgICAgIGppdC0+bV9vcmlnaW4gPSBtX29yaWdp
bjsKICAgICAgICAgZ2VuZXJhdGVJbnRlcm5hbChqaXQpOwotICAgICAgICBqaXQtPm1fb3V0T2ZM
aW5lU3RyZWFtSW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgaml0LT5tX291dE9mTGluZVN0cmVh
bUluZGV4ID0gTnVsbG9wdDsKICAgICAgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpCiAgICAgICAg
ICAgICBqaXQtPm1faml0LmFib3J0V2l0aFJlYXNvbihERkdTbG93UGF0aEdlbmVyYXRvckZlbGxU
aHJvdWdoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJKSVRCaXRYb3JHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRE
aXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRMZWZ0U2hpZnRHZW5lcmF0b3IuaCIKKyNpbmNs
dWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRNdWxHZW5lcmF0b3IuaCIKICNpbmNsdWRl
ICJKSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgi
CkBAIC01Niw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSAiU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyQnVm
ZmVyLmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTM2Miw3ICszNjQsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvCiAKIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmFkZFNsb3dQYXRoR2VuZXJhdG9yKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBsYW1iZGEp
CiB7Ci0gICAgbV9zbG93UGF0aExhbWJkYXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGxhbWJkYSwg
bV9jdXJyZW50Tm9kZSkpOworICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVuZChTbG93UGF0aExh
bWJkYXsgbGFtYmRhLCBtX2N1cnJlbnROb2RlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zdHJl
YW0tPnNpemUoKSkgfSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2Vu
ZXJhdG9ycyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRl
cikKQEAgLTM3MSwxMSArMzczLDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRo
R2VuZXJhdG8KICAgICAgICAgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyLmFwcGVuZEl0ZW0obV9q
aXQubGFiZWwoKSwgc2xvd1BhdGhHZW5lcmF0b3ItPm9yaWdpbigpLnNlbWFudGljKTsKICAgICAg
ICAgc2xvd1BhdGhHZW5lcmF0b3ItPmdlbmVyYXRlKHRoaXMpOwogICAgIH0KLSAgICBmb3IgKGF1
dG8mIGdlbmVyYXRvclBhaXIgOiBtX3Nsb3dQYXRoTGFtYmRhcykgewotICAgICAgICBOb2RlKiBj
dXJyZW50Tm9kZSA9IGdlbmVyYXRvclBhaXIuc2Vjb25kOworICAgIGZvciAoYXV0byYgc2xvd1Bh
dGhMYW1iZGEgOiBtX3Nsb3dQYXRoTGFtYmRhcykgeworICAgICAgICBOb2RlKiBjdXJyZW50Tm9k
ZSA9IHNsb3dQYXRoTGFtYmRhLm1fY3VycmVudE5vZGU7CiAgICAgICAgIG1fY3VycmVudE5vZGUg
PSBjdXJyZW50Tm9kZTsKKyAgICAgICAgbV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9IHNsb3dQYXRo
TGFtYmRhLm1fc3RyZWFtSW5kZXg7CiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5h
cHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGN1cnJlbnROb2RlLT5vcmlnaW4uc2VtYW50aWMpOwot
ICAgICAgICBnZW5lcmF0b3JQYWlyLmZpcnN0KCk7CisgICAgICAgIHNsb3dQYXRoTGFtYmRhLm1f
Z2VuZXJhdG9yKCk7CisgICAgICAgIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBOdWxsb3B0Owog
ICAgIH0KIH0KIApAQCAtMzM3OSwzMSArMzM4Myw2NCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVBZGQoTm9kCiAgICAgICAgIHJpZ2h0UmVncyA9IHJpZ2h0LT5qc1ZhbHVlUmVn
cygpOwogICAgIH0KIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0
T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgbGVmdEZQ
UiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKG1faml0KTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2ppdC5jb2RlQmxvY2soKS0+
YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPiBhZGRJQ0dlbmVy
YXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+OjpjcmVhdGUoKTsKKyAgICBB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1faml0LmdyYXBoKCkuYmFzZWxpbmVDb2RlQmxv
Y2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZz
ZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgIGFkZElDLT5tX2dl
bmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1
bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRjaEdQ
Uiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKKworICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5l
ID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0aW9uU3RhdGUpOwor
CisgICAgaWYgKGdlbmVyYXRlZElubGluZSkgeworICAgICAgICBBU1NFUlQoIWFkZElDR2VuZXJh
dGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMuZW1wdHkoKSk7CisKKyAgICAgICAgVmVjdG9yPFNp
bGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDQ+IHNhdmVQbGFuczsKKyAgICAgICAgc2lsZW50U3BpbGxB
bGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHJlc3VsdFJlZ3MpOworCisgICAgICAg
IGF1dG8gZG9uZSA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0
b3IoWz1dICgpIHsKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRo
SnVtcHMubGluaygmbV9qaXQpOworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1f
c2xvd1BhdGhTdGFydCA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgIHNpbGVudFNwaWxs
KHNhdmVQbGFucyk7CisKKyAgICAgICAgICAgIGF1dG8gaW5uZXJMZWZ0UmVncyA9IGxlZnRSZWdz
OworICAgICAgICAgICAgYXV0byBpbm5lclJpZ2h0UmVncyA9IHJpZ2h0UmVnczsKKyAgICAgICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lckxl
ZnRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUobGVm
dENoaWxkLT5hc0pTVmFsdWUoKSwgaW5uZXJMZWZ0UmVncyk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lclJpZ2h0
UmVncyA9IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0
Q2hpbGQtPmFzSlNWYWx1ZSgpLCBpbm5lclJpZ2h0UmVncyk7CisgICAgICAgICAgICB9CiAKLSAg
ICBBU1NFUlQoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKTsKLSAgICBnZW4uZW5kSnVtcExpc3QoKS5h
cHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+bV9zaG91bGRTbG93UGF0aFJlcGF0Y2gpCisgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0
aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZE9wdGltaXplLCByZXN1bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgYWRk
SUMpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0
YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJl
c3VsdFJlZ3MsIGlubmVyTGVmdFJlZ3MsIGlubmVyUmlnaHRSZWdzKTsKIAotICAgIGdlbi5zbG93
UGF0aEp1bXBMaXN0KCkubGluaygmbV9qaXQpOworICAgICAgICAgICAgc2lsZW50RmlsbChzYXZl
UGxhbnMpOworICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAg
IG1faml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJm1faml0KTsKIAotICAgIHNpbGVudFNwaWxsQWxs
UmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOworICAgICAgICAgICAgbV9qaXQuYWRkTGlua1Rhc2soWz1d
IChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFs
aXplSW5saW5lQ29kZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChsZWZ0T3Bl
cmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgIGxlZnQgPSBKU1ZhbHVlT3BlcmFuZCh0aGlz
LCBsZWZ0Q2hpbGQpOworICAgICAgICAgICAgbGVmdFJlZ3MgPSBsZWZ0LT5qc1ZhbHVlUmVncygp
OworICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAg
ICAgIHJpZ2h0ID0gSlNWYWx1ZU9wZXJhbmQodGhpcywgcmlnaHRDaGlsZCk7CisgICAgICAgICAg
ICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgfQogCi0gICAgaWYg
KGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkgewotICAgICAgICBsZWZ0UmVncyA9IHJlc3VsdFJlZ3M7
Ci0gICAgICAgIG1faml0Lm1vdmVWYWx1ZShsZWZ0Q2hpbGQtPmFzSlNWYWx1ZSgpLCBsZWZ0UmVn
cyk7Ci0gICAgfSBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7Ci0gICAgICAgIHJp
Z2h0UmVncyA9IHJlc3VsdFJlZ3M7Ci0gICAgICAgIG1faml0Lm1vdmVWYWx1ZShyaWdodENoaWxk
LT5hc0pTVmFsdWUoKSwgcmlnaHRSZWdzKTsKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJl
Z3MsIHJpZ2h0UmVncyk7CisgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgfQog
Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJl
Z3MsIHJpZ2h0UmVncyk7Ci0KLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OwotICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICBnZW4uZW5kSnVtcExpc3QoKS5s
aW5rKCZtX2ppdCk7CiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICBy
ZXR1cm47CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTM4OCwxMyArMzg4LDE1IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1Nw
aWxsLCBwbGFucywgSW52YWxpZEdQUlJlZywgSW52YWxpZEdQUlJlZywgZXhjbHVkZSk7CiAgICAg
fQotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlv
blR5cGU+CiAgICAgdm9pZCBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoYm9vbCBkb1NwaWxs
LCBDb2xsZWN0aW9uVHlwZSYgcGxhbnMsIEpTVmFsdWVSZWdzIGV4Y2x1ZGUpCiAgICAgeworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChk
b1NwaWxsLCBwbGFucywgZXhjbHVkZS50YWdHUFIoKSwgZXhjbHVkZS5wYXlsb2FkR1BSKCkpOwot
ICAgIH0KKyNlbHNlCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1NwaWxs
LCBwbGFucywgZXhjbHVkZS5ncHIoKSk7CiAjZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhHUFJSZWcgZXhjbHVkZSwgR1BSUmVnIGV4Y2x1ZGUyID0g
SW52YWxpZEdQUlJlZywgRlBSUmVnIGZwckV4Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQogICAgIHsK
QEAgLTEyODUsNiArMTI4NywxMyBAQCBwdWJsaWM6CiAKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisK
KyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkph
aWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFs
dWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBUcnVzdGVkSW1t
UHRyKGFkZElDKSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlv
biwgcmVzdWx0LmdwcigpKTsKKyAgICB9CisKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiAgICAgewogICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3Rl
ZEltbVB0cih1aWQpKTsKQEAgLTE3MDIsNiArMTcxMSwxMiBAQCBwdWJsaWM6CiAgICAgfQogI2Vs
c2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSmFpYyBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3Vs
dCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgSklUQWRkSUMqIGFkZElDKQor
ICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJC
SVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxv
YWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCks
IHJlc3VsdC50YWdHUFIoKSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywg
R1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQs
IEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzJQYXlsb2FkLCBhcmcy
VGFnLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwpAQCAtMjgzMCw5ICsyODQ1LDE0IEBAIHB1YmxpYzoK
ICAgICBNaW5pZmllZEdyYXBoKiBtX21pbmlmaWVkR3JhcGg7CiAgICAgCiAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4sIDg+IG1fc2xvd1BhdGhHZW5lcmF0b3Jz
OwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBOb2RlKj4sIDg+
IG1fc2xvd1BhdGhMYW1iZGFzOworICAgIHN0cnVjdCBTbG93UGF0aExhbWJkYSB7CisgICAgICAg
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2dlbmVyYXRvcjsKKyAgICAgICAgTm9kZSogbV9jdXJy
ZW50Tm9kZTsKKyAgICAgICAgdW5zaWduZWQgbV9zdHJlYW1JbmRleDsKKyAgICB9OworICAgIFZl
Y3RvcjxTbG93UGF0aExhbWJkYT4gbV9zbG93UGF0aExhbWJkYXM7CiAgICAgVmVjdG9yPFNpbGVu
dFJlZ2lzdGVyU2F2ZVBsYW4+IG1fcGxhbnM7Ci0gICAgdW5zaWduZWQgbV9vdXRPZkxpbmVTdHJl
YW1JbmRleCB7IFVJTlRfTUFYIH07CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fb3V0T2ZMaW5l
U3RyZWFtSW5kZXg7CiB9OwogCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiAr
NTgsNyBAQAogI2luY2x1ZGUgIkpJVERpdkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmgiCisj
aW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklUTXVsR2VuZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSklUUmlnaHRTaGlmdEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRv
ci5oIgpAQCAtMTUyOCw3ICsxNTI5LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBp
bGVWYWx1ZUFkZCgpCiAgICAgewotICAgICAgICBlbWl0QmluYXJ5U25pcHBldDxKSVRBZGRHZW5l
cmF0b3I+KG9wZXJhdGlvblZhbHVlQWRkKTsKKyAgICAgICAgZW1pdEFkZFNuaXBwZXQoKTsKICAg
ICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlU3RyQ2F0KCkKQEAgLTgwNTgsNiArODA1OSw3NiBA
QCBwcml2YXRlOgogICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOwogICAgIH0KIAorICAg
IHZvaWQgZW1pdEFkZFNuaXBwZXQoKQorICAgIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9k
ZTsKKyAgICAgICAgCisgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShub2RlLT5jaGls
ZDEoKSk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQyKCkp
OworCisgICAgICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShu
b2RlLT5jaGlsZDEoKSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAgU25pcHBldE9wZXJhbmQgcmln
aHRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkucmVzdWx0VHlwZSgpKTsK
KyAgICAgICAgICAgIAorICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291
dC5wYXRjaHBvaW50KEludDY0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lz
dGVyKGxlZnQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIocmlnaHQp
OworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJl
ZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
KG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKSk7CisgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBl
eGNlcHRpb25IYW5kbGUgPQorICAgICAgICAgICAgcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRp
b25zKHBhdGNocG9pbnQpOworICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3Rl
cnMgPSAxOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSAyOwor
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMoKSk7CisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBw
YXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAg
ICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsK
KworICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25z
ID0KKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVh
dGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOworCisgICAgICAgICAgICAgICAgSklUQWRkSUMqIGFk
ZElDID0gaml0LmNvZGVCbG9jaygpLT5hZGRKSVRBZGRJQygpOworICAgICAgICAgICAgICAgIEJv
eDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+IGFkZElDR2VuZXJhdGlvblN0YXRlID0gQm94PE1hdGhJ
Q0dlbmVyYXRpb25TdGF0ZT46OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIEFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlID0gc3RhdGUtPmdyYXBoLmJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYyktPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9y
aWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBhZGRJQy0+bV9n
ZW5lcmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNW
YWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3MocGFyYW1zWzFdLmdwcigpKSwgSlNWYWx1ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwgcGFyYW1z
LmZwU2NyYXRjaCgwKSwKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2NyYXRjaCgxKSwg
cGFyYW1zLmdwU2NyYXRjaCgwKSwgSW52YWxpZEZQUlJlZywgYXJpdGhQcm9maWxlKTsKKworICAg
ICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lID0gYWRkSUMtPmdlbmVyYXRlSW5saW5l
KGppdCwgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKworICAgICAgICAgICAgICAgIGlmIChnZW5l
cmF0ZWRJbmxpbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFhZGRJQ0dlbmVyYXRp
b25TdGF0ZS0+bV9zbG93UGF0aEp1bXBzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgICAgICBh
dXRvIGRvbmUgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExh
dGVQYXRoKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMu
bGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRl
LT5tX3Nsb3dQYXRoU3RhcnQgPSBqaXQubGFiZWwoKTsKKworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nob3VsZFNsb3dQYXRoUmVwYXRjaCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJh
dGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9y
aWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgcGFyYW1zWzBdLmdwcigpLCBwYXJh
bXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGFkZElDKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3Rh
dGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxs
ID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBq
aXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9uVmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwg
cGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGwuY2FsbCgp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaml0
Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGpp
dC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKCphZGRJQ0dlbmVyYXRp
b25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwg
cGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBleGNlcHRpb25zLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVmFs
dWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNldEpTVmFs
dWUocGF0Y2hwb2ludCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmluYXJ5Qml0
T3BHZW5lcmF0b3I+CiAgICAgdm9pZCBlbWl0QmluYXJ5Qml0T3BTbmlwcGV0KEpfSklUT3BlcmF0
aW9uX0VKSiBzbG93UGF0aEZ1bmN0aW9uKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtODI2LDYgKzgy
NiwxOCBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsKICAgICB9CiAK
KyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVzdGVkSW1t
UHRyIGFyZzUsIFRydXN0ZWRJbW1QdHIgYXJnNikKKyAgICB7CisgICAgICAgIHJlc2V0Q2FsbEFy
Z3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmcyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnNCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc1KTsKKyAg
ICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzYpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
LCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1LCBHUFJSZWcgYXJnNiwgVHJ1
c3RlZEltbVB0ciBhcmc3KQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CkBA
IC0xNTk0LDYgKzE2MDYsMTQgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIs
IEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1LCBUcnVzdGVkSW1t
UHRyIGFyZzYpCisgICAgeworICAgICAgICBwb2tlKGFyZzYsIFBPS0VfQVJHVU1FTlRfT0ZGU0VU
ICsgMik7CisgICAgICAgIHBva2UoYXJnNSwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAxKTsKKyAg
ICAgICAgcG9rZShhcmc0LCBQT0tFX0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVzdGVkSW1tUHRyIGFyZzUp
CiAgICAgewogICAgICAgICBwb2tlKGFyZzUsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMSk7CkBA
IC0yMDk5LDYgKzIxMTksMTQgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7
CisgICAgICAgIHNldHVwVHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjI+KGFyZzEsIGFyZzIpOworICAgICAgICBtb3ZlKGFyZzMsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJndW1lbnRH
UFI0KTsKKyAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0
ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICBz
ZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJnNSk7CkBAIC0y
MjA3LDYgKzIyMzUsMTUgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAgIHZvaWQg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdz
IGFyZzIpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpKTsKKyNlbHNlCisgICAgICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxv
YWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCkp
OworI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
SlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQog
ICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjIxNSw2ICsyMjUyLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJH
IGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJn
Mi50YWdHUFIoKSwgYXJnMyk7CiAjZW5kaWYKICAgICB9CisKKyAgICB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVz
dGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFy
ZzIuZ3ByKCksIGFyZzMsIGFyZzQpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRh
Z0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgYXJnMywgYXJnNCk7Cisj
ZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50cyhKU1ZhbHVlUmVncyBh
cmcxKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjAzMzUx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDMsMTAgKzQzLDEwIEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVRE
aXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIgorI2lu
Y2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpTSW50ZXJmYWNlSklULmgiCiAjaW5jbHVk
ZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmlnaW5NYXAuaCIKLSNpbmNsdWRlICJS
ZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTQzNSw3ICs0MzUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjb21w
aWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRpZmllciopOwogCiAgICAgICAgIC8vIEFyaXRo
bWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAgdm9pZCBlbWl0U3ViMzJDb25zdGFudChpbnQg
ZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQsIFJlc3VsdFR5cGUgb3BUeXBlKTsKICAgICAg
ICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bjb2RlSUQsIGludCBkc3QsIGludCBvcDEsIGlu
dCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3QmIG5vdEludDMyT3AxLCBKdW1wTGlzdCYgbm90
SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVycyA9IHRydWUsIGJvb2wgb3AySXNJblJlZ2lz
dGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNzYzLDcgKzc2
MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJSZWcsIFVuaXF1
ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCwgSlNW
YWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmlsZSopOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SkFycCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxl
Kik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzKTsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpB
cnBKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBBcml0aFByb2Zp
bGUqLCBKSVRBZGRJQyopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNW
YWx1ZVJlZ3MsIEpJVEFkZElDKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEFycmF5
UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9F
Sk9KLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKQEAgLTk1Myw2ICs5NTUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIgbV9wY1RvQ29kZU9y
aWdpbk1hcEJ1aWxkZXI7CiAKKyAgICAgICAgSGFzaE1hcDxJbnN0cnVjdGlvbiosIEpJVEFkZElD
Kj4gbV9pbnN0cnVjdGlvblRvSklUQWRkSUM7CisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24q
LCBNYXRoSUNHZW5lcmF0aW9uU3RhdGU+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlv
blN0YXRlOworCiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZDsKICAgICAgICAgYm9vbCBt
X2NhbkJlT3B0aW1pemVkT3JJbmxpbmVkOwogICAgICAgICBib29sIG1fc2hvdWxkRW1pdFByb2Zp
bGluZzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRv
ci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QWRkR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDUyIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRl
ICJBcml0aFByb2ZpbGUuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKKyNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBK
SVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCitKSVRN
YXRoSUNJbmxpbmVSZXN1bHQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZShDQ2FsbEhl
bHBlcnMmIGppdCwgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKK3sKKyAgICAvLyBXZSBk
ZWZhdWx0IHRvIHNwZWN1bGF0aW5nIGludDMyLgorICAgIE9ic2VydmVkVHlwZSBsaHMgPSBPYnNl
cnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAgICBPYnNlcnZlZFR5cGUgcmhzID0gT2JzZXJ2ZWRU
eXBlKCkud2l0aEludDMyKCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKSB7CisgICAgICAgIGxo
cyA9IG1fYXJpdGhQcm9maWxlLT5saHNPYnNlcnZlZFR5cGUoKTsKKyAgICAgICAgcmhzID0gbV9h
cml0aFByb2ZpbGUtPnJoc09ic2VydmVkVHlwZSgpOworICAgICAgICBpZiAobGhzLmlzRW1wdHko
KSB8fCByaHMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBsaHMgPSBPYnNlcnZlZFR5cGUoKS53
aXRoSW50MzIoKTsKKyAgICAgICAgICAgIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGxocy5pc09ubHlOb25OdW1iZXIoKSAmJiBy
aHMuaXNPbmx5Tm9uTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBKSVRNYXRoSUNJbmxpbmVSZXN1
bHQ6OkRvbnRHZW5lcmF0ZTsKKworICAgIGlmICgobGhzLmlzT25seUludDMyKCkgfHwgbV9sZWZ0
T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgJiYgKHJocy5pc09ubHlJbnQzMigpIHx8IG1fcmlnaHRP
cGVyYW5kLmlzQ29uc3RJbnQzMigpKSkgeworICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKKyAgICAg
ICAgaWYgKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgc3RhdGUu
bV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpKTsKKyAg
ICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkKKyAgICAgICAgICAgIHN0
YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCkp
OworCisgICAgICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8IG1fcmlnaHRP
cGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YXIgPSBt
X2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9yaWdodCA6IG1fbGVmdDsKKyAgICAgICAg
ICAgIGludDMyX3QgY29uc3RWYWx1ZSA9IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgPyBt
X2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpIDogbV9yaWdodE9wZXJhbmQuYXNDb25zdEludDMy
KCk7CisgICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hB
ZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBl
cnM6OkltbTMyKGNvbnN0VmFsdWUpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hBZGQzMihD
Q2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxv
YWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hH
UFIsIG1fcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6R2Vu
ZXJhdGVkRmFzdFBhdGg7CisgICAgfQorCisgICAgcmV0dXJuIEpJVE1hdGhJQ0lubGluZVJlc3Vs
dDo6R2VuZXJhdGVGdWxsU25pcHBldDsKK30KKworYm9vbCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIGVu
ZEp1bXBMaXN0LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93UGF0aEp1bXBMaXN0KQogewog
ICAgIEFTU0VSVChtX3NjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CiAgICAgQVNTRVJUKG1f
c2NyYXRjaEdQUiAhPSBtX2xlZnQucGF5bG9hZEdQUigpKTsKQEAgLTQzLDEyICs4NCw4IEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIEFTU0VSVCghbV9s
ZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMy
KCkpOwogICAgIAotICAgIGlmICghbV9sZWZ0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkgfHwgIW1f
cmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkgewotICAgICAgICBBU1NFUlQoIW1fZGlkRW1p
dEZhc3RQYXRoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZGlkRW1pdEZhc3RQ
YXRoID0gdHJ1ZTsKKyAgICBpZiAoIW1fbGVmdE9wZXJhbmQubWlnaHRCZU51bWJlcigpIHx8ICFt
X3JpZ2h0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlz
Q29uc3RJbnQzMigpKSB7CiAgICAgICAgIEpTVmFsdWVSZWdzIHZhciA9IG1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgPyBtX3JpZ2h0IDogbV9sZWZ0OwpAQCAtNTgsMjAgKzk1LDIwIEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgLy8gVHJ5IHRv
IGRvIGludFZhciArIGludENvbnN0YW50LgogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90
SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMih2YXIpOwogCi0gICAgICAgIG1fc2xvd1BhdGhK
dW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZh
ci5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMy
KCkpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZhci5wYXlsb2FkR1BSKCksIEND
YWxsSGVscGVyczo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMyKCkpLCBtX3NjcmF0Y2hHUFIp
KTsKIAogICAgICAgICBqaXQuYm94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Ci0gICAg
ICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAgICBlbmRKdW1wTGlz
dC5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGlu
Z1BvaW50KCkpIHsKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobm90SW50
MzIpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5h
cHBlbmQobm90SW50MzIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBUcnkgdG8gZG8gZG91YmxlVmFyICsgZG91YmxlKGludENvbnN0YW50KS4KICAg
ICAgICAgbm90SW50MzIubGluaygmaml0KTsKICAgICAgICAgaWYgKCF2YXJPcHIuZGVmaW5pdGVs
eUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcih2YXIsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1Bh
dGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BS
KSk7CiAKICAgICAgICAgaml0LnVuYm94RG91YmxlTm9uRGVzdHJ1Y3RpdmUodmFyLCBtX2xlZnRG
UFIsIG1fc2NyYXRjaEdQUiwgbV9zY3JhdGNoRlBSKTsKIApAQCAtODksMjIgKzEyNiwyNCBAQCB2
b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIGxlZnROb3RJ
bnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpOwogICAgICAgICByaWdodE5vdEludCA9
IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwogCi0gICAgICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmln
aHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKwor
ICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxw
ZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCks
IG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1f
cmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CisgICAg
ICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKwogCiAgICAgICAgIGlmICghaml0
LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExp
c3QuYXBwZW5kKGxlZnROb3RJbnQpOwotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFw
cGVuZChyaWdodE5vdEludCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzbG93
UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgbGVmdE5vdEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1f
bGVmdE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRo
SnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQ
UikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90
TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BSKSk7CiAgICAgICAgIGlmICghbV9yaWdodE9wZXJh
bmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3Qu
YXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKKyAg
ICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlciht
X3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0
cnVjdGl2ZShtX2xlZnQsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwog
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgcmlnaHRJc0RvdWJsZSA9IGppdC5icmFuY2hJZk5v
dEludDMyKG1fcmlnaHQpOwpAQCAtMTE0LDcgKzE1Myw3IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgICAgICByaWdodE5vdEludC5saW5rKCZqaXQpOwog
ICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9y
aWdodCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAg
ICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fbGVmdEZQ
Uik7CiAKQEAgLTEyOCwxMCArMTY3LDEyIEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJsZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQu
YWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7Ci0gICAgaWYgKG1fcmVzdWx0UHJvZmls
ZSkKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgaWYg
KG1fYXJpdGhQcm9maWxlKQorICAgICAgICBtX2FyaXRoUHJvZmlsZS0+ZW1pdFNldERvdWJsZShq
aXQpOwogICAgICAgICAKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwor
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxNiArMjksMjMgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklUTWF0aElDSW5saW5lUmVzdWx0LmgiCisjaW5j
bHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlvblN0YXRlOworCiBjbGFzcyBK
SVRBZGRHZW5lcmF0b3IgewogcHVibGljOgorICAgIEpJVEFkZEdlbmVyYXRvcigpCisgICAgeyB9
CisKICAgICBKSVRBZGRHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBw
ZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1Zh
bHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIs
IEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAot
ICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAg
QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9w
ZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5k
KQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDE2ICs1NSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIo
c2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAg
LCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmls
ZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXND
b25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICB9CiAK
LSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7Ci0KLSAgICBib29sIGRp
ZEVtaXRGYXN0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRW1pdEZhc3RQYXRoOyB9Ci0gICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QoKSB7IHJldHVybiBtX2VuZEp1bXBM
aXN0OyB9Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCgpIHsg
cmV0dXJuIG1fc2xvd1BhdGhKdW1wTGlzdDsgfQorICAgIEpJVE1hdGhJQ0lubGluZVJlc3VsdCBn
ZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmLCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmKTsKKyAg
ICBib29sIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNsb3dQYXRoSnVtcExp
c3QpOwogCiBwcml2YXRlOgogICAgIFNuaXBwZXRPcGVyYW5kIG1fbGVmdE9wZXJhbmQ7CkBAIC02
OSwxMSArNzMsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJl
ZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9m
aWxlKiBtX3Jlc3VsdFByb2ZpbGU7Ci0gICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNl
IH07Ci0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7Ci0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wTGlzdCBtX3Nsb3dQYXRoSnVtcExpc3Q7CisgICAgQXJpdGhQcm9maWxl
KiBtX2FyaXRoUHJvZmlsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEpJVCkKICNpbmNsdWRlICJKSVQu
aCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVyYXRv
ci5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpJVERpdkdlbmVyYXRvci5oIgogI2lu
Y2x1ZGUgIkpJVElubGluZXMuaCIKICNpbmNsdWRlICJKSVRMZWZ0U2hpZnRHZW5lcmF0b3IuaCIK
KyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRNdWxHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJKSVROZWdHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCkBA
IC00NCwxMSArNDYsMTEgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5j
bHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAKLQogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUOjpl
bWl0X29wX2psZXNzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC02NzUsMjAg
KzY3NywyNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdXJzaGlmdChJbnN0cnVjdGlvCiAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAorQUxXQVlTX0lOTElORSBzdGF0aWMgT3BlcmFuZFR5
cGVzIGdldE9wZXJhbmRUeXBlcyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCit7CisgICAgcmV0
dXJuIE9wZXJhbmRUeXBlcyhBcml0aFByb2ZpbGU6OmZyb21JbnQoaW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIEFyaXRoUHJvZmlsZTo6ZnJvbUludChpbnN0cnVjdGlv
bls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7Cit9CisKIHZvaWQgSklUOjplbWl0X29w
X2FkZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCByZXN1bHQg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6
ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZElu
c3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAg
ICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IElu
dmFsaWRGUFJSZWc7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRU
eXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0
UmVnczsKQEAgLTY5Niw5ICs3MDQsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmco
KSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9m
aWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxv
Y2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCBy
aWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtNzE1LDQ3ICs3MjMsNDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGlmICghcmlnaHRPcGVyYW5k
LmlzQ29uc3QoKSkKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVn
cyk7CiAKLSAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVn
VDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOworICAgIEpJVEFkZElD
KiBhZGRJQyA9IG1fY29kZUJsb2NrLT5hZGRKSVRBZGRJQygpOwogCi0gICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgoKnRoaXMpOworICAgIG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDLmFkZChjdXJyZW50
SW5zdHJ1Y3Rpb24sIGFkZElDKTsKKyAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2Vu
ZXJhdGlvblN0YXRlID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuYWRk
KGN1cnJlbnRJbnN0cnVjdGlvbiwgTWF0aElDR2VuZXJhdGlvblN0YXRlKCkpLml0ZXJhdG9yLT52
YWx1ZTsKIAotICAgIGlmIChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpIHsKLSAgICAgICAgZ2VuLmVu
ZEp1bXBMaXN0KCkubGluayh0aGlzKTsKLSAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihy
ZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgICAgICAKLSAgICAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNs
b3dQYXRoSnVtcExpc3QoKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGdlbi5lbmRK
dW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3Qo
KS5lbXB0eSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsKLSAgICAgICAgICAgIGlm
IChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKLSAgICAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXND
b25zdCgpKQotICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdo
dFJlZ3MpOwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKLSAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwo
dGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICAgICAgICAgIHNs
b3dQYXRoQ2FsbC5jYWxsKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgYWRkSUMtPm1fZ2VuZXJh
dG9yID0gSklUQWRkR2VuZXJhdG9yKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNj
cmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CisKKyAgICBib29sIGdlbmVyYXRlZElubGluZUNvZGUg
PSBhZGRJQy0+Z2VuZXJhdGVJbmxpbmUoKnRoaXMsIGFkZElDR2VuZXJhdGlvblN0YXRlKTsKKyAg
ICBpZiAoIWdlbmVyYXRlZElubGluZUNvZGUpIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlz
Q29uc3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVn
cyk7CisgICAgICAgIGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKworICAgICAgICBpZiAo
YXJpdGhQcm9maWxlKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBhcml0aFByb2ZpbGUp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVl
QWRkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgYWRkU2xvd0Nhc2UoYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aEp1bXBzKTsKKyAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiB9CiAKIHZvaWQg
SklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBsaW5rQWxsU2xvd0Nh
c2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQp
OwogCisgICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1f
aW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQoY3VycmVudEluc3RydWN0
aW9uKS0+dmFsdWU7CisgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aFN0YXJ0ID0g
bGFiZWwoKTsKKwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVz
ID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikp
OwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpT
VmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVn
cyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9
IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxl
ZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdo
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTc2OSwxOCArNzc3LDI2IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGMKICAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudElu
dChvcDIpKQogICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29u
c3RhbnRJbnQob3AyKSk7CiAKKyAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgIGlmIChyaWdodE9w
ZXJhbmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmln
aHRSZWdzKTsKKworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElD
LmdldChjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkp
IHsKLSAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgIGlmIChyaWdodE9wZXJh
bmQuaXNDb25zdCgpKQotICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKLSAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
YWRkKTsKLSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKLSAgICB9CisgICAgICAgIEFyaXRo
UHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1
cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3No
b3VsZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLm1f
c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0
aW1pemUsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUsIGFk
ZElDKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9z
bG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJl
c3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOworICAgIH0gZWxz
ZQorICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJp
Z2h0UmVncywgYWRkSUMpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1
bHRSZWdzKTsKKworICAgIGFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikg
eworICAgICAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2VuZXJhdGlvblN0YXRlID0g
bV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuZmluZChjdXJyZW50SW5zdHJ1
Y3Rpb24pLT52YWx1ZTsKKyAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29kZShhZGRJQ0dl
bmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgfSk7CiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNzg4LDE0ICs4MDQs
MTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNv
cGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxl
ZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJl
Z3M7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsKICNlbHNlCisgICAgT3BlcmFuZFR5
cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNW
YWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFs
dWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtODAzLDkgKzgyMCw5IEBAIHZvaWQgSklU
OjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICNlbmRpZgogICAgIEZQUlJlZyBzY3Jh
dGNoRlBSID0gZnBSZWdUMjsKIAotICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyOworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2Rl
QmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFy
aXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3Ry
dWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkp
OwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC04
MzEsNyArODQ4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQog
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJ
VERpdkdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQ
Uiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEs
IHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTg2MSwxNSArODc4LDE2IEBAIHZvaWQgSklUOjplbWl0
X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVu
dEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9w
ZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJy
ZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7
CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QyKTsKICAgICBH
UFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QzOwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxp
ZEZQUlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVz
KGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdz
OwpAQCAtODc3LDkgKzg5NSw5IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAotICAgIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQot
ICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUo
bV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+
YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVy
YW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC04OTcsNyArOTE1LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJVE11bEdlbmVyYXRvciBnZW4obGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAg
ICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmls
ZSk7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFy
aXRoUHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTkw
OSwxMiArOTI3LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUK
ICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHkoKSk7
CiAgICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICBpZiAoYXJpdGhQcm9maWxlKSB7CiAgICAg
ICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwogICAgICAgICAg
ICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAgICAgICAgICAg
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0
UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0
UmVncywgYXJpdGhQcm9maWxlKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
cmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEpJVFNs
b3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3Bh
dGhfbXVsKTsKQEAgLTkzMCwxMyArOTQ4LDE0IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwo
SW5zdHJ1Y3Rpb24qIGMKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsK
ICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVy
YW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9u
WzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0
eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rp
b24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAg
ICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVn
cyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC05NTUsOCArOTc0LDggQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZl
Q29uc3RJbnQzMigpKQogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgQXJpdGhQcm9maWxlJiBhcml0
aFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0
aW9uKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxlKTsKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKQEAgLTk2OSwxNSArOTg4LDE2IEBAIHZvaWQgSklUOjpl
bWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihj
dXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogICAgIEdQUlJlZyBz
Y3JhdGNoR1BSID0gcmVnVDI7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVn
OwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVu
dEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJl
Z1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC05
ODUsOSArMTAwNSw5IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUK
ICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAotICAgIFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQ
cm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAg
ICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQ
cm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxl
ZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFu
ZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC05OTYsNyArMTAxNiw3IEBAIHZvaWQgSklUOjplbWl0X29w
X3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwg
cmlnaHRSZWdzKTsKIAogICAgIEpJVFN1YkdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0
T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdU
MCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAg
ICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmls
ZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTEwMjMsOCArMTA0
Myw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGMKICNlbmRpZgog
CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewotICAgICAgICBSZXN1bHRQcm9maWxl
KiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7Cisg
ICAgICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJv
ZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywg
JmFyaXRoUHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCBy
ZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewogICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShKSVQpCiAK
KyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKIApAQCAtMTAxLDkgKzEwMiw5IEBAIHZvaWQgSklU
RGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICB9CiAKICAgICAvLyBJcyB0aGUg
cmVzdWx0IGFjdHVhbGx5IGFuIGludGVnZXI/IFRoZSBERkcgSklUIHdvdWxkIHJlYWxseSBsaWtl
IHRvIGtub3cuIElmIGl0J3MKLSAgICAvLyBub3QgYW4gaW50ZWdlciwgd2UgaW5jcmVtZW50IGEg
Y291bnQuIElmIHRoaXMgdG9nZXRoZXIgd2l0aCB0aGUgc2xvdyBjYXNlIGNvdW50ZXIKLSAgICAv
LyBhcmUgYmVsb3cgdGhyZXNob2xkIHRoZW4gdGhlIERGRyBKSVQgd2lsbCBjb21waWxlIHRoaXMg
ZGl2aXNpb24gd2l0aCBhIHNwZWN1bGF0aW9uCi0gICAgLy8gdGhhdCB0aGUgcmVtYWluZGVyIGlz
IHplcm8uCisgICAgLy8gbm90IGFuIGludGVnZXIsIHdlIHNldCBhIGJpdC4gSWYgdGhpcyB0b2dl
dGhlciB3aXRoIHRoZSBzbG93IGNhc2UgY291bnRlciBhcmUgYmVsb3cKKyAgICAvLyB0aHJlc2hv
bGQgdGhlbiB0aGUgREZHIEpJVCB3aWxsIGNvbXBpbGUgdGhpcyBkaXZpc2lvbiB3aXRoIGEgc3Bl
Y3VsYXRpb24gdGhhdCB0aGUKKyAgICAvLyByZW1haW5kZXIgaXMgemVyby4KIAogICAgIC8vIEFz
IHdlbGwsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBhIGRvdWJsZSByZXN1bHQgaGVyZSB3b3VsZCBj
YXVzZSBhbiBpbXBvcnRhbnQgZmllbGQKICAgICAvLyBpbiB0aGUgaGVhcCB0byBzb21ldGltZXMg
aGF2ZSBkb3VibGVzIGluIGl0LCByZXN1bHRpbmcgaW4gZG91YmxlIHByZWRpY3Rpb25zIGdldHRp
bmcKQEAgLTEyOCw4ICsxMjksOCBAQCB2b2lkIEpJVERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChDCiAKICAgICBub3REb3VibGVaZXJvLmxpbmsoJmppdCk7CiAjZW5kaWYKLSAgICBpZiAo
bV9yZXN1bHRQcm9maWxlKQotICAgICAgICBqaXQuYWRkMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoMSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+
YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQoKSkpOworICAgIGlmIChtX2FyaXRoUHJvZmls
ZSkKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9m
aWxlOjpzcGVjaWFsRmFzdFBhdGhCaXQpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyht
X2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgaml0LmJveERvdWJsZShtX2xl
ZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVREaXZHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVERpdkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3
IEBAIHB1YmxpYzoKICAgICBKSVREaXZHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJh
bmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVn
IGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3Jh
dGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikK
KyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6
IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmln
aHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hGUFIpCi0g
ICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwgbV9hcml0
aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVy
YW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAg
ICAgfQpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwog
ICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBS
ZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRo
UHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIEND
YWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDE2LDkgKzQxNiwz
MyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotaW5saW5lIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpS
cCBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1
ZVJlZ3MgYXJnMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0FMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SiBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1
ZVJlZ3MgYXJnMikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJn
MiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzIpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICBy
ZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJwIG9wZXJhdGlvbiwgSlNWYWx1ZVJl
Z3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcml0aFByb2ZpbGUpKTsKKyAgICBDYWxsIGNhbGwgPSBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRz
KHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFycEphaWMg
b3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVS
ZWdzIGFyZzIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMpCit7
CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1Q
dHIoYXJpdGhQcm9maWxlKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgIENhbGwgY2FsbCA9
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3Vs
dHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSmFpYyBv
cGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJl
Z3MgYXJnMiwgSklUQWRkSUMqIGFkZElDKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CiAgICAgQ2FsbCBjYWxsID0g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogICAgIHNldHVwUmVzdWx0
cyhyZXN1bHQpOwogICAgIHJldHVybiBjYWxsOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRNYXRoSUMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE1hdGhJQy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRNYXRoSUMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEpJVCkKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVEFkZEdl
bmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIgorI2luY2x1ZGUg
IkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXBhdGNoLmgiCisjaW5jbHVkZSAiU25pcHBldE9w
ZXJhbmQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtCdWZmZXI7CisKK3N0cnVj
dCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUgeworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Zh
c3RQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZmFzdFBhdGhFbmQ7Cisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fc2xvd1BhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBtX3Nsb3dQYXRoQ2FsbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qg
bV9zbG93UGF0aEp1bXBzOworICAgIGJvb2wgbV9zaG91bGRTbG93UGF0aFJlcGF0Y2g7Cit9Owor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yVHlwZT4KK2NsYXNzIEpJVE1hdGhJQyB7Citw
dWJsaWM6CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgZG9uZUxvY2F0aW9uKCkgeyByZXR1cm4gbV9p
bmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1faW5saW5lU2l6ZSk7IH0KKyAgICBDb2RlTG9jYXRp
b25MYWJlbCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0Lmxh
YmVsQXRPZmZzZXQobV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCk7IH0KKyAgICBDb2Rl
TG9jYXRpb25DYWxsIHNsb3dQYXRoQ2FsbExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFy
dC5jYWxsQXRPZmZzZXQobV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24pOyB9
CisKKyAgICBib29sIGdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYgaml0LCBNYXRoSUNHZW5l
cmF0aW9uU3RhdGUmIHN0YXRlKQorICAgIHsKKyAgICAgICAgc3RhdGUubV9mYXN0UGF0aFN0YXJ0
ID0gaml0LmxhYmVsKCk7CisgICAgICAgIEpJVE1hdGhJQ0lubGluZVJlc3VsdCByZXN1bHQgPSBt
X2dlbmVyYXRvci5nZW5lcmF0ZUlubGluZShqaXQsIHN0YXRlKTsKKyAgICAgICAgc3RhdGUubV9m
YXN0UGF0aEVuZCA9IGppdC5sYWJlbCgpOworCisgICAgICAgIHN3aXRjaCAocmVzdWx0KSB7Cisg
ICAgICAgIGNhc2UgSklUTWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZWRGYXN0UGF0aDogewor
ICAgICAgICAgICAgc3RhdGUubV9zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSB0cnVlOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBKSVRNYXRoSUNJbmxp
bmVSZXN1bHQ6OkdlbmVyYXRlRnVsbFNuaXBwZXQ6IHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wTGlzdCBlbmRKdW1wTGlzdDsKKyAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gbV9n
ZW5lcmF0b3IuZ2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBMaXN0LCBzdGF0ZS5tX3Nsb3dQ
YXRoSnVtcHMpOworICAgICAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHN0
YXRlLm1fc2hvdWxkU2xvd1BhdGhSZXBhdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZW5k
SnVtcExpc3QubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6RG9udEdlbmVyYXRlOiB7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIHZvaWQgZ2VuZXJhdGVPdXRPZkxpbmUoVk0mIHZtLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgRnVuY3Rpb25QdHIgY2FsbFJlcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgLy8g
V2UgcmV3aXJlIHRvIHRoZSBhbHRlcm5hdGUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB3
ZSBjYW4gYWxsb2NhdGUgdGhlIG91dCBvZiBsaW5lIHBhdGgKKyAgICAgICAgLy8gYmVjYXVzZSBp
ZiB3ZSBmYWlsIGFsbG9jYXRpbmcgdGhlIG91dCBvZiBsaW5lIHBhdGgsIHdlIGRvbid0IHdhbnQg
dG8gd2Fpc3QgdGltZSB0cnlpbmcgdG8KKyAgICAgICAgLy8gYWxsb2NhdGUgaXQgaW4gdGhlIGZ1
dHVyZS4KKyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgY2FsbFJlcGxhY2VtZW50KTsKKworICAgICAgICB7CisgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKKworICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVuZEp1bXBMaXN0OyAKKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aEp1bXBMaXN0OyAKKyAgICAgICAgICAgIGJvb2wgZW1p
dHRlZEZhc3RQYXRoID0gbV9nZW5lcmF0b3IuZ2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBM
aXN0LCBzbG93UGF0aEp1bXBMaXN0KTsKKyAgICAgICAgICAgIGlmICghZW1pdHRlZEZhc3RQYXRo
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVu
ZChqaXQuanVtcCgpKTsKKworICAgICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCBq
aXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKKyAgICAgICAgICAgIGlmIChs
aW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoZW5kSnVtcExpc3QsIGRvbmVMb2NhdGlvbigp
KTsKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhzbG93UGF0aEp1bXBMaXN0LCBzbG93UGF0
aFN0YXJ0TG9jYXRpb24oKSk7CisKKyAgICAgICAgICAgIG1fY29kZSA9IEZJTkFMSVpFX0NPREVf
Rk9SKAorICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgbGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6
IGdlbmVyYXRpbmcgb3V0IG9mIGxpbmUgSUMgc25pcHBldCIpKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworICAg
ICAgICAgICAgYXV0byBqdW1wID0gaml0Lmp1bXAoKTsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0
IG5lZWQgYSBub3Agc2xlZCBoZXJlIGJlY2F1c2Ugbm9ib2R5IHNob3VsZCBiZSBqdW1waW5nIGlu
dG8gdGhlIG1pZGRsZSBvZiBhbiBJQy4KKyAgICAgICAgICAgIGJvb2wgbmVlZHNCcmFuY2hDb21w
YWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBt
X2lubGluZVN0YXJ0LmRhdGFMb2NhdGlvbigpLCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29k
ZVNpemUoKSwgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9u
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsKKyAg
ICAgICAgICAgIGxpbmtCdWZmZXIubGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbChtX2NvZGUu
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgICAgIEZJTkFMSVpFX0NPREUo
bGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6IGxpbmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2Yg
bGluZSBzdHViIikpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBmaW5hbGl6ZUlubGlu
ZUNvZGUoY29uc3QgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlua0J1ZmZlciYgbGlu
a0J1ZmZlcikKKyAgICB7CisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHN0YXJ0ID0gbGlua0J1
ZmZlci5sb2NhdGlvbk9mKHN0YXRlLm1fZmFzdFBhdGhTdGFydCk7CisgICAgICAgIG1faW5saW5l
U3RhcnQgPSBzdGFydDsKKworICAgICAgICBtX2lubGluZVNpemUgPSBNYWNyb0Fzc2VtYmxlcjo6
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIu
bG9jYXRpb25PZihzdGF0ZS5tX2Zhc3RQYXRoRW5kKSk7CisgICAgICAgIEFTU0VSVChtX2lubGlu
ZVNpemUgPiAwKTsKKworICAgICAgICBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2Nh
dGlvbiA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAg
ICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhDYWxsKSk7
CisgICAgICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQgPSBNYWNyb0Fzc2VtYmxl
cjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZm
ZXIubG9jYXRpb25PZihzdGF0ZS5tX3Nsb3dQYXRoU3RhcnQpKTsKKyAgICB9CisKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbV9jb2RlOworICAgIENvZGVMb2NhdGlvbkxhYmVsIG1faW5saW5l
U3RhcnQ7CisgICAgaW50MzJfdCBtX2lubGluZVNpemU7CisgICAgaW50MzJfdCBtX2RlbHRhRnJv
bVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbjsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3Rh
cnRUb1Nsb3dQYXRoU3RhcnQ7CisgICAgR2VuZXJhdG9yVHlwZSBtX2dlbmVyYXRvcjsKK307CisK
K3R5cGVkZWYgSklUTWF0aElDPEpJVEFkZEdlbmVyYXRvcj4gSklUQWRkSUM7CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEpJVCkKKworbmFtZXNwYWNlIEpTQyB7
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3I+IGNsYXNzIEpJVE1hdGhJQzsKK2NsYXNz
IEpJVEFkZEdlbmVyYXRvcjsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBK
SVRBZGRJQzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNJbmxpbmVSZXN1bHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0lubGluZVJl
c3VsdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRo
SUNJbmxpbmVSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBjbGFzcyBKSVRNYXRoSUNJ
bmxpbmVSZXN1bHQgeworICAgIEdlbmVyYXRlZEZhc3RQYXRoLAorICAgIEdlbmVyYXRlRnVsbFNu
aXBwZXQsCisgICAgRG9udEdlbmVyYXRlCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11
bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDggQEAKIAogI2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKwog
bmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYgaml0KQpAQCAtMTM3LDcgKzEzOSw3IEBAIHZvaWQgSklUTXVsR2VuZXJh
dG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAvLyBEbyBkb3VibGVWYXIgKiBkb3VibGVWYXIu
CiAgICAgaml0Lm11bERvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOwogCi0gICAgaWYgKCFt
X3Jlc3VsdFByb2ZpbGUpCisgICAgaWYgKCFtX2FyaXRoUHJvZmlsZSkKICAgICAgICAgaml0LmJv
eERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gVGhl
IEludDUyIG92ZXJmbG93IGNoZWNrIGJlbG93IGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8IDUx
IGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUuCkBAIC0xNDksMTggKzE1MSwxOCBAQCB2
b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIGppdC5tb3Zl
RG91YmxlVG82NChtX2xlZnRGUFIsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcCBub3ROZWdhdGl2ZVplcm8gPSBqaXQuYnJhbmNoNjQoQ0NhbGxIZWxw
ZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW02NChuZWdhdGl2ZVplcm9CaXRzKSk7CiAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVs
cGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkp
OworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2Zp
bGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRo
UHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBk
b25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsK
LSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmls
ZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVz
dWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2Fs
bEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygp
KSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hH
UFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwgbV9z
Y3JhdGNoR1BSKTsKICAgICAgICAgaml0LmFuZDMyKENDYWxsSGVscGVyczo6SW1tMzIoMHg3ZmYp
LCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm9JbnQ1Mk92ZXJm
bG93ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6TGVzc1RoYW5PckVxdWFsLCBtX3NjcmF0
Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDB4NDMxKSk7CiAKLSAgICAgICAgaml0
Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVy
ZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRk
cmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihBcml0aFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRl
QWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAgIG5vSW50
NTJPdmVyZmxvdy5saW5rKCZqaXQpOwogCiAgICAgICAgIGRvbmUubGluaygmaml0KTsKQEAgLTE3
MSwxOCArMTczLDE4IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMK
ICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJz
OjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMigwKSkpOwogICAgICAgICBub3ROZWdhdGl2ZVplcm8uYXBwZW5kKGppdC5icmFuY2gzMihD
Q2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC50YWdHUFIoKSwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIobmVnYXRpdmVaZXJvQml0cyA+PiAzMikpKTsKIAotICAgICAgICBqaXQub3Iz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91Ymxl
KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNz
T2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KEFyaXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRy
ZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5s
aW5rKCZqaXQpOwotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihS
ZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5v
cjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0Rv
dWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRy
ZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC50YWdHUFIoKSwgbV9z
Y3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0zMig1
MiAtIDMyKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LmFuZDMyKENDYWxsSGVscGVyczo6
SW1tMzIoMHg3ZmYpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
bm9JbnQ1Mk92ZXJmbG93ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6TGVzc1RoYW5PckVx
dWFsLCBtX3NjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDB4NDMxKSk7CiAg
ICAgICAgIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
bV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRz
KCkpKTsKIAogICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChub0ludDUyT3ZlcmZsb3cpOwog
ICAgICAgICBpZiAobV9zY3JhdGNoR1BSID09IG1fcmVzdWx0LnRhZ0dQUigpIHx8IG1fc2NyYXRj
aEdQUiA9PSBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE11bEdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEpJVE11bEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBs
ZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAg
ICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBS
UmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAg
ICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3Bl
cmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAg
LCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRj
aEZQUikKLSAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAg
LCBtX2FyaXRoUHJvZmlsZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1f
bGVmdE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNQ
b3NpdGl2ZUNvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgog
ICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBS
UmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7Cisg
ICAgQXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQ
YXRoIHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlz
dDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAko
cmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJ
VCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxh
dGlvbk1vZGUuaCIKQEAgLTIyNDcsMTggKzIyNDgsODcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRvSW5kZXhTdAogICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIGluZGV4KS5zdHJpbmcoKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRBZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZNKiB2
bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4
ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEp
OworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworICAgIAor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGQoZXhlYywgb3AxLCBvcDIpKTsKK30KKwor
QUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcHJvZmlsZWRBZGQoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAK
KyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1Zh
bHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIEFTU0VSVChhcml0
aFByb2ZpbGUpOworICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2ZUxIU0FuZFJIUyhvcDEsIG9wMik7
CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKKyAgICBhcml0
aFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogeworICAgIHJldHVybiB1bnByb2ZpbGVkQWRk
KGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm90UHJvZmlsZWROb3RPcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikKK3sKKyAgICByZXR1cm4gdW5wcm9maWxl
ZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJp
dGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCit7CisgICAgcmV0dXJuIHByb2ZpbGVkQWRkKGV4ZWMs
IGVuY29kZWRPcDEsIGVuY29kZWRPcDIsIGFyaXRoUHJvZmlsZSk7Cit9CisKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKK3sK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKKworICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOworICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2
ZUxIU0FuZFJIUyhvcDEsIG9wMik7CisgICAgYXV0byBub25PcHRpbWl6ZVZhcmlhbnQgPSBvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9uT3B0aW1pemU7CisgICAgYWRkSUMtPmdlbmVyYXRlT3V0
T2ZMaW5lKCp2bSwgZXhlYy0+Y29kZUJsb2NrKCksIG5vbk9wdGltaXplVmFyaWFudCk7CiAgICAg
CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7CisgICAgYXJpdGhQ
cm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworCisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWROb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlLCBKSVRBZGRJQyopCit7CisgICAgcmV0dXJuIHByb2ZpbGVkQWRkKGV4
ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsIGFyaXRoUHJvZmlsZSk7Cit9CisKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIGF1dG8gbm9uT3B0
aW1pemVWYXJpYW50ID0gb3BlcmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZTsKKyAgICBhZGRJQy0+
Z2VuZXJhdGVPdXRPZkxpbmUoKnZtLCBleGVjLT5jb2RlQmxvY2soKSwgbm9uT3B0aW1pemVWYXJp
YW50KTsKKworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwor
ICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNBZGQoZXhlYywgb3AxLCBvcDIpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElD
KikKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKQEAgLTIyNjcsNyArMjMzNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMs
IG9wMSwgb3AyKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQp
OworCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0yMjg0LDcg
KzIzNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CkBAIC0yMjk2LDcgKzIzNjYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgZG91YmxlIGIgPSBv
cDIudG9OdW1iZXIoZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihh
ICogYik7Ci0gICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKyAg
ICBhcml0aFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0yMzEzLDcgKzIzODMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihhIC0gYikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiBy
ZXN1bHRQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCiB7
CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgZXhlYyk7CkBAIC0yMzI1LDcgKzIzOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7
CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC0gYik7Ci0gICAgcmVzdWx0
UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKyAgICBhcml0aFByb2ZpbGUtPmRl
dGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShK
SVQpCiAKKyNpbmNsdWRlICJKSVRNYXRoSUNGb3J3YXJkcy5oIgogI2luY2x1ZGUgIk1hY3JvQXNz
ZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAi
U2xvd1BhdGhSZXR1cm5UeXBlLmgiCkBAIC00Miw2ICs0Myw3IEBAIGNsYXNzIEFycmF5UHJvZmls
ZTsKIGNsYXNzIENhbGxMaW5rSW5mbzsKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIEV4ZWNTdGF0
ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTQXJyYXk7CiBjbGFzcyBKU0Z1bmN0
aW9uOwogY2xhc3MgSlNMZXhpY2FsRW52aXJvbm1lbnQ7CkBAIC01NCw3ICs1Niw3IEBAIGNsYXNz
IFdhdGNocG9pbnRTZXQ7CiAKIHN0cnVjdCBCeVZhbEluZm87CiBzdHJ1Y3QgSW5saW5lQ2FsbEZy
YW1lOwotc3RydWN0IFJlc3VsdFByb2ZpbGU7CitzdHJ1Y3QgQXJpdGhQcm9maWxlOwogCiB0eXBl
ZGVmIEV4ZWNTdGF0ZSBDYWxsRnJhbWU7CiAKQEAgLTY5LDYgKzcxLDcgQEAgdHlwZWRlZiBjaGFy
KiBVbnVzZWRQdHI7CiAgICAgQTogSlNBcnJheSoKICAgICBBYXA6IEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUqCiAgICAgQXA6IEFycmF5UHJvZmlsZSoKKyAgICBBcnA6IEFyaXRoUHJvZmlsZSoKICAg
ICBCeTogQnlWYWxJbmZvKgogICAgIEM6IEpTQ2VsbCoKICAgICBDYjogQ29kZUJsb2NrKgpAQCAt
ODEsNiArODQsNyBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBJY2Y6IElubGluZUNh
bGxGcmFtZSoKICAgICBJZGM6IGNvbnN0IElkZW50aWZpZXIqCiAgICAgSjogRW5jb2RlZEpTVmFs
dWUKKyAgICBKYWljOiBKSVRBZGRJQyoKICAgICBKY3A6IGNvbnN0IEpTVmFsdWUqCiAgICAgSnNj
OiBKU1Njb3BlKgogICAgIEpzZjogSlNGdW5jdGlvbioKQEAgLTkyLDcgKzk2LDYgQEAgdHlwZWRl
ZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgUTogaW50NjRfdAogICAgIFI6IFJlZ2lzdGVyCiAgICAg
UmVvOiBSZWdFeHBPYmplY3QqCi0gICAgUnA6IFJlc3VsdFByb2ZpbGUqCiAgICAgUzogc2l6ZV90
CiAgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHViSW5m
byoKQEAgLTEzMyw3ICsxMzYsOSBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFU
SU9OICpKCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJh
dGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBB
cnJheVByb2ZpbGUqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpf
SklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElP
TiAqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci10eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRf
T1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpScCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxlKik7Cit0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpBcnApKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJpdGhQcm9maWxlKik7Cit0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpBcnBKYWljKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFyaXRoUHJvZmlsZSos
IEpJVEFkZElDKik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJ
VE9wZXJhdGlvbl9FSkpKYWljKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEpJVEFkZElDKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9O
ICpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQzMl90KTsK
IHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VK
c3NSZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvSnNzKShF
eGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CkBAIC00MDgs
MTEgKzQxMywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5lCiBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3RhdGUqLCBp
bnQzMl90KTsKIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3RQ
cm9maWxlZE5vdE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9uT3B0aW1pemUo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkTm9uT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSBXVEZfSU5URVJO
QUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKikgV1RG
X0lOVEVSTkFMOwogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9m
aWxlckxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAko
cmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRlICJBcml0aFBy
b2ZpbGUuaCIKKwogI2lmIEVOQUJMRShKSVQpCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtODMsOCAr
ODUsOCBAQCB2b2lkIEpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgcmln
aHRXYXNJbnRlZ2VyLmxpbmsoJmppdCk7CiAKICAgICBqaXQuc3ViRG91YmxlKG1fcmlnaHRGUFIs
IG1fbGVmdEZQUik7Ci0gICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgbV9yZXN1bHRQ
cm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQorICAg
ICAgICBtX2FyaXRoUHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOwogCiAgICAgaml0LmJveERv
dWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsNyBAQCBwdWJsaWM6CiAgICAgSklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxl
ZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAg
IEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJS
ZWcgc2NyYXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51
bGxwdHIpCisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAg
ICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVy
YW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAs
IG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNo
RlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAs
IG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7IH0KIAogICAgIHZvaWQgZ2VuZXJh
dGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAg
ICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQUlJl
ZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOworICAg
IEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0
aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDIwMzM1
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRDYWxsVGFyZ2V0KENv
ZGVCbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyB2b2lkIHJlcGF0Y2hDYWxsKENv
ZGVCbG9jayogY29kZUJsb2NrLCBDb2RlTG9jYXRpb25DYWxsIGNhbGwsIEZ1bmN0aW9uUHRyIG5l
d0NhbGxlZUZ1bmN0aW9uKQordm9pZCBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVMb2NhdGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3Q2FsbGVl
RnVuY3Rpb24pCiB7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAgaWYgKGNvZGVCbG9jay0+aml0
VHlwZSgpID09IEpJVENvZGU6OkZUTEpJVCkgewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBJ
bmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQKIAogICAgICAgICAgICAgICAgIGJvb2wg
Z2VuZXJhdGVkQ29kZUlubGluZSA9IElubGluZUFjY2Vzczo6Z2VuZXJhdGVBcnJheUxlbmd0aCgq
Y29kZUJsb2NrLT52bSgpLCBzdHViSW5mbywganNDYXN0PEpTQXJyYXkqPihiYXNlVmFsdWUpKTsK
ICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewotICAgICAgICAgICAg
ICAgICAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0
aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAg
ICAgICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJ
bmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRG
dW5jdGlvbihraW5kKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRBcnJheUxl
bmd0aCgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rp
b24gdHJ5Q2FjaGVHZXRCeUlECiAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkg
ewogICAgICAgICAgICAgICAgIExPR19JQygoSUNFdmVudDo6R2V0QnlJZFNlbGZQYXRjaCwgc3Ry
dWN0dXJlLT5jbGFzc0luZm8oKSwgcHJvcGVydHlOYW1lKSk7CiAgICAgICAgICAgICAgICAgc3Ry
dWN0dXJlLT5zdGFydFdhdGNoaW5nUHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIHNsb3QuY2Fj
aGVkT2Zmc2V0KCkpOwotICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1
YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJ
ZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENh
bGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0
ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogICAgICAgICAgICAgICAgIHN0dWJJ
bmZvLmluaXRHZXRCeUlkU2VsZihjb2RlQmxvY2ssIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZz
ZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAg
ICAgIH0KQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIHJlcGF0Y2hHZXRCeUlEKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWCiAgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZXhlYy0+Y29k
ZUJsb2NrKCktPm1fbG9jaywgZXhlYy0+dm0oKS5oZWFwKTsKICAgICAKICAgICBpZiAodHJ5Q2Fj
aGVHZXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywg
a2luZCkgPT0gR2l2ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJs
b2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJp
Y0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2Fs
bChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBw
cm9wcmlhdGVHZW5lcmljR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKIH0KIAogc3RhdGljIFZfSklU
T3BlcmF0aW9uX0VTc2lKSkkgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKGNvbnN0
IFB1dFByb3BlcnR5U2xvdCAmc2xvdCwgUHV0S2luZCBwdXRLaW5kKQpAQCAtMzcyLDcgKzM3Miw3
IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAg
ICAgICBib29sIGdlbmVyYXRlZENvZGVJbmxpbmUgPSBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2Vs
ZlByb3BlcnR5UmVwbGFjZSh2bSwgc3R1YkluZm8sIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZz
ZXQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRlZENvZGVJbmxpbmUpIHsKICAgICAg
ICAgICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpQdXRCeUlkU2VsZlBhdGNoLCBzdHJ1Y3R1
cmUtPmNsYXNzSW5mbygpLCBpZGVudCkpOwotICAgICAgICAgICAgICAgICAgICByZXBhdGNoQ2Fs
bChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRl
T3B0aW1pemluZ1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CisgICAgICAgICAgICAg
ICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQ
YXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ1B1dEJ5SWRGdW5jdGlvbihz
bG90LCBwdXRLaW5kKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRQdXRCeUlk
UmVwbGFjZShjb2RlQmxvY2ssIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAg
fQpAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgcmVwYXRjaFB1dEJ5SUQoRXhlY1N0YXRlKiBleGVj
LCBKU1YKICAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxv
Y2soKS0+bV9sb2NrLCBleGVjLT52bSgpLmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNoZVB1
dEJ5SUQoZXhlYywgYmFzZVZhbHVlLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc2xvdCwgc3R1
YkluZm8sIHB1dEtpbmQpID09IEdpdmVVcE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxsKGV4
ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3By
aWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOworICAgICAgICBmdGxU
aHVua0F3YXJlUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRo
Q2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihzbG90LCBw
dXRLaW5kKSk7CiB9CiAKIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlSZXBhdGNoSW4oCkBA
IC01MjksNyArNTI5LDcgQEAgdm9pZCByZXBhdGNoSW4oCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIGlmICh0cnlSZXBhdGNoSW4oZXhlYywg
YmFzZSwgaWRlbnQsIHdhc0ZvdW5kLCBzbG90LCBzdHViSW5mbykgPT0gR2l2ZVVwT25DYWNoZSkK
LSAgICAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRo
Q2FsbExvY2F0aW9uKCksIG9wZXJhdGlvbkluKTsKKyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0
Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigp
LCBvcGVyYXRpb25Jbik7CiB9CiAKIHN0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKFZNKiwgQ2FsbExp
bmtJbmZvJiBjYWxsTGlua0luZm8sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2RlUmVmKQpAQCAt
OTAxLDcgKzkwMSw3IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKIAogdm9pZCByZXNldEdl
dEJ5SUQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywg
R2V0QnlJREtpbmQga2luZCkKIHsKLSAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZv
LnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5j
dGlvbihraW5kKSk7CisgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1
YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJ
ZEZ1bmN0aW9uKGtpbmQpKTsKICAgICBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoKmNv
ZGVCbG9jay0+dm0oKSwgc3R1YkluZm8sIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbigp
KTsKIH0KIApAQCAtOTIwLDcgKzkyMCw3IEBAIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayog
Y29kZUJsb2NrLCAKICAgICAgICAgb3B0aW1pemVkRnVuY3Rpb24gPSBvcGVyYXRpb25QdXRCeUlk
RGlyZWN0Tm9uU3RyaWN0T3B0aW1pemU7CiAgICAgfQogCi0gICAgcmVwYXRjaENhbGwoY29kZUJs
b2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRGdW5jdGlvbik7
CisgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgb3B0aW1pemVkRnVuY3Rpb24pOwogICAgIElubGluZUFjY2Vzczo6
cmV3aXJlU3R1YkFzSnVtcCgqY29kZUJsb2NrLT52bSgpLCBzdHViSW5mbywgc3R1YkluZm8uc2xv
d1BhdGhTdGFydExvY2F0aW9uKCkpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlcGF0Y2guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZXBhdGNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBsaW5rUG9seW1v
cnBoaWNDYWxsKEV4ZWNTdGF0ZSosIENhbAogdm9pZCByZXNldEdldEJ5SUQoQ29kZUJsb2NrKiwg
U3RydWN0dXJlU3R1YkluZm8mLCBHZXRCeUlES2luZCk7CiB2b2lkIHJlc2V0UHV0QnlJRChDb2Rl
QmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNldEluKENvZGVCbG9jayosIFN0
cnVjdHVyZVN0dWJJbmZvJik7Cit2b2lkIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxv
Y2sqLCBDb2RlTG9jYXRpb25DYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVGdW5jdGlvbik7CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnREYXRhLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKIAorI2luY2x1ZGUgIkFy
aXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlQ29udmVudGlvbnMuaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDb2RlVHlwZS5oIgpAQCAtMjIzLDYgKzIyNCw0NyBA
QCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICNlbmRpZgogCiAgICAgQVNT
RVJUKFN0cmluZ0ltcGw6OnNfaGFzaEZsYWc4Qml0QnVmZmVyID09IDgpOworCisgICAgeworICAg
ICAgICB1aW50MzJfdCBiaXRzID0gMHgxMjAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRz
KTsKKyAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9m
aWxlLmxoc1Nhd0ludDMyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOwor
ICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNT
RVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJ
bnQzMigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1aW50
MzJfdCBiaXRzID0gMHgyMjAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAgICAg
ICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nh
d051bWJlcigpOworICAgICAgICBhcml0aFByb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAg
QVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFTU0VSVChBcml0
aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkp
OworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVk
VHlwZSgpLmlzT25seUludDMyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJp
dHMgPSAweDI0MDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0
aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVy
KCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAgQVNTRVJU
KGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2Zp
bGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAg
ICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgp
LmlzT25seU51bWJlcigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0g
MHgxNDAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAgICAgICAgQXJpdGhQcm9m
aWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nhd0ludDMyKCk7Cisg
ICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAgQVNTRVJUKGFyaXRo
UHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZy
b21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgICAgIEFT
U0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5
TnVtYmVyKCkpOworICAgIH0KIH0KICNpZiBDT01QSUxFUihDTEFORykKICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAyMDMzNTEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bQkod29ya2luZyBjb3B5KQpAQCAtMTAxNCw2ICsxMDE0LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0
b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQw
LCB0MiwgdDApCiAgICAgYmluZXEgdDIsIEludDMyVGFnLCAub3AxTm90SW50CiAgICAgYmluZXEg
dDMsIEludDMyVGFnLCAub3AyTm90SW50CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1
KQorICAgIG9yaSBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rp
b24odDUsIDQpCiAgICAgbG9hZGkgNFtQQ10sIHQyCiAgICAgaW50ZWdlck9wZXJhdGlvbkFuZFN0
b3JlKHQzLCB0MSwgdDAsIC5zbG93LCB0MikKICAgICBkaXNwYXRjaCg1KQpAQCAtMTAyMywxMCAr
MTAyNiwxNiBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAg
YmlhIHQyLCBMb3dlc3RUYWcsIC5zbG93CiAgICAgYmliIHQzLCBMb3dlc3RUYWcsIC5vcDFOb3RJ
bnRPcDJEb3VibGUKICAgICBiaW5lcSB0MywgSW50MzJUYWcsIC5zbG93CisgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDQsIHQ1KQorICAgIG9yaSBBcml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1Cisg
ICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDUsIDQpCiAgICAgY2kyZCB0MSwgZnQxCiAgICAgam1w
IC5vcDFOb3RJbnRSZWFkeQogLm9wMU5vdEludE9wMkRvdWJsZToKICAgICBmaWkyZCB0MSwgdDMs
IGZ0MQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0NSkKKyAgICBvcmkgQXJpdGhQcm9m
aWxlTnVtYmVyTnVtYmVyLCB0NQorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQ1LCA0KQogLm9w
MU5vdEludFJlYWR5OgogICAgIGxvYWRpIDRbUENdLCB0MQogICAgIGZpaTJkIHQwLCB0MiwgZnQw
CkBAIC0xMDM4LDYgKzEwNDcsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJP
cGVyYXRpCiAgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vj
b25kIG9wZXJhbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgbG9hZGkgNFtQQ10sIHQyCiAgICAg
YmlhIHQzLCBMb3dlc3RUYWcsIC5zbG93CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1
KQorICAgIG9yaSBBcml0aFByb2ZpbGVJbnROdW1iZXIsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1
Y3Rpb24odDUsIDQpCiAgICAgY2kyZCB0MCwgZnQwCiAgICAgZmlpMmQgdDEsIHQzLCBmdDEKICAg
ICBkb3VibGVPcGVyYXRpb24oZnQxLCBmdDApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMjAz
MzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTg5Myw2ICs4OTMsOSBAQCBtYWNybyBiaW5hcnlPcEN1
c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgYnFiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3Ay
Tm90SW50CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQogICAgIGludGVnZXJPcGVy
YXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oNCwgdDEpCisgICAgb3JpIEFyaXRoUHJvZmlsZUludEludCwgdDEKKyAgICBzdG9yZWlzVG9J
bnN0cnVjdGlvbih0MSwgNCkKICAgICBkaXNwYXRjaCg1KQogCiAub3AxTm90SW50OgpAQCAtOTAy
LDggKzkwNSwxNCBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAg
ICAgYnRxeiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKICAgICBhZGRxIHRhZ1R5cGVOdW1iZXIs
IHQxCiAgICAgZnEyZCB0MSwgZnQxCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQor
ICAgIG9yaSBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQyCisgICAgc3RvcmVpc1RvSW5zdHJ1
Y3Rpb24odDIsIDQpCiAgICAgam1wIC5vcDFOb3RJbnRSZWFkeQogLm9wMU5vdEludE9wMkludDoK
KyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisgICAgb3JpIEFyaXRoUHJvZmlsZU51
bWJlckludCwgdDIKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MiwgNCkKICAgICBjaTJkIHQx
LCBmdDEKIC5vcDFOb3RJbnRSZWFkeToKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIp
CkBAIC05MTksNiArOTI4LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3Bl
cmF0aQogICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29u
ZCBpcyBkZWZpbml0ZWx5IG5vdC4KICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAg
ICAgYnRxeiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oNCwgdDMpCisgICAgb3JpIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDMKKyAgICBzdG9yZWlz
VG9JbnN0cnVjdGlvbih0MywgNCkKICAgICBjaTJkIHQwLCBmdDAKICAgICBhZGRxIHRhZ1R5cGVO
dW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQxCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20J
KHdvcmtpbmcgY29weSkKQEAgLTI1Miw2ICsyNTIsMTIgQEAgY29uc3QgSXNJbnZhbGlkYXRlZCA9
IDIKICMgU2hhZG93Q2hpY2tlbiBkYXRhCiBjb25zdCBTaGFkb3dDaGlja2VuVGFpbE1hcmtlciA9
IDB4N2ExMQogCisjIEFyaXRoUHJvZmlsZSBkYXRhCitjb25zdCBBcml0aFByb2ZpbGVJbnRJbnQg
PSAweDEyMDAwMAorY29uc3QgQXJpdGhQcm9maWxlTnVtYmVySW50ID0gMHgyMjAwMDAKK2NvbnN0
IEFyaXRoUHJvZmlsZU51bWJlck51bWJlciA9IDB4MjQwMDAwCitjb25zdCBBcml0aFByb2ZpbGVJ
bnROdW1iZXIgPSAweDE0MDAwMAorCiAjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMuCiBpZiBK
U1ZBTFVFNjQKICAgICAjIC0gVXNlIGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50IHRo
ZSBQQzogb25lIHJlZ2lzdGVyIGZvciB0aGUKQEAgLTI4Niw2ICsyOTIsMTAgQEAgaWYgSlNWQUxV
RTY0CiAgICAgICAgIGxvYWRwIG9mZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAogICAgIGVuZAog
ICAgIAorICAgIG1hY3JvIHN0b3JlaXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCisgICAg
ICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCisgICAgZW5kCisKICAgICBt
YWNybyBzdG9yZXBUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCiAgICAgICAgIHN0b3JlcCB2
YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCiAgICAgZW5kCkBAIC0yOTksNiArMzA5LDEwIEBA
IGVsc2UKICAgICBtYWNybyBsb2FkcEZyb21JbnN0cnVjdGlvbihvZmZzZXQsIGRlc3QpCiAgICAg
ICAgIGxvYWRwIG9mZnNldCAqIDRbUENdLCBkZXN0CiAgICAgZW5kCisKKyAgICBtYWNybyBzdG9y
ZWlzVG9JbnN0cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQorICAgICAgICBzdG9yZWkgdmFsdWUsIG9m
ZnNldCAqIDRbUENdCisgICAgZW5kCiBlbmQKIAogaWYgWDg2XzY0X1dJTgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHJldmlzaW9uIDIwMzM1MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0VHlwZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw0NiArMzIsNDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgZnJpZW5kIHN0cnVjdCBPcGVyYW5kVHlwZXM7CiAKLSAgICAgICAgdHlwZWRlZiBjaGFyIFR5
cGU7CisgICAgICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogICAgICAgICBzdGF0aWMgY29uc3Qg
VHlwZSBUeXBlSW50MzIgPSAxOwotICAgICAgICAKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUg
VHlwZU1heWJlTnVtYmVyID0gMHgwNDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1h
eWJlU3RyaW5nID0gMHgwODsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVs
bCAgID0gMHgxMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlQm9vbCAgID0g
MHgyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlT3RoZXIgID0gMHg0MDsK
KyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVtYmVyID0gMHgwMjsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlU3RyaW5nID0gMHgwNDsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVsbCAgID0gMHgwODsKKyAgICAgICAgc3RhdGljIGNv
bnN0IFR5cGUgVHlwZU1heWJlQm9vbCAgID0gMHgxMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5
cGUgVHlwZU1heWJlT3RoZXIgID0gMHgyMDsKIAogICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBU
eXBlQml0cyA9IFR5cGVNYXliZU51bWJlciB8IFR5cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZU51
bGwgfCBUeXBlTWF5YmVCb29sIHwgVHlwZU1heWJlT3RoZXI7CiAKKyAgICBwdWJsaWM6CisgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtQml0c05lZWRlZCA9IDY7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoKFR5cGVCaXRzICYgKCgxIDw8IG51bUJpdHNOZWVkZWQpIC0gMSkpID09IFR5cGVCaXRz
LCAiVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLiIpOworCiAgICAgICAgIGV4cGxp
Y2l0IFJlc3VsdFR5cGUoVHlwZSB0eXBlKQotICAgICAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAg
ICAgICAgICAgIDogbV9iaXRzKHR5cGUpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgcHVi
bGljOgogICAgICAgICBib29sIGlzSW50MzIoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gbV90eXBlICYgVHlwZUludDMyOworICAgICAgICAgICAgcmV0dXJuIG1fYml0cyAm
IFR5cGVJbnQzMjsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgZGVmaW5pdGVseUlzTnVtYmVy
KCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0
cykgPT0gVHlwZU1heWJlTnVtYmVyOworICAgICAgICAgICAgcmV0dXJuIChtX2JpdHMgJiBUeXBl
Qml0cykgPT0gVHlwZU1heWJlTnVtYmVyOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBi
b29sIGRlZmluaXRlbHlJc1N0cmluZygpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiAobV90eXBlICYgVHlwZUJpdHMpID09IFR5cGVNYXliZVN0cmluZzsKKyAgICAgICAgICAg
IHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZVN0cmluZzsKICAgICAgICAg
fQogCiAgICAgICAgIGJvb2wgZGVmaW5pdGVseUlzQm9vbGVhbigpIGNvbnN0CiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiAobV90eXBlICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7
CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVCb29s
OwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBtaWdodEJlTnVtYmVyKCkgY29uc3QKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG1fdHlwZSAmIFR5cGVNYXliZU51bWJlcjsKKyAgICAg
ICAgICAgIHJldHVybiBtX2JpdHMgJiBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KIAogICAg
ICAgICBib29sIGlzTm90TnVtYmVyKCkgY29uc3QKQEAgLTE0MSw4ICsxNDMsMTAgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbnVtYmVyVHlwZUlzSW50MzIoKTsKICAgICAg
ICAgfQogCisgICAgICAgIFR5cGUgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIFR5cGUgbV9iaXRzOwog
ICAgIH07CiAgICAgCiAgICAgc3RydWN0IE9wZXJhbmRUeXBlcwpAQCAtMTUyLDggKzE1Niw4IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBpbml0aWFsaXplIG9u
ZSBvZiB0aGUgaW50IHRvIGVuc3VyZSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgZW50aXJlIHN0
cnVjdCBpcyBpbml0aWFsaXplZC4KICAgICAgICAgICAgIG1fdS5pID0gMDsKLSAgICAgICAgICAg
IG1fdS5yZHMuZmlyc3QgPSBmaXJzdC5tX3R5cGU7Ci0gICAgICAgICAgICBtX3UucmRzLnNlY29u
ZCA9IHNlY29uZC5tX3R5cGU7CisgICAgICAgICAgICBtX3UucmRzLmZpcnN0ID0gZmlyc3QubV9i
aXRzOworICAgICAgICAgICAgbV91LnJkcy5zZWNvbmQgPSBzZWNvbmQubV9iaXRzOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICB1bmlvbiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDIwMzM1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJDb21tb25TbG93UGF0aHMuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2lu
Y2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKQEAgLTM1OSwyMiArMzYwLDIxIEBAIFNMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9uZWdhdGUpCiB9CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLXN0YXRpYyB2b2lk
IHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSogZXhlYywgSW5z
dHJ1Y3Rpb24qIHBjLCBKU1ZhbHVlIHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBKU1ZhbHVlIHJpZ2h0
KQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3Rh
dGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgSlNWYWx1ZSByZXN1bHQsIEpTVmFsdWUgbGVmdCwg
SlNWYWx1ZSByaWdodCkKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVC
bG9jaygpOwotICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY29kZUJsb2NrLT5ieXRlY29k
ZU9mZnNldChwYyk7Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IGNvZGVCbG9jay0+ZW5z
dXJlUmVzdWx0UHJvZmlsZShieXRlY29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxlJiBwcm9m
aWxlID0gY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhwYyk7CiAKICAgICBpZiAocmVzdWx0
LmlzTnVtYmVyKCkpIHsKICAgICAgICAgaWYgKCFyZXN1bHQuaXNJbnQzMigpKSB7CiAgICAgICAg
ICAgICBpZiAobGVmdC5pc0ludDMyKCkgJiYgcmlnaHQuaXNJbnQzMigpKQotICAgICAgICAgICAg
ICAgIHByb2ZpbGUtPnNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpOworICAgICAgICAgICAgICAg
IHByb2ZpbGUuc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCk7CiAKICAgICAgICAgICAgIGRvdWJs
ZSBkb3VibGVWYWwgPSByZXN1bHQuYXNOdW1iZXIoKTsKICAgICAgICAgICAgIGlmICghZG91Ymxl
VmFsICYmIHN0ZDo6c2lnbmJpdChkb3VibGVWYWwpKQotICAgICAgICAgICAgICAgIHByb2ZpbGUt
PnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0
T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsKKyAgICAgICAgICAg
ICAgICBwcm9maWxlLnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOwogCiAgICAgICAgICAg
ICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50aW9uYWxseSBvbWl0
cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KICAgICAgICAgICAg
ICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRpdmUgaWYgdGhlIHJl
c3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVudGlvbmFsbHkKQEAgLTM4MiwxNCArMzgy
LDE0IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnkKICAgICAgICAg
ICAgICAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBpbnQ1Mk92ZXJmbG93UG9pbnQgPSAoMWxsIDw8
IDUxKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IGludDY0VmFsID0gc3RhdGljX2Nhc3Q8aW50
NjRfdD4oc3RkOjphYnMoZG91YmxlVmFsKSk7CiAgICAgICAgICAgICAgICAgaWYgKGludDY0VmFs
ID49IGludDUyT3ZlcmZsb3dQb2ludCkKLSAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0
T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCk7CisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0
T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
IGVsc2UKLSAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROb25OdW1iZXIoKTsKKyAgICAgICAg
cHJvZmlsZS5zZXRPYnNlcnZlZE5vbk51bWJlcigpOwogfQogI2Vsc2UKLXN0YXRpYyB2b2lkIHVw
ZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSosIEluc3RydWN0aW9u
KiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSkgeyB9CitzdGF0aWMgdm9pZCB1cGRhdGVBcml0
aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgSlNWYWx1
ZSwgSlNWYWx1ZSwgSlNWYWx1ZSkgeyB9CiAjZW5kaWYKIAogU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX3RvX251bWJlcikKQEAgLTQwNyw2ICs0MDcsOSBAQCBTTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfYWRkKQogICAgIEpTVmFsdWUgdjIgPSBPUF9DKDMpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVl
IHJlc3VsdDsKIAorICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gZXhlYy0+Y29kZUJs
b2NrKCktPmFyaXRoUHJvZmlsZUZvclBDKHBjKTsKKyAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZUxI
U0FuZFJIUyh2MSwgdjIpOworCiAgICAgaWYgKHYxLmlzU3RyaW5nKCkgJiYgIXYyLmlzT2JqZWN0
KCkpCiAgICAgICAgIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKHYxKSwgdjIudG9T
dHJpbmcoZXhlYykpOwogICAgIGVsc2UgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIo
KSkKQEAgLTQxNSw3ICs0MTgsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfYWRkKQogICAg
ICAgICByZXN1bHQgPSBqc0FkZFNsb3dDYXNlKGV4ZWMsIHYxLCB2Mik7CiAKICAgICBSRVRVUk5f
V0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JC
aW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIHYxLCB2Mik7CisgICAgICAgIHVwZGF0ZUFy
aXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgdjEsIHYyKTsKICAg
ICB9KTsKIH0KIApAQCAtNDMyLDcgKzQzNSw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9t
dWwpCiAgICAgZG91YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0
LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBj
LCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmlu
YXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CiB9CiAK
QEAgLTQ0NSw3ICs0NDgsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc3ViKQogICAgIGRv
dWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051
bWJlcihhIC0gYik7CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAg
ICB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBs
ZWZ0LCByaWdodCk7CisgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3Ao
ZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwogICAgIH0pOwogfQogCkBAIC00NTgsNyAr
NDYxLDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2RpdikKICAgICBkb3VibGUgYiA9IHJp
Z2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAvIGIp
OwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVz
dWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQp
OworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCBy
ZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9vcC1hZGQtZXhjZXB0aW9ucy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wLWFkZC1leGNlcHRpb25zLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcC1hZGQt
ZXhjZXB0aW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACitmdW5jdGlvbiBh
c3NlcnQoYikgeworICAgIGlmICghYikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIik7
Cit9Citub0lubGluZShhc3NlcnQpOworCitmdW5jdGlvbiBmMSgpIHsgcmV0dXJuICJmMSI7IH0K
K25vSW5saW5lKGYxKTsKK2Z1bmN0aW9uIGYyKCkgeyByZXR1cm4gImYyIjsgfQorbm9JbmxpbmUo
ZjIpOworZnVuY3Rpb24gZjMoKSB7IHJldHVybiAiZjMiOyB9Citub0lubGluZShmMyk7CisKK2xl
dCBvRXhjZXB0aW9uID0geworICAgIHZhbHVlT2YoKSB7IHRocm93IG5ldyBFcnJvcigiIik7IH0K
K307CisKK2Z1bmN0aW9uIGZvbyhhcmcxLCBhcmcyKSB7CisgICAgbGV0IGEgPSBmMSgpOworICAg
IGxldCBiID0gZjIoKTsKKyAgICBsZXQgYyA9IGYzKCk7CisgICAgdHJ5IHsKKyAgICAgICAgYXJn
MSArIGFyZzI7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGFzc2VydChhcmcxID09PSBvRXhj
ZXB0aW9uKTsKKyAgICAgICAgYXNzZXJ0KGFyZzIgPT09IG9FeGNlcHRpb24pOworICAgIH0KKyAg
ICBhc3NlcnQoYSA9PT0gImYxIik7CisgICAgYXNzZXJ0KGIgPT09ICJmMiIpOworICAgIGFzc2Vy
dChjID09PSAiZjMiKTsKK30KK25vSW5saW5lKGZvbyk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwg
MTAwMDsgaSsrKSB7CisgICAgZm9vKGksIHt9KTsKKyAgICBmb28oe30sIGkpOworfQorZm9vKG9F
eGNlcHRpb24sIG9FeGNlcHRpb24pOworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7
CisgICAgZm9vKGksIHt9KTsKKyAgICBmb28oe30sIGkpOworfQorZm9vKG9FeGNlcHRpb24sIG9F
eGNlcHRpb24pOworCisKK2Z1bmN0aW9uIGlkZW50KHgpIHsgcmV0dXJuIHg7IH0KK25vSW5saW5l
KGlkZW50KTsKKworZnVuY3Rpb24gYmFyKGFyZzEsIGFyZzIpIHsKKyAgICBsZXQgYSA9IGYxKCk7
CisgICAgbGV0IGIgPSBmMigpOworICAgIGxldCBjID0gZjMoKTsKKyAgICBsZXQgeCA9IGlkZW50
KGFyZzEpOworICAgIGxldCB5ID0gaWRlbnQoYXJnMik7CisKKyAgICB0cnkgeworICAgICAgICBh
cmcxICsgYXJnMjsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgYXNzZXJ0KGFyZzEgPT09IG9F
eGNlcHRpb24pOworICAgICAgICBhc3NlcnQoYXJnMiA9PT0gb0V4Y2VwdGlvbik7CisgICAgICAg
IGFzc2VydCh4ID09PSBvRXhjZXB0aW9uKTsKKyAgICAgICAgYXNzZXJ0KHkgPT09IG9FeGNlcHRp
b24pOworICAgIH0KKyAgICBhc3NlcnQoYSA9PT0gImYxIik7CisgICAgYXNzZXJ0KGIgPT09ICJm
MiIpOworICAgIGFzc2VydChjID09PSAiZjMiKTsKK30KK25vSW5saW5lKGJhcik7CisKK2ZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CisgICAgYmFyKGksIHt9KTsKKyAgICBiYXIoe30s
IGkpOworfQorYmFyKG9FeGNlcHRpb24sIG9FeGNlcHRpb24pOworZm9yIChsZXQgaSA9IDA7IGkg
PCAxMDAwMDsgaSsrKSB7CisgICAgYmFyKGksIHt9KTsKKyAgICBiYXIoe30sIGkpOworfQorYmFy
KG9FeGNlcHRpb24sIG9FeGNlcHRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzUx
KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTYtMDctMTkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgb3BfYWRkL1ZhbHVlQWRkIHNob3VsZCBiZSBhbiBJQyBpbiBhbGwgSklUIHRpZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk2NDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgKE9PUFMhKS4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNG
b3J3YXJkcy5oOiBBZGRlZC4KKwogMjAxNi0wNy0xOCAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53
cz4KIAogICAgICAgICBBZGQgcHJlbG9hZCB0byBmZWF0dXJlcy5qc29uCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9y
d2FyZHMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9KSVRNYXRoSUNGb3J3YXJkc19oCisjZGVmaW5lIFdlYkNvcmVf
RldEX0pJVE1hdGhJQ0ZvcndhcmRzX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KSVRNYXRo
SUNGb3J3YXJkcy5oPgorI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="307736"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>284080</attachid>
            <date>2016-07-19 20:00:03 -0700</date>
            <delta_ts>2016-07-19 20:41:30 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews113 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>945813</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
vjOqRHdHlYzdUiWMaq5Uc6WaK9VcqeZKNVequVLNlWquVHOlmivVXKnmSmtcCddcqeZKNVequVLN
lWquVHOlmivVXKnmSjVXqrlSzZXWuBKpuVLNlWquVHOlmivVXKnmSjVXqrlSzZVqrlRzpZorrXEl
reZKNVequVLNlWquVHOlmivVXKnmSjVXqrlSzZVqrrTGlfSaK9VcqeZKNVequVLNlWquVHOlmivV
XKnmSjVXqrnSGleiP/5TsfHy0+89aNsx90PncDJynnhy6Ahe9orH31MM7szHzuQOJNryzTZrD8F/
+XuWPDMwSu9ZWhGcjuKv8hn22gpZOxeaDKGvu/HjJska1jWXmyp6zH8i5sEp+TobYqxRF+H3UuJm
nBYyPYsHVA3C29y44r1x8kUKpgy5duPvdHcPgTd2/BB4/G/wFHgsHgPf7f9cPwa+zl/U+Ys6f1Hn
L+r8RZ2/2GX+wgpcHXGeP6wdZtpWa9OD4Bdn8wNdJ3Ny5mGhiikKqJAgQ99YYR4C9As2teAgmlE5
QeEGOrNyC3ogNOOFJvNXd+XCi3cHH6jenZMUI8TzaYjKD4EXUOib0xCvU2KWbHjl1a9OKbiBFrwk
pfA6XM8kDl4nsE4P1OmBb9Ilawv1DsfOLZcvPZYHnQgOiNbeNTmpRm0toOBf4PrLaD6BiBd+S36F
jA0vpfuWQMKo2g9vBzMyL4Rf8xGo+sCFUENbib2/SeeJ4Xo6W6fz2DIoJmzDW+ley+fpzvi8sTs+
b+6YzxO0xUEfQp/H8isMNA88yV7zhsRd+qZu4lXflPTtNV5p8me9khqv8EotCDZ6pQZlaq+s6JV4
m1dm8C3OuM/h7CThaQpu4MlVssMozsIg/LFf5HkjetVzjmRopqFbc0eiDsodySAwwdbZyqp+RJ4f
3SIIpupRbXvqnEGghjeMaghZDFn1qFbRG7Ut3ph6d9yfjrgfhCMexv9/PfLbQl0uoj8hdGazPtjs
9HI4XwfQce2X1fwSqV7ipGBO9WuY3am/MaNYKVEHGfBitWHoTTfM9luKqibOY0udcz7kuo7vch7A
CXfpxOwDJ7xtV/irV3DdcJGoxA9LZzBmLtW4lJVuO+FOZieE0tRgATKpvGLjCahETdgGwMK2ibW4
xHcdh880wWj9CiZP4E1XCE0wWTrDLcR9LC/RypoQ7Dqejpg4oYsTgDVYsSOmG04QUUk4KcsCHq57
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
MCMRW6wEENqI+b/VdrVGre7Y/Z3aet2hI3kcFxapBE4YPrqYtg6unpDS3Bg+zpaCJDi0itD9o0bN
ECSJ4hSd1NV3mohD/42mz4g5xditGW3dwAl1gDaKYQP5pKheSfnvP3IirtHgaho1foiLrzDB3VPj
5j1bwLuc8zTKhR7ncBA/hVcSbBfbBLwsSbiQSF0NF4tqTmjspfRlMZuW4U8ZY3kRcQUdZlQhX1YG
OiEGGXo7BmqScwz1dCnA5rhuniDM/XjId3OWrxpiVmBY1O595BvyIMsR5kSkH3JKx1zMSZbiYhcA
d1kUU9wPiGbv0CC0zqMl2SZZ8DUwXGhiirO9dfa6t2XBSnDGs3SGdrhSfc7jve7NEc6DNMXs8rz6
jZJeaNBPKPmUCiRydkS+AZ8gmoTYjTTCTfBJSkNrKG0wjfOU+YBgtDRJbZDiu0wKnHuTTRLfXOTf
jdV4sCyza+l7PhhCgKQ0/4Y/DX23lZDuMqgvLUWEOxCfV4AfgKXd0PgZS6NXBlSNOXttK38DUEsD
BAoAAAAAAOKa80gAAAAAAAAAAAAAAAAUABwAY29tcG9zaXRpbmcvaWZyYW1lcy9VVAkAA4jgjlcT
4o5XdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAAOKa80hZJoatNwAAADcAAAA0ABwAY29tcG9zaXRp
bmcvaWZyYW1lcy9kaXNwbGF5LW5vbmUtc3ViZnJhbWUtYWN0dWFsLnR4dFVUCQADiOCOV4jgjld1
eAsAAQT1AQAABBQAAABGQUlMOiBzYXcgMCBsYXllciBmbHVzaGVzLCBleHBlY3RlZCAxIG9yIHBv
c3NpYmx5IDIuCgoKUEsDBBQAAgAIAOKa80iW4GDqtgAAAFwBAAAyABwAY29tcG9zaXRpbmcvaWZy
YW1lcy9kaXNwbGF5LW5vbmUtc3ViZnJhbWUtZGlmZi50eHRVVAkAA4jgjleI4I5XdXgLAAEE9QEA
AAQUAAAAvU9BCsJADLz3Fblv41q9eWpFBdGDUNDztk3rwtotTRb197ZWD35AAhPIZDIZRAR99i7c
iPXGiNHbS64vVBysfNo6WFfpDRWh0c48fRAUYsGeODhhXfpb59mKbRtt696MlyrL3bCLrW8JORTv
MdKjo1KomslDIqXU/5xNKcG4t2+aAibxEtQIaRrhKcvzFbC5QwK+hwUMcuqhdoGvxJHaZfvjxM9/
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
mQi5IGmCTwEJcJ9GjAK+JRpde48GYf8yWpxu46XYAMetJmc425sXzb0dD9ZScJEmc2yHtuYLwQ6q
t0A4D5IEo8viGtRKeqFJP6HkUyqQyNkT+SZ8gmgaYjWSCDfBJylNvaa0wTIvU2YDgtPm4SOheMkp
iXNvuo1x9WcvzXI8BBB0+8ZBH4wgQFKavfrPQ9/vFCT7CCqjlYxwB+L1CvDJWLQbNn7Kk+iVA9WY
4K+txl9QSwMECgAAAAAA7JrzSAAAAAAAAAAAAAAAAA0AHABkaXNwbGF5bGlzdHMvVVQJAAOc4I5X
E+KOV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADsmvNIo1f96FAAAACOAAAAMgAcAGRpc3BsYXls
aXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQJAAOc4I5XnOCOV3V4
CwABBPUBAAAEFAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJ
TMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcbmjG1SMZhAxhgAAUEsDBBQAAgAIAOya80jylpXVRwAA
AEkAAAApABwAZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAkAA5zg
jlec4I5XdXgLAAEE9QEAAAQUAAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwt
UUjOzy1ILMlMyklVKM8syVAoSk3OL0rJzEsHyoC1FetxAQBQSwMEFAACAAgAspvzSPmI2PUAQAAA
s+AAACIAHABEdW1wUmVuZGVyVHJlZS03MzU2MC1jcmFzaC1sb2cudHh0VVQJAAMQ4o5XEOKOV3V4
CwABBPUBAAAEFAAAANxc63ObyLL/fPkr+HAqR06CzTwZVL5OSQhlnfWrLDvZ2q0UxWOwOZZAC8ix
719/ewDJ6JWETeqevUfZsmVmpvvXPT39GGb2Ks9CWRR9ff0zWszm1zKNZH6TS6n/YRHGzc/alV/e
b3aFz9HHbLqYyeLo4+XZ7bl79Ppofbx2Gsm0TOJE5v39XLSPMi+SLN1k8O7dO83JIqnfPM/leuNv
ghuc6r0Lv0we5QHgy4GRfrUh1NVzeZ+lSgpqi8/atSzmWVokwXSNXHGv/4Ep/6zdFjLXT0ebOJiJ
NG3kl/LoJpltAMEm4oZpGcjWkd3HrG/ah5gQHZ6ZpnY50XfJdu6HOjT9piPzEP5jeg/RMRKmOACI
8ywvt0YhpA3SLH2eZYtCv71tYRwRxBEbmobFBraBRtwxOEe24XBraI1H1mDIRpqmKeT64Iv/IPVJ
koZSH2ZZ2dc5NU1TL2SYpVGhaU7uF/cy0m/uc+lHKx4msEmKuV+G9/qfC7kAHYTZ7NCfz6fycOYn
qVFWAzTNfQrlvATk63Pm/uZ4w8HIGziOO5novcnp+4n7/uNBq7+a6NXE/epeX3inFx8HZ6cwaDS6
VqP8UjefzOYTBH4USBlr2sdz/VreAYlCv5B+Dn2WbX3NME50TRH0vBv3t5st+22IIZNiwuCL0XoQ
xUo1f+g6F+avn/XceDrKvzzpk/P/di4/7TB90HGlBNBWo8Z+/zvVBvpttXzwH/1JmCfz0slyWQP9
r5XkyGQWj2lg6Z9uxhUj/Y1ObA11okElDk2b6h8mTr//4fTmHNb3qXO8/HMQRe9lKnO/zPKTfj9O
Un+a/I88TadJKtVM9aqe9aimJ8zApIRFAijSonz1tqZ9lqQPw0Ucy/zVAQAFI9dwN2kR54JaK6T9
vpwl5WSaffGyuedHUQ3lFHjmi1CheN2wVn0cv5BuWubPr18d9Pv/8Mx+P5vXcvUOetsIK+wKJ2Ea
6YzTErGaFWB9D/4ouvGLh/EiDYHZ8WOWRPo2w7c/Sy6YpXyR9nbpnFoa7SYK4cRmeHMC+33QXJzl
s3FtDtWU96pZRVRjnVkIYm2zWJqaMrJPCXjvRQlryC8KOQumzxU3MHbecWqYzWnUUjWY8UNFC2aN
aVY3aji0UByuqH3K8odpUpT9/tXUT18kqOhjoYmu1LkM9lMHSvNkKi+yL/VcKz0Np1n48Fqxs7hm
d2XHaCx3sGsYncGKznexojbVkNltzgVmrOF1dnaaApd/JdC5YjRIo4ksf5GLHNgnYbHJszF+90mG
lZupQBATawh1A2EJaRN9CiZQetMM1lpW5MqGOdEQ7ihPCK64ISXValQzbnEG3ph0pMRsKvXHWbWm
b7KXAUpIApqmHX2RlIG/mlWlRfAvoLpF2bjuj+dLjULOVGaOP52Oc39WqxUjoSHWiaMZMxrFeuOz
wGbmuSzVgl7jCrzugItbPfMhDdue1qVHnFwG/5JhWdsaYUhDvFOA8zlo1KyJyUd/uvCXILZ4TbJF
HlYeZz12fZh8hHHybe3TLyB3iq7K/Lgh0iQuJ7WPhbiGrK4AOWpWwzzPYlgDkft1oFdVtyS9u5Z+
kaU/D75ay6KN/pMMXmDr2+hDTnFIA73pp5idQ0JTZ0Ar3P9+wSymgu4OaIf3fYEONEjbu0lt2pZ4
kXo5wbBqs+m0MvdG0NMUXOk06m103SHSqsfo8vxTDkBkXg1tN62kGsnST6ZF7fzAXfU2ERyG83kf
fNmBhs2uovl29D2idZFpJ3CO9uG2bMCNuuFmJoF4uYHJncqZVAGmcT/1028ir0yGiiW8hkqFjWCl
U9xRp7EZkb3YwEXOIU9cYlPGfCOfyqusSKqSaEubG+PP5J0fPqtCa7KYq7KxysUsgnbhhwIX8JMu
+AMiRUxauv3l5vyspny9SFNlE5Bzbqq2Yfq6WZ47JKqMV1Xvm/RqRZsMgNKuQCPqfw3oMgxVmK4g
n7yWsXIam7BPvg4bEbEHNrKgesesG2zEIvBQa7BHWbhQQK78vFjTcDHO8it/UUBdkUs5XCTTCDKz
ChRnpEa1Pried6TslnfFJWP+dVzzxWx+kz3IFFLd/AzyqN5Xu0+e0/A+z9JsUZzDenurB1k2bZn2
FZCbyEJteryqUxC6XyRCQSSro0g0JlEHkTqJU6UAlO1HLDAgFl0Rg113QHwag8FWm1udsSNrv7YR
V07Z7oidS0q+jl1FujSqF+RyMVa1c5lDInA6m09PXlWmIMR+6yY2eDXSKdL5EUY8xK24K0NQQzTy
S38TYzxdFPcv2lw2f8qTcrmhAcx7eylUGLkJEDsFNV8yjGyq72EM3gwUV60SrrivNdb2ZimeuBtP
E5yo3OZ5lvlRU5knaldL/Q0T1IuyBZhaXZCLFxR19woFJeASCemKgodsP4o0K5P4edxgeZkaxw/h
72tZVCG9zo+EvRMWFFsAq1OA8W0z4KhlM+vsoFq+l+HDRYWttzKL9U41bwRJJ2FdeVuQFO3lXU/M
clpekoVqD6reV2kq9t2QMKxvwjtCssx2vG3I+l+6o4JacwXrZXzteUzw86STnw9tEsSktXImiyBv
aC5NKEqi8Rq4F0tmRKXUm0NqY6bgwkm3IokFEbFbxnz9LSRbPX/x06iqktsY9d71Nj5euZlu5Yza
viC+bvzR9FznOihGcgopZr2lm8pqE3K0Abn/udrV5XrvGzQOZzPIQQEjXfPWzvhCll+y/GEboxXH
sYiw5AJFuudxZvxxMbm9PnNWYKqNhtSf6t6XpLx/eT5IoyXbfpZOnwehekvU/+wFaivJS9JHiJmq
ELE1irqiATj6DyNRhk+wRnFX7kxY3+Je89iN4XO1V6FR0pGvxSiFOfB+v8DWGmtnmoB39ZwppNRJ
iLkXNay8TeN2bxGp9T/PEgV4/Pjobs4ILHmN0k7giB1Qn3wHOCQq9Sx1MSggD3Kvfg23cV0h7jnj
NVJXvxKy8aim7ixy9erR+3juP62L4+F6Z4WybsomtpShDqWF2p2sNj9VmQz1SL+/pFyx6VXvFKra
BByE+qPeAwazWvPmalWOs0UaVRv22xwFCxiHcswZD/Lcfx7AoOfqtYXqDYsEzMXqKkHkR7slaF4h
NEGSaFR0JR1AtnG+mJYJDHiS+aSJN23CkG5r1O5K2A78XYS9JeW2hpnZTcPS9k0ENuqMr28vzi4v
r7zTiecMzs5OL957l7c33s2lN/Aml7fXjmt6V+71+PL63BvfXjg3p5cXnlfl6BpD3bhGQSCimusi
VTXaKKulKswqebQ1hrtSREHcpgi/lJVjAEc6kvKDSOhtQpO5DJM4CRU2m2uMVkcA9P2ftf1UzMA5
hrpZ7RdzykA8ITTGOhKhIY9aREzGQDTelQiK8QsRZAmLaszqKo4M20hsopCIbkQCU73IWxIRNmfg
kBgsjWkSRM/T6BB+JME+ItVMWTEiLLT1ovTz6tXo6kU3+uoLbsWhaTRmfurfybx60Q3Pi+eilDPv
AYKWnK5DaHPGLLQgSuoP8hE8LHgoFR+qF90t2jskWLOzAJwBl7q37O/N7nKvfu+ukim8kgb3u8Pj
NmTBnqccy59V/1yWizxdA9pQm9c818i1qTGMCYmiWs3elz9XEBFZQSR/f4j07w+R/RWIVCiIhZx9
8ZPSK5I7lW61AYZv3hyi3cupTcvHMYqwAIARhBYPllB5nxSNQfb7xVTKuQfhpvfSod6sgWphUZ+y
OJ5m6Z2ufrxtkanajtH0LWBafqYn+kl7Z5t1PXthxXYY8Cq3+Cbi74GlAP2gZBsygW/FXU9qWDEP
ENGDmT+F3KQRoQVrkSbgzTyVtxyvOqm3Rkl4voA05uRVG95fFaJCb7OuZzMAvCDRC3hlj7dpmUzH
/rSQ/+dS1Bu5r+rXOl0PgYAslm+/yPKL9OcwHaEP/v5O/ltmxCJdD5eAEMQXm0KAhYZ1ZTBZinPQ
1DdWV/oB89EL/apuUUeLjtdY1hWA3tvA8fqgd3CilqxarU2qVSPBnHU9m2LFPrPZT4FSHXS4UgVX
70fINVtIXU+9WHHIAlzXTC2T8Bqv5s3z7On5uOXxFkC2OcMFfH8M8dsfUuBr5UJXpQhVJzXMjhGS
mwyCWdPRC7LouQqQqDpK04kSiyPrhdIqQ7R4dZSmY9iWkb5J6CVo8347t9zY/6i3wbpHdUQjqc98
lRQWd16Z+/NdOcd3EDI5jVeEVFq5GWm/p7KSAW1XVhOZPyahPAeqV1mlDow2Q933kCVWsF2wIWKh
jcjzMyo2vVvNjUOKoTbZ3M7q1fN5oHvtfVjFst6/InTDR2/C3uREYyyljUENF5PanjxPnb+t62pC
6yOAP2cNCf2nrSFb/7lryPr75+YClvmH0xt9eQ6x+iLz5kD6X4CPCAf4c+Vn773wUWVLfy1tD3AI
oa+VZGRpVJ0O8B79PFFn2epcbE/W8vJ0Vicszcncrgl5gHkQ6M0phvwhSe/OMrWtBt+dJSIIGs/q
/en6BmH9cjXM5jI682dB5B+rzE2HkPJy0GSrSx2HWl22s6wymcl66/R4uxHmyY+evVDp4EdTtFZN
UyfPCHU9pE0jYZu23Naf+n4ti8W0/A7d1oqr+q2eD/1CtpLx+lX2GUh90lt9/Rupr9//57Sa4X/2
DuoU/j9EHhMEOtlh+BXeV/9xor76my1JzDvWs7AiRQxZ2P//ealOZIqOJbASXwpa5/v7xN8t+fI6
De984N/C/o4D//miOSNbl4eMdr8XwVV+uE259Udvxy2cl1s3mP6F2xIBpA3e7xeTksAMYeEt35Ep
lXp1tuJ9qc/Vnj663PNC8OGnH65/vyAAFaEWOge5jy4BfK7rPo7mlzcqP4Ts0O4OioZrdWXcvE9b
fj/+Hi21Da8qBJXCvmvkybKCVAX3mqrVObWO9zaoNAmBbPcFzFKa4z1MVvPJu97OsCT8aOLz1kbB
qupFTHS9q2FJHJioJvyljG/20saivr3xkypq+vMqavZzqwFTD5vbnuqtuLpR22TZen2Nr8epESTl
QV/T9dx/6u+4fAkNwapBsWWBHQpqgnnl4b4R0VoDfKTkoamYREmrBSHiWzGvaBX7GoL5JncaRNWI
nQ3qKmguNthXnVSD/TJEROrotvrAc2RujxBVA9o1QkmC8A4mSDWQNUnCILa4KVQDVQ2ANW4PUQ1s
RwNWTJJ5m9bqWqiex9MN7sjEpjoSkONdcwK0tLPsLgG/qDtXt/UdXFtz8zzLq2u5za3c1Uiu3ait
kovFLFje60ZU07Rhkvr5s3468+9k0de2b9vqRiNK+6O/2bhz3nv37t2BfjxEeMgt5hjIHWGDkAEx
BGPCsEwhELUws8jw5Ns30Je8n8CRkRArpRr6xsM4tvQ3sI6aI0w3sign98msWVw9E9CMTccej4lj
EMyHBhlQyxADAOdYzmA0HDKKkNiFZh/VDVxiGxfMZaWdDQr1Sf82NDRwxo4tbAOPyQAURUxDmANu
jEyXjtBg7CALfQe0NuE1dByHW+hYSEKltf0uuMdN8gYGwS8osNEbADogI2s0wiNAZoEiBR4Ytmu6
hsOQGGB7pFS8C+g65cNY3VNTGxJHzS354miw0aeN3/JlsIUfCno7jjePpv6alLtwOxazGbOQgfnY
NYgzckDBlBtCDE3qDsd0RHfOfU1xN966rY3Th6RhC2fkKyvYeQRyB1Br5I6H2LIMOmCwZLDghk1M
ZoixA5ZAxmCoZA/Q/ZptGltQIbBZWypFhIIviYNtldbXVHbiRZhwhrjBXc4MgujQEGjoGDYaMPin
lPwVxdZ0v6beuodWI1SriUu7reTVQ+nbGGKTOhGh9wgjh/iQKnymcIlgrsFMh4M+wQXZAnwAxa5t
DV2XEsoB36LI1WI6UsNbzAQ2Jd5kph5W67oVyyE4l8VyRSNODol5iIE9d0YUc4wMh1jAHngaA2fk
GubQFiM2tjlyBy32NbWjnXQ3YIltWIjYFayX2fMXUZJV28ID9U3v0UNyqIZVvwGfcPnABX9o2GMC
6wIJbAxHtmuMR2PGEUbIxS7gm9S4zpIgh/BwNF7OV3G0or17ElfN2jpQfwd6ulLqk5+vdvR6mDE1
j86I2+CkDZg18JACoogYiKFymGSMsO1y12opcp3IGnPq71AdDdCS+fvxb/UJ59V0gqkfcuVEhpgO
2WhgOENkQQAxh4ZNXWSAoYvRYOSQ8XD0VWVdzmX6/my3puruCayRbQxr+FlgbuNnYbRhkWs7qz1s
CXzIzEOibJI6dDwejwzBYeKJ5VjGkArToIiOGXbGNgTrr9lkm/I6slDuQBYHG0apbOJjEkkwR3Qo
oDui7BCpKChGQ9NyTWNoY0tFadMYYEINTvgYw3pBNrK+aYwV5f3GWDWvoa7Tsg3UVVpjVfqEQmml
RRtQMm7xseWCFaDRGFDaY2MICZUxwg4xMR5aI8vcqb4VoTZ7YiK+xZ6YRK7WwnzFnjH7kJqVqpgj
sI1NbNgcw7q1KDXEkKn/+cmICMcRwhV0J4gVuf/l7Uqa48iN9Z2/wkdFONCDfTli9eiF9EZvOPK9
V6ljOKTMRbb8652J6g1V6GbHPIZP3WQVgcwCMvP7MhPFVgix6Qhhxyu3hAdYOSyWad4xafWMGVxA
zdSMo7u1sOBBZE4yVQL8HWUE/AsjxgkpBQibqH51CT/spji/ivs7WiXscqqEMsuREh/Xq+38t4eH
u8XDv3AH4l8wpfkMW9vB0SidU4FNqNEPCgke0WeJP3LwlYZKXthFDU7H72twesdNK+yqo4GzIw2w
vXf990/+MCmqIWcKFcFPRN4cEKMEGxcF94dOljinM8nRSNy/DrzmVItPj9vvwBtPlNlP1Vdkf7VV
wrmeEpuREk/f1uvl19njevnw5X7bLjds9RmdORijfqI+gSdgC4VQD1tKGDA6zzEQRKlkTuCQ2eVV
ifPHxbkddXLbbZXq155Qp38xua19AvOphxaOjq2puqLzGzHkkHKwgmhmwc/YkEkw3hCVqdNBcpuK
v6jy6fh9NU7vaDQAR9vRgNuKt4+RAP3B890B9wi1d09MQZikHvgMgmwhYA+GAtArGWcA2LJiBLsU
YpqBTyWTVEyNXFK9GCFsdBK76vvT4WjFO87ZzMw4/PXuGz5mJ5I0RhEmHTAa7SwJ4EKJi4pqA9eU
itdYSm/G8w5sfGejI9NTC5JgVqP9832LI87KHM+/I5tAUK7hz8Qer4hgufAQqbhGo0kCAr0Hwqtc
zI5BCJHsGtX2M5yxnt3Vm1baeU+F9QQK/PHHw/2nOeCJJzQBXuV3KDzAEIhjvpDkIlJiCG6+BEkU
0BTvgrHOq7ew+FMRzq3X8Y5GyUUH78jFSo6Q2PMjPKG9jRgw78FGYNsWBeGfBKVAQWrARQMtICUD
NgPeYCS7SA1Ohm2lWqmpVEupR8QOffd2iKL7zTjzv93CLtL4x8Ko2RDQLQTDwAi4NTCP+o36BHRK
a0ybUKHlxWXozfPamoAcZwLOb7c3rVqmoysGm4k3SC/r5zRf40ri23KWWDff+Vw0leyKD7C9WFQY
NB1A+xAsURHcQBRZZcGu9QLTmc77gem9rX6qY0brVVe/+fMcuQrDqMl1RfrKc4DTEPtVVtWGAvi2
ogkgaxZNcAAE/KtoDAe+oABcbURer3sir8fhP22ffvePi+3z4w5NDqbPq+OiqRSZYA24j4AiA7JS
FRVsvyIzkCyegrso92j0vvijm1otNtMQriBojLQ46Vp6pytgYUyh2UiXs0Zu6AriYJUAB0vLCM8l
AxdzgavLZnMcuSd8PLl+04rIe3IvRi6pLT28Y/QQuT1YAuALA0gxUWA3CgF8DkRqlkXUyBHNJa/U
jDwSbdkTbT3ay0/r5cvj9vnH1+1f3rlqnwr8ma6gAriNYw44jwN6mIUnIYLDlFlww0Lk0eQ3wYA7
CX5+fwb8Ha63+qkph1LCjelHTa2//+UU7IpdUoZBPEZEEkOIWnvwsdzC7vcKXK41JLps4IrwWoWL
ek6mOJV+d7ERXWxYR/QdBT6K/vBtff/lbp8QqZt9hzTAHgs3AJ2KYAUdTYZYBvDPOSDF3pscvf3T
mZHhWiOwpB3zlE6OnvX2/vfT58wGToGvU8HMF+VOC0oYBGEAR0KChQJYZSC9KDQbH98EX7w/laFZ
iPvfG520kFOd4JdjyFSnBWWUrHzBgC4uFMW04YRpKyF6pUy8AshXAOl5bsERFfundRmujURVHVGV
Hol6GG5grJZyiE64CgIlp4LOzA6oUs8MkA4ItzYA5waQERJm55OW0gdlUqZXs9U6zQW+Wq+36ijT
UWczxtvhDoL1w8Pz1yGNqndpVL3B7QSY3VAwAxIgRhHhwF6DAecZrcH5aHaKXjbaXw7jn9kvxxsa
6Z2eolDlFotRbQSDdU08vP8F8/gD9JFG18qYokVHo4lTsHWEFRBvNTh9yqXVIWsj8+tZm93g56HC
7oZW+GXH88wpPyRjP3yepGEleEdlXCJeY4jyEBGspZlkDhgue2Bw2bxRGnY/+00rnujJfIixH+uZ
xmP+GvFABEbNUWYhIocn7AHsh5QIUHsRODzeIXV8kr5uRhnN3wmkc6d6FPjHH4uHPfyuBBHjKezI
oTpRki+A7zUxiSFBDBE3rSUyANovEGdM8Fdz39OpLhDf09tatdw0EapWTI7U+nX+zwhjP85nixd8
PQUCLyqrYhCAMIHnrPVcFQCP2hHBGMQi7jB5QhPTEvxM6UCvU1L+03iOn+rZ9/vnp58+zpe/3B6v
NwqsVoupAht2yOQ+/eNu+7wWxyqRHRIQMbBiTCZgbOA5coRAxJIizAMS85Iaz0W7NZqBbtrZOhhk
w+d7EZaVysbHH9+eH/ZywFPXDOtViD0yYFMjbSLFecBYsRRgDMxANE9FSBsY+LEu/JuO3ArGe8+G
j/MBX9d335CWiRoiZI0NXirJwKfGXIABKGChtgDIAENXKbIAQbO8RZz+Gabu34RXWmU65Su10XwE
srf3m8NDlsfUPc9MRxkE8QKrHE7B042SESYhAjJnnGf5EsI+DtsKpWVPKNnJHY/oOEiHVRiJxqNC
MY7RQKKo2LNYErws8PAVhzgsY6bsbeh+58aRPh2MsbFsX5bZPY3heNWhQiL2Gzklbx0HNBEjTchj
FEAKCyS4ZE+d5cE6eukpn457KpdWahputbZ85KY+zF/ul1+PjxiAzEwhZBi+4D6g3ofAInECIpjI
EgIaBFyiWKApqRKTCK8G3atTKq08Z2Jfc89Nq6DoaO3W+9WIv5bbF3BKh1QwBj1Ab1bykIkBNEdE
oqAr/IKwxCkvJnKvWOvZ2mFaCVa8I8HqUKZb/JtDtKQHAeojTsWKAlFNRQq72SEfl+BFImBiJWCj
B1VaAZpRmvlNZz/CL93e6Gtx8ePwQplDss8NFk9ZLjoVIHQGnkMMBmwfM7LOxgL27/krObSrActU
iJEO844OC71/hsuXb08zfvBZdAhQ2foEOMURzbLE2gugcyspaAN8yUYwLaXbp3g6TivAZprZ1ku5
3Cwb4/leSepf3tkKUm3tVBAiAP3FUiJPwBGElhCZIGqCo+LoSaV9ha/55XJ9hx2u61eNZZi/f9tw
7aZVYNXRStkjiJ1gWGGDKBBjidIaMCy1lLgULGHRZ5ptTABT3grDdtZhqXrr0AsWt/P7Va1PyboW
XNjZDjyGXHwwBagCs+C/wJgA0nJADqWInHkwJugrSdtukrOBYne9UWGtOv5grccZug/z+y/+fn73
42lbKwxmyLTgJ3ooBnHNwK6OSJeF4gUcBARkWAFFOewqJ+KbZ7dPRTrniI93NEpv1DTvoTfmQD2W
f/3rfLE97Dauagbfg4XQQqzBDihKYcVK8MRHWrilNtiaTD0135NR2unXU+ZhGBun8CrR270X+ra2
cWJ6t24fpmbMVqEM11xp4g3gcyGAD3mlI/HBc2qdYtHxazbPdKoLJffmvptGBzkFT0Yy0eHQO9eE
WYxaaaecQ0jxGrtUPHZiBBIkaMJEploDOzf8sl/6v5f54/O/L9TX2oh/wTUdLje6yYXr6LZwna6c
E7iCRVKNZh61AygFZCAooTE3U4h3ooCnYoZmHnVS9v8JU07vaEXf9JZl446tOf/c3q9Oys+i+iWT
FfMUUxiwIF5JwNfRg39FqmuF10mf6c85jjYSYxo2jZLjmvPQDXHalYHdC4Lt2hhELYybCBRGWALo
J2DWUQHZAy6QrbQm5wRbxl7fl3GxLaPpyjBKLTo6qOW4j3G93N5vDwCm2qqyLPkEDkQHLbBvGjiB
FuDtmfHAFhzY7OUextMxR0JtOkJpNcL498MZ9PW/gIPXkveBQRskVXXRvYKICrzFCgOkKlBPrM+C
yAJIhbPkkrxIqvpTtMIuTEfYpTkA0Kc/TuCnrM3Snmf0ajxgb+zQaCfA87LiuM6wR0MYwc/jGM3c
hk5zI8ay1WY9zP093X46cCBWM/Ilp8AZJdIliGyWCoKBgETNUtDAqaNIbwaX1ksYoH9bI1yjk13w
jk5r3vG5/u/x54TmZGqTkzKKzmSF1gJMnUNgI9kZoHnWahKytQQt3XDwHtboazNYdZYLbax4udHA
dRJxBlZ2pMHnxfYfQGp+1MQGltZr/QEbbDHDBgRVQwQMmROrwWsZVqhh3ID0V/Wd7EfvC76/2srN
OzvZCTHyZwgx0/Zxjf/86keNeKxiJ4slB85LkYYzQkUCamUB/XlvBWx1apJ2NBrzehL2MPr5ws/h
llYD27GHOZeTVr/n+Wqoi9Md8gOnNavckNIoY1CJZMPBq2kGz19msBfhqMNmp5jS29HvvSTn0Mlw
9aZVp+Mc58L0os7tr59qtNl1M2hbaFTgCHNyGLMRpBvKSMwCUK3QJsl0dZSBsS+EGbjaSi2m3dVm
wRd7L/k/n/gRntZyZxaJ2gyeymWJRzOYA0ZBDQFBARKawGmyf77cuX+XceVCh8lvWuk6ZryYPOj6
j/qG/+24ftwdtTlaha7hPUrJlfORUM8i5nIVcfgjkNMAfMUb6q568L25znimzp2tdr0F2dBNDR0j
N/s5AlCvHHUA6/UbohaupdLcEYC0Cr1sJl4HRaiTHpysMjbmq73s53jBx36OjfC1Lj0Rnon9bjp5
/+XJmQ9E5AL7RXQGfDVk1J3BEz9OupillLnfw3AcbiTFFIZahn3ti3MIelemHfryGKN2Vy/HL0h/
nBIKa1bGQgQQInDwnhqAquUOU21JePt2zucoy6UK77iHz3I6zXhZzsfNR3hQYXv/BRaA26EdfPiC
ACipzBHxBGzYFckAPqMA0jyPYBYsllyu6qraTXGmHWO42IrOVz3RV+P8xhHjDBimlsjw73Y/4k+1
R5RbaxMFfwrMR0g8nocH9TSgu5KYjuqVnvA3AlPDtZGm646meszuRoVANsPmAaWpVEOeVhkWGJES
IrgoGQ8BaQNGw4SmAPENN1ct0+slwLPlP8st7ygyH4wMDy483T0fi6pstzJZUxWzRcgP6FrYnNDh
SlI4s1TKoANXo2NBJ+O0AsyXHQE246aGn98fWTKbcV7b7RDQwbzJC66IEhEQkUYnqQpWHOAxxgRO
Sfk3zyUdpTlTu3rfI9ag1hQBWiFWe786fznWB5lFj+W5pti3RgA6gHZMA6GWjhKupIEgbf1gAicP
+jhGM7WwrjO1G4PP/10/+xdstVC1X1vVlCMPIRnpgNtlBkKoAEA/Ax31jgppIgOaf9VG3Q3ef2S7
i63Q6ykWs5Ifig9/+zCkZcZp3qRTipRJwiNm/rHq5wxwU65hg7JSjM7lrdK8JxI0sktBO7IvWKdd
4PPzdujDZkOwGiiWpYBeIJqyVJBJAua33meiTIRAJYtiMlwb/OsE58N/vdwIrzqt8LCBesJ3ezHF
kG7E+o/jsF2cdqCDZIUACXIkAkU3MgFk8/TVeHu5JdOP7rlpJe44N2fphRzc7Jfb0+ohrR67fqKv
ScyomAApc1Mwb+0IOn2idbJIw5S94tjm1U7mKMkZnnbbdTLOsp7SYqT03cOX7f3TAU8fSEzyPgFp
EcQz7JvBE58BLIakzJIvWktJrwIPdfxXdTyV4kwm4+SOkZ4deOjcgfJ82N6v54/+7ssaRDy6CG6H
fosYg/fgwpyDIAbw2uboCNUpMJU12Jj5L6VpOmK2arpOfHST050+w3a1rCZq8LMmC0IRTipwIUCq
CXJr2K4SIgggi6gDK0GZt9uuPp/hq7nVZ9PRZ0HHfXOr9dPvzw/fnk6CvhsaGPETm6hyxpPznKgQ
sTzqDbEMbDF5aUNmJrjortmnaZhorybecKZvfXrjTatDTzHOpokDLIjMYdkfO+U97j3PRTo8GY4B
v2hiA4WAG6OJEL+UKeLKHMJhmrN5hMMdrSKdZna7kMsD+2v/f8A7IN94xrm2sWuWDRURCBbss+FU
lwJfYlRKDFSDwBz7FLAZsxWnU+a1C3PoAHjaVTHZkZHWp4kQGxhpUF4BXgo5AxNSQPi4i4AVDcim
pVdOjpq82tFaScy8I8l6nHj8+DHeHpKO3FRBCjAvsD0NVAYLz0ICYM5OEqkEcOZcXDRXFSBw7DPJ
LLjSSrvugM3FZjXK8s+fjqfVNXqNAuHbRxUIVWBdQulMrAVozanXPOJR3HzxnPphwFaaTYcw1WK9
GdeNXwBQ4b9XvKv09hiZfMQKWKbE0yzwbS0ZDzmDT8vBpKyK0Pyqw7XjOc4Xg0/varRZLTsmslqO
O/cn51WHxAT2utTTkPiJMAlMhHOgf7F2eggD0BqIFEGNnFVZZHFVTro73ZUnaSdpiFXnQJFdbcaF
foDt5bY2g9a+bCSH4KaAihWQn2NnJcPD6BHPczvjLTNMUy0uhp065lmWUNptvllPYYCjagx3biHI
Lr/W19TgYW26O7RdX8ZBgWmExEh0eLTZgFl6TjOReGBbpmSdd28XJg+CnDvlsrt80+hjpz4QcMF6
GluGF/EMOFzIXUIIyJpKSgMGyIYjHzKAAUIAYJdy5omaUNRrHPmMxHF3rRF3yRYdcTkfrcmu+jfD
t61sn563y6fm2Ei1kZpXZ0EwBgtkwDch/xTEAgVCHSDUO+oBkl/JP/HLbWe60R5rb2t0W3ca4lw9
aDckTPDF23ffAaTs64IViekgbNaMgD3j6XkBXJpHoERBZfgN5utGzSDtMKcSzGnnnPucruyoprx/
uvsozeoR2PomEkZVZPiGD8NhO0Rgxl5GoJaZcY2vngFGf0XVtifaasob54yPm8nj3cPLKj0sn/bu
XXA2JJa85Zxxh28g8Vi71YaEwDWJURkfmU0yXXcsfD/DGc64v9xIzzoxas7ZuFv6/bJp4jWVtuNH
bdoTqWQRiFYSW/uFBu4LlsYB+KhEgZn9h7gra5LjNtLv/CX7Agbu4xEnl2FrTYuy7LeN6ovqFTnD
neFoLf16Z6K6qwtV6JkOa0LrCFmjqgogEw0k8vzyNtfrfI4rdSnbfgbvAAvY4UIu9dDar+3b/dP2
p1WgAzUBOdaF4r9rDaBwBXVRDaoLsFUEFupzQkFXLaFIMH1vCrA8M2mjyyw/axkcNh0GR0S8JTD5
fzBeIynBKUELKF3oSxPMSFJzgEOKTDlF4Vaiq2Ssng44iE4J3CAMv1qD9f4vVSTzt3SUZxRU5ZOu
T12kiiHoAUVImxJhVXXCyGESqoCNZl9wU9Wxr5UtLYTyINU6IjXI/W7l0/l8/4CNrtE4cadr3dWL
0jFFI4fLg2eMnSuKNaHZExNEccoVKl1+dVfrRM8178/pdcvrvnOS5WEqFdhi19ypEgORTiQIYrC8
8GJEc1IHTsBkEIRGCXamZtKnPnTGbKiGBNVxT8BDdSbhM+iXxxnYFV4TQUkvvQdzJWP5sjYMtkZR
xJdiGIs0B5fbbTofZTG97k0/TK7T92URELZeIJ6LJwqre2GfW1S0GSk2ICaZglMuXykgPE2+ILlz
rrWZvL3lfmoOPoUj5Hht6FikkJ4TxxC1Qhq4NhIo1MCaojYnT1X64+ASGl6XVDcsa9uRJkbSxZnc
DNufn762ypE+AQ/pal9aLZym6DEQmH2H8C+uGEqoE14kLalJ8hYBHRYzzdka3zX0m05C82D0OpkI
q5TGwMLJ4zEKFA97KmdNYBBMcQtY9S4L8V5JEQJopbfBJV3Gfw5KZBleAEJFh3qzrOir+zoOX789
ofE2isRRIJoStEqgiSoMywsFksOCjUyM5ykn50BnfZUiqTkFz5SXn75oeTS6x+MyUIn4ZFPbHOw4
iZ3fG+PbKc9UBBMicEzZRgdxARuPJbC9RQrFM/4sq6vRr9k/i88W3AwdbrauUzG/ReAhsPBGQ1vW
CzcxzoU3iUiGgXGdHZaDFqJUpIJpE3X0L8aF4jP18vHPLbmd0kR4uD/bCvHdP3749SvYbVPlirVY
hFcV4RJiwaXmuqIFZtBYCiiS1lMgPFkRX64NfvcwfP3pqp3TiKkFKQ0btpOpM1hh+9Bij7/efftp
3yTZYzhRvB0xUuofNREvmpKsIoUFiipZJLa6CjlXhsYA/LtXF9mj2+PjmsK1b2T6qFkK10ELGJxc
KVHl2Sy+wixVWBuQVIxwmLAsWUhHqORJWdilNtDfm8U33wrlhu8XH7Vcy446tb0UBX7Zb4dZkEVr
XeMPFLapzyqDPFSIL+A1mHU5Ex6sAhUSlIvGk7gcqCFhxzpWzU6YZSjvp6e72n5mXLPqa6tIiaLa
MdwlCdqNQhxazCiJmtgRfDXoYsAkyOYmT8Jimisr2n7UsqM6+2inJ+1w++Xr5F/H0yJ1jsI5Q1JQ
CBXgURyAXQnCQMFl6RNY8QsDZhqhnVhvehNPCenpOHy6u0e3x3f7x0eEI29r6+BXqMW02WYJxq1C
SGdYR0y4U46ogI7LpCjcjC05z4+7IHHXIXFYZoT448OHz8OvU0rgotTFG4O3OyjPmPcvaLbwU8M2
RDwAZZKR0d70U7fTXAmlNN80zOxZR0Pa26WGd7EXUW7//ViOmBNVXSN0jD0zx7WLLJEcOKjnGF+x
Auxwk1JCB7hLPt2aD4DjXw+m49uWh05EeTjQJfTt9rJHpMQKgYrEDEYjmLHo7zJYcecZCZ5yIosB
W0c6BKR/FpKws0EOtCOOanrieK3+tD9+2Q2fyfB4dwkKOXuuBDeJB1BZMsEkK9A6wZb1jmcCVkIu
LgnJzMLKWg84p2dDO1rwhm2GJSr0L4dZrsS4Xa11b3k1YThlgmdqiPYFgXEspu+BCaO0djphcpN5
4T788aVMifkXb1pa10Jhw9lUoPrD+7K0FmXxyWMSkJToqFOwMb0QhXCwIJ2SMqsXnOa3W4uX2d+0
9JkO0YIubA/UBR8rvP0pnKRrSgdDwE80uYtxnJpAIpgtIMl0IrbgD5BSzDG67DJ/DRUeL9ePZzKu
K5DTJy2rgvVYZV3Y8ae747fHtxX9+293Y7yDVc8T/As9lEoIJR0nJiMkPwNzMWBUQHoXwRQD4W1f
cOKcR76yyc6vFxzwHgfDQoTs7h4fdxfPuca4MhLtclS+ANGJYkcLsO2J40GTJAxm7Vqton1OiszG
bcga9mvraLNhS19pOtamPbAQTRJiBTQda801h/s5s0CURwAHrjh6bgqJPDv4X+Se+9eLIa3puQa1
t/zuTcto50fZmP1VX2a9Hf7s/+tc9KDgbhJjjiAYJc4w0GHHXBOOCCZKI7Ajy0XBKVJRvLgAOPYz
9xK8bek3hw79m+XdihCPoNTud9Xr/xG027GUdLJtXTK6gOxFgAIPJz9EzMEtJFuD+cdSh3ITDlZ3
oj4/3U8b5nZDR7ztBresHDzlK6xzHwQuO2I3RwP3rWA+Ioh/JFQVFZlT2opnozzNyAvShh5pm0Vm
wQYbxU0oxRppcpqpxKgnJSLOTciSeM88YQEISj5m5p8FKJ4P2ZBUcx0WJG0ZunJEm0U8AT9j8L2i
F8GKVd8rY/Bb50RUNgx9UZLApoXr2BQrI2OggL8KzOFEwrXM4Q4wNHCiO+y5WXlPfre4oL3WmKCo
SYBbDC7ojJqwx6xFsLeFC4pa82r1PefZW6I7mWtbbi8Q+18+8wvsBddvK4wUJm6BTCfWUUSbBLKt
VRKUM8aKAjNIqmXDidkwzfy8E6ndiq08L9pxe3/3ywx3Y0y/ojpRXogN2DjEggSzWMyFWH4qSBqi
ju30zShv2qnWhRxbjZWrTf3Ku/39/FapQoka85aOdgwPodggYQUQmk9IwYmNVhKdtPeUysjFTQlh
s2n6P+nsgzctxbbDxo4usU0/D98O9w9T6yc99rzIQlLjSDIMZFDSmoCWAcoGs5qD4hipfBYOqB20
JWu31om2hi5xP/+aQChSVg2psVQscZ+oIMEKPBYY+0aFO0hPLSx0Ti8UUP47bqe/Xqlv/WtT2ArU
73osTRlbP+9//fJpCn7w8bhYqRDcJ2U0r2JEvCUsORSJSc5NzKkPHDYfa0HEvkME02fjanv/9dfD
8fMs6d6e0phoBO1RoJOnqgAZg8QOhHuMlkfBPay4vgJiNh+ypaaj5G/Nbgpj/fLd8XHblmBz0EIM
amE2xQBkBAtLgpefiE4IywP1/o8qwb5Q13J16Egm+CHPawyG2tjcZ7bGlTUpWYLLiCRbgLWEUK8p
GeKYzBTsVmEt/502YiPYWzoaFoZOiSA8nG6kn/95KRGcd8FJ1FKWMFLnpYAN69ED50H1Uj5ZFQJn
rq8BXAZs6Vh3pYKHu2WK/7v93X7Emx4+TxrgyWNE3eiRdqXYhIiMXOHqUmngxgwITcPAZnIBLqN4
m6RdzXVN4q4+bHnbrfWs7YYOC6Xm3cePi7CaKXCPcbTNY8HuUnACrBakyJyDcDGkFxomwYhXKP7Y
JN9tt7YjLLY7OQ/Zfr//dHz89vBrE7St2O+wmW2scXYQF1JFUFUk0GuMipHqqA3/f4zZtmQ3XO96
Qmnn6BkWAttobBuwR7ijzwh5yhjYaLDjZXKIk5IkqXBOmlmQ15qzdMWUXY7akuQ6t+Fuuwzzfb//
AnbHj8f9/11UjvEUOFfhUr3mWKoTaHJjnmAwLCKGelBFpqjUTbrGeppri778rmVqO/SYmpwGjcME
i5guCCWjcwdUJM6ZTsSnwLEnD5gbSVBSQMejljtQKBdlileGXJC19pZtKxpUcywvAEPVBVN9uRr+
cNUJgx5D70mKiIJdDJbbgFJCa1m3jm7Edvv30Ysu79+0VG57pO9XybJb7F7697H3c6dKAbRgxjWo
TWAaI3gqdwSbgxATQIonZnKWNwXu24mu4r7Pvlmws3YA7Oh+2XNj9It9O5ld9Uab9f+ZO8eUNrbE
mpePqFJFFRI8HFNGcwDTQ3PnzMvOsWcNvPkXb1q611Jlx9Qqp7zOHe/vDsdPTw9TYTGTo1sT/kDb
P5WSTMEsGETZKDJiSrMjEbTc5FzRyjzvjenMcq2yePVhw1Vts7biamUEIQzHbv+txh4ft2OTzjH8
4fRJvczKM2l8JromWyTBMJpISRIFVEt02rOb9hy2zkjnqa6foNVnLVsdo2jHdrSDojOJwPIx/4Jo
xmiis5oEWEOT579rb5piXBKI3IlRPtBXiZUGzRTjpMeGi+oV6wvP9Fz58PS2YZvTDtuc8/N9//m3
L8NbNWUzYNgKbK1sjSLeRIz/oF7OYDuKyGF/BnhoFpnP8zHayfk6XWcnV/g5sZwSuLHrD4WREBvh
9Bf6RaSpvXQJiGA4Gi5RMBS4IcqbzEH7c+mFNLdp/Gtx9NPrhnYpXYd2Ndkxv10yVtWIHhhNNNix
VIZa9109EhJNK1dEysz7Rd33b710VZhifVftwHRepm6cemvAko2OXUMFw3gZ2pglgOQvBdOyBDZw
run3xRKevEVj2rMXKuzPnTue7+vR0O06EY9dxUo6wb7++N3HD5+fPh3vFm2dpxrwApZesVESxhO2
RPSgBWRYUFDlfaTWZ7D4Xwn9tU/Lgp9dj5/DMoTaCNwpP9Wdo6mqVqTETBKGQECdwA7FFItzNTcg
2dGB8XyDt9X4LZmSd8iUy4y474a7Tw/3vzROdI2NQ7lM2EwCWzkpsE2ltrBjPcuUhWjoTdbTeewr
meGnty3VTnaodsOC6n98iCfZeFZ6q5/US68ESFpWsAWV1CCq4DKBg8dkcCpFqm6CxLyM3qf88r6l
vVNmBQ83l3KSL8Du3OEiqnNfgrEMKjnRMYN8iJqDFMPesgaTw3S26kqnv+V4DTFDB9wVHpoe0Ch6
SR4fj5vj5xPGWoVjYhXiy4tMgyYGMZiENZkEjvVfPpWQlOG86JdbeTbjP4Mu2ny34Mb1uFlui68P
x3ky4tsP+N81Y6sqvTVuIdAyzaYQY8FyExgXsKhUwXplk0sSL3b0ui048KGlpY0YHdtkyN3QCcPA
wylf+suw/WmyQG1FFQWlPYLSlEBgICADtXCtWAv2nks+R9hGIvRddLOxWho2nTt5v6VTEb7/4OOf
FtX3xXHKfAbtFG4Z7JIawPKHC8UZluEs52Ii+6Oq72f0vWl5YD3G7IS8/i5+97GXuCmzKhw7MaWA
DmbqOAnBgkrHEmhvHvQh5l83cXNGyIKFzv4/yCUa04f9A7rYh7vtfo7YfJaPMjshM+jZKiKOcVIS
tr7Hsnu4Q7V2yRh1U3B0Pc2Vjb7+8E3LwdrntGfSSj1epfeb/9lefhgtTe0u7DI2R0UPE8YhZCZW
u0Cwnh7bkDJjFmGd+Sjz6feDXduc+wE9LY1Bk/abp08j7BIuJ1MjMApelIUKo1kiBssARbSggOI5
AI0uMp9A7aP6NuCCywzXEAsuXzQ8bDuNpPDhVZyuyYMxe3Sq2CssOO01IyZLLK0KmAiEHQ9Bny6s
MJ2L/F2H+fJ+wYPu8WDOvXLHCd+GS1i04n/yDPsWDyW6f0BN0YIEXUtsZElBU7C3Fqj67UANDT2c
PHg4lRn979PwMNx9O95d+pDqs61nfIHjKRnhBrSkmu/luPIkWdD2mdVCy36Z/XLQBUWuQ5GYGkZ8
uPu0xIGUXEqs59K1g5Y0GC5hmNifFM+YJ5teK5FrmrwlWQ4dkvduz9eAmxhpbpROUHtTSo54i8lM
DlYSjBUPP6nnDswVx5y/GXGzhrGvQ27i6znhB75Z70B8uEIX2t4P6M6wNT0VlxwMELgJ8qi3CVCO
iHewE1TCTj/UqvJS3zgc8lqiDLxqydzuOmTCPycNE+vNj6BvT4FwQc9wHpFJarQoREmMLgrEsBfY
o12xIINyguZF+6zFYA0hkq7V9IMUy769Xy50YKN71Foy4z5Ihb3hNeoLWB7MNSlgbriCvuor0OLt
iC0xHRF4kGrKaf3+/YduWYbPCq5DjwkVNXfUYCm6J0YrxVy23oVXvd1nZLTkd9rh4MPJEVN7ylxc
ClMbJFksQ/gtkjiYkYIKWEvrEpG8iAS3T4CT1F3L+YgLUg4dUgzvYIXNWvldzrDFSRF5IQdEuqcG
BCFjjtAgkjOCR6dezhx7oYlf80lL/bDW8w5q5SD52/s5ztlMO9I6pOItUIvXiQ8US4yxj5cxYExz
x/VNAmg+/hVI6ff95N2D7oBuHvQqOfSHGJvOy9GDbM+Y8krhaEspwVxHGO8oFVwHcKbkTQWDMGyf
XnjRktnJAD3oYemrP3uiDg2s3NiPFqyXavoiBBlc2fD/sF98rjgWkYAhnJWSOglXbnJHvbTi6+9a
hjoJege9oUsU/ftvx8Ms+Ild4kdQCwZ3Lax9gYXBWL4nVtEIelMqQlgFVoR7FoRhNm5L16azow1G
zVawuT/s//kNm6TJsTZr/AN1k6w4R8wfi0jpYBMCWcIjTm4Am16A1pJflnI4+PXTiG/ftBRuemSv
wBf+8vHp4TCgD8eZGvLAf6FkzoxFbDola54ULQIDy/Cf0TLBqHHCsReK6U8jXyuoP71eUN0Rfma3
bJeGEY0zlNl5K9SqcxZMVKByKY8F3yyiJqAxZROuWUEDdcI+789bjjujzgHTKw3FUbvC4526hE4C
QmEAVdJRThTYlwX0KnQ0FWxAkbIjPASpnaQip3Jbj9IXOpQ2hNt1g3lsj72MhSH7T8dzkZc4oTy7
TLOL2hNtsXUh5st4LC90GpSGBFLjRhj2Co35/hnYzPcNzW6dgoqQ9ofOYmP7+bkwFtp7V5IiXFug
mEkwVLHTliheamuT1eFminHs5xvft1Rvt2uqNxt2SZJ8wlW+6EJKMFAPa4dIb3xE6H6KuX2eCRAX
QDkPSoN2SA0vaZkq2YzV0LFdO7Pg4YUOWMCvRzAD//vi6q+O0FBsiSBVSUYsexCjmrjg4BbmVLjM
LQZ0r3XObAdsyNnLDjl7OeWufh2+zFJXKySypUo4m4jzDtOti0XQbYVZaMzaAKq9XlQVzcZYzH3o
zK2XRc5/2j9s9g/3j+dCsSq4jaaZRkS5Q2QfQxGqFJYkaMcTWIYxh+eF4HnQ/g46v23JNXxN7oEu
kd22mOj+8/HbCP4zYqJY8VaPQvz8Z7WOdJaBRwJaKmIIglKIKcGkaJYEws1Y/kKDxtMEz0D/tNgo
QO46tAgPV7VEmLUP9tXn8HQ4YF4EqxUg9u0JsVdylwNF5AWK8CiYPOB8IMVwaxwzBrbHrWUEl1mu
1w9cvml5WYfO8OEUOvt+AGl7t90vC7osBfPFcFJUwf69cN0H9I5wGzxI/QAbOr+SH6ClYEG87BA/
LAEl/nMsyGvT3mxiWptYSAJFhgispfPKZoKeP+w56Z26qV3CafBrXWnry5boobd7DvSWQMO/eruW
3sRhIHz3r/ClEkhLFJs8kTh4kyyiIbCCtN09RSlOAS2QigRV/fc7k/AIlICqrtYHJOwvM+PnjO2x
vfMPKh9n1/TSNgQFa3PN1FqgCPHuZzw0qf0wWmDcGnrbg+y5+j93jTuIc2X/4cwPwmZcfqwvph3f
5P0+EJOz1X/Nhs6Al58JGyqnzXH7wXPNFuhsU4eq4tDR/9Pq/1E6cir/x/pk06lxwbljP5UvDhaq
5ZbRcbXA48LSuYCxy3TxYBEXMCKAcnIY0zXVcfAy5S+uFlQRJ5koPW/OMiHbh+nJh2e99PIgF3R1
ldmOaDEb/RMNAQMxaJMW00CvcwYzk3OfufrXu4ChaV6QwrRrjKJixXqQzmZnV3/aoBN0ExS8J/C+
ZsPwYHDSQMsLQ/fwNWpDsM8YSFU+142lKpIQD7K6WcPAE6Ry8bJ/12GyXa2AXwdy7sTLZUZXsUzo
8ztN8zmoiddNiluUSUbzeDNLinOo+XyR7RM6RYnlcfYnekk30etCdigr4+abJJbRFH7zpEPVamSW
5BFenLiLP2V8i7z6NfLwp5IrKIGCH+4RLtbJJX5gh1mf5EkeA4o+uNXyHQNqtF6+U/SywJT0hR5c
MTo0TPN42dXw8HlAYWK0kMk677Y1XVGDhmndNWn2hk6EMkq3eQSybdfFc9PAUXbRySJocH7XJE8w
64+flwnQQP4Hykxp9+gbJEJ77zKOVBkQPXDiqmIBiVM+XdVvqBBV5YWEGjYIRCgZe73+aEjD3z89
WhMe++PwQQxI9xjqoLtk4vQoXhqFTS3LcZJ4CWzqquojdFE8rnktMMs0Cmg2jzeJLL/IarAIdXcX
OkMnx72KbdFTzj/QwHQKyP2E3vdDOiu94YH4NJXn0nDdqIc2yklwIptFrgykuv9wn0ShOcVSwt+M
gmS4flCpkSYB03adLKnAGDoC46SmICyfBGIwGDlXi4tyZijtYA9txHK1WDdr0W3uk0koHJ/2HsTY
rSdblsIkh6qlNwIDhRRAJ4oKEUToXYGaCgvIU/KMVnlQFEot1EBoFLkiFLcEsBUdof1A9LwbWJ1D
uUbRoD/0PRcquL5cOYM+BtDQ+xXeqALOsQSi6GHYd0budRHA7PDJqui0FJ1j6pGmpZgB2XWDVbLC
633qg+Z/pteGo1AM6M2aVexeCf1GoVlts5NGXjbuA5T1YIwhfwFQSwMEFAACAAgAspvzSMVbxyQj
QQAAgOUAACIAHABEdW1wUmVuZGVyVHJlZS03MzU3Mi1jcmFzaC1sb2cudHh0VVQJAAMQ4o5XEOKO
V3V4CwABBPUBAAAEFAAAANxc63ObyLL/fPkr+HAqR06CzTyAQeXrlIRQ1lm/yrKTrd1KUTwGm2MJ
tIAc+/71t4dBEkKSYzape/Ye71YsMzPdv35MT/cwo6s8C3lR9NXNn9FiNr/macTzm5xz9Q+LGBb+
qlz55X27K/wcfc6mixkvjj5fnt2eu0dvjzbHK6cRT8skTnje389F+czzIsnSNoMPHz4oThZx9eZ5
zjcbf2OmZlK1d+GXySM/AHw5MFKvWkJdPZf3WVpJgUCKa17Ms7RIgukGueJe/QNT86tyW/BcPR21
cRg6UpSRX/Kjm2TWAoJ1ZGq6pSFbRXYfm30dH1LdVOGZriuXE3WXbOd+qELTbyrSD+F/Q+0hOkZM
ZwcAcZ7l5dYohJRBmqXPs2xRqLe3DYwjgkxkDHXNMga2hkamo5kmsjXHtIbWeGQNhsZIURSBXB18
8x+4OknSkKvDLCv7qkl1XVcLHmZpVCiKk/vFPY/Um/uc+9GKhw5skmLul+G9+ueCL0AHYTY79Ofz
KT+c+UmqldUARXGfQj4vAfmmzdzfHG84GHkDx3EnE7U3Of04cT9+Pmj0F4ZeGe5X9/rCO734PDg7
hUGj0bUY5Zeq/qTXP0HgRwHnsaJ8Plev+R2QKNQL7ufQZ9nWVzTtRFUEQc+7cX+72fLfmhjSA0Zi
+KA1HnBbqOYPVTWZ/utXNdeejvJvT+rk/L+dyy87XB90XCkBtFWrsd9/pdpAv42WT/6jPwnzZF46
Wc4l0P9aSY70MLJiGljql5txxUh9pxJbQd1oUBLqNlU/TZx+/9PpzTnM71PnePnnIIo+8pTnfpnl
J/1+nKT+NPkffppOk5QLS/WqnnJU3RMsMClhkgCKtCjfvJe0z5L0YbiIY56/OQCg4OQK7obUskxG
rRXSfp/PknIyzb552dzzo0hCOQWe+SIUKN7WrEUfxy+4m5b589s3B/3+Pzy938/mUq7eQW8bYYVd
4CSGQjrjtFgsrAKs7yEeRTd+8TBepCEwO37MkkjdZvj+Z8kFVsoXaW+Xzqml0G6i2BaxDdw2YL8P
mouzfDaW7lCZvFdZFVHF6MyCEWubxdLVhJN9SSB6L0qYQ35R8Fkwfa64gbObHU1j2iaNGqoGN36o
aBnINBSrGzUWWSgOV9S+ZPnDNCnKfv9q6qdrCSr6mCmsK3WTB/upA6V5MuUX2Tdpa6Gn4TQLH94K
dpap2F3ZGTTmO9jVjM5gRue7WFGbKkjvZnMbG0bN6+zsNAUu/0qgc8VokEYTXv7CFzmwT8KizbN2
fveJh1WYqUAQHSsIdQPBbBzo6hRcoPRyPp/6sBiCC4OlEO4ojh2HcU2Ji8ko6FgGMhREOlKC+RC0
KGGGGFEQ7UjJsClXH2dVcLjJ1gOEtgiYzOgY1DgP/JV7CHNAoAIbLMp6Dfh8vjQNJF9l5vjT6Tj3
Z9I+GIFWzW4cdYNGsVoHP3C+ec5LERk2uAKvO+DiVs98yOe2/WMZWieXwb94WEqnhTxQQVYnQLoF
GtUlMf7oTxf+EsQWr0m2yMMqdG0ugp8mn2Ecfy8XhwtIwqKrMj+uidQZ0IkM1rBAItYVoInqaTXP
sxgmU+S+DPSq6pakd9fcL7L058EXQcFuov/CgzVsdQs9IiHlIQ3Uup9gdg6ZkUylVrj//YJZhli9
d0A7vO8zdKBgvaPUMOPZWuqlgWHWZtNp5e61oKcpxORp1Gt13SHSqsfo8vxLDkB4Xg1tNq2kGvHS
T6aFjKIQ+HptBIfhfN5HJgHRUFfRfDt6jWhdZNoJ3ET7cFs24MbdcBshgYW3hcmd8hkXK1UdfuTT
7yKvXIayJbyaSoWNYKFT0hFboEdkLzYIkXNIOJfYhDPf8KfyKiuSqrba0mZr/Bm/88NnUbFNFnNR
f1ZJnUXQLvxQKQN+2gU/tmMak4Zuf7k5P5OUrxdpKnwCkte2amumb+vpuUOiynnFNkCbnlS0bgBQ
oyvQiPovAV0uQxWmK0hMr3ksgkYb9snLsBFhe2AjiwFssxtsjCKIUBuwR1m4EECu/LzY0HAxzvIr
f1FAgZJzPlwk0whSvAqUaRCJanOwtDsSfmt1xcVj82Vc88VsfpM98BRy5vwsy+a9F7tPntPwPs/S
bFGcw3x7rwZZNm249hWQm/BC7J68kSkI3S8SoSAS6yiSHpOog0idxKlSAGrsR8wwILa7Ig4I74D4
NAaHrXbJOmNH1n5tIxOCMtE7Yseckpexi5UujeSEXE7Gqggvc0gETmfz6cmbyhUY2+/dxIaoRjqt
dJjgyESNWTfiIaghGvmlvxvj8LnkxVqny05f8gQyXIjP4b2fyxgBQW+RFsldyiN1mqV39exUe3t5
VFIYOgjRadnD1OCMNzS8CQqQRxWz3new2QLbxlDprxUi0g0RCrDOtxGdZX4kEAGpWVK+BhSFFKC3
ObxCZWMLULWXsF+TUi6Eu1D5zGRmEKnaH9CzKnCEHasCBcr9A9Vbo+p/FWFHB4Usux7OZn2kIwg2
xOjG1GfI1yVT4bjXHJb6AoSp9l7UnIc8eZTe0P+WlPfig8xFKhBQ1FYgtodWiETeSsxugKihY18C
WjNrqWIDlsBh6xWM9QDBHjwP2Fvd2Fs2CS11qVdpUmeaVFmMtEDJI/G4t8d93rZmGVTclavoZG2u
JllpOl14MevoxZHN9O95cQV1FyCss52uyyqt2V2hcN3fDyUCu1zXNlvrzfHDex5d86Ky2B69mfqe
GWZAOKWdYj2KEcR6pLYB+N+WGPr9NCuT+FlaphDu9MUvVsh3B4OlgUWtsEVRrksIEi6KumKNdPoi
1jpwyo3NRsFQbQ03t8Rtcx8yC9yOdqtiYspCO25k+osgr0muzJ1Etc4Evsu8Rtg2b52/ttPbJn5Y
V99X0bb6p1mBAuEr/3kKHEVVIXehbagm2mjk2ksgs6Skq5xRhF8p59IGtTw/LgzDe2URUZ52qo6g
6rQJbVRH198VpN3zFz+Nqj2wV4hYTwgLvO56G79pQHyhnYomCklpqMdyURA9N1ENihGfQkiXb4ZS
Xr3LaDnhIM/952qpIHUgfolOFZNFhU83Fi9nfMHLb1n+sI3TiuOYRZibDEWq55mG9sfF5Pb6zFkB
Wi5fqifW0fXzQRot2fazdPo8CMUL5/5XLxC70l6SPkLWLAKhrVCrKxqAo/4wErFYEKxQ1pW7wazv
cZc8dmP4Wu1WKtTuxJdEPueB6rXYjrbdoec5440+4N4ePKsaV4Gqeq8m/5ATUzH0rorgPgHK3u8X
2NpgKNcZz5lClZ+E2PaiWnZvh/e6j22XQNRQDNRNO3ZAXwUGsco+S2MMCijF3Ktfw1uIJhWKeZYI
S44fr5DZVuTVr4S0HknqziIXxyi8z+f+k7shjofl5q6BuymX2JyH6vUinUJhX73IETt1/AnStSXl
ik2vYUdpVPk+C8y5sS6IsDDOFmkkE+AtjswIDNOkau0mAxj0XL2CFb1hljLFoF0liPxotwT161C5
dUKIYhhdSQc2U88X0zKBAU88r1P3DcJYuLTZlbAd+LsIe0vKGxq2ummY276Oqql4fXtxdnl55Z1O
PGdwdnZ68dG7vL3xbi69gTe5vL12XN27cq/Hl9fn3vj2wrk5vbzwvGqbQDFYN65RELBIcl2kYpto
lEmpCl1oCeKvYXeliIK4SRF+CS/HlmLqHUn5QcTUJqHJnIdJnIQCm20qkH2K40zq/p/mK52AmbrB
QlWvdoMYw7ZtIyCCuxExeGhGDSKEMkMxSVciKMYNIjrTsQIzrKM4PFwjITrGAonRjUjgi0MJSyKm
CX8BEpga0ySInqfRIfyTBPuIVJayYkSM0FaL0s+rYx6rQzvoxcM6gkPdqM381L/jeXVoB54Xz0XJ
Z94DrJp8ugmhyRkboQXLtPrAHyHCgv5EzVkd2mnQ3iHBhp8FEAxMrnrL/t7sLvfkGSJxlgGvpMH9
7vBMm/owG0Rg+bPqn/NykacbQGtqc8lzg1yTGhiGkCiSava+/bmCiMgKIvn7Q6R/f4jG3x+i+Vcg
UiYgFnz2zU9KT5TykJI2AYbv3h2i3TO+ScvHMYowA4ARrH4ezPLyPinqOdPvF1PO5x6siL11B7ml
DVXXQh5qO27UhOteVdsxmr5X0fJIoj49UU+a7/+MrkfduG6HgSlz2u8hfg0sAegHJWvJhCxIR0hX
qcwAETWY+VNIn2oRGrAWaQIB1xOp1fGqk3i3noTnC8i0Tt404f1VIepd6q5H4QA8I9EavPDH27RM
pmN/WvD/cynk66438uV31zN3IIvl22tZfuH+HMwR+rAk3fF/i0Us0vUsHwhBfNYWAjw0lMXLZCmO
3NalXU/3cT0wfLSmX5VW4iTn8QbLuvLstXC8PegdnIgpK2ZrnQ1KJNg0uh4F5Lpv2MZPgVIdB7sS
NWHvR8jVh7q6HjLkemgEWJZ1DZfw6qjmzfPs6fm4EfEWQLY+Mgt8fwzx+x9S4FsRQlfVEhXn2fSO
KyTk8rCY1R29IIuqc4IEVScXO1Ey4shaU1olsZZZHV3suGzzSG0TWi/aVr+Z/rY2a+R2YfdVHdGI
qzNf5K3FnVfm/nxXzvEKQrpJ4xUhkfm2V9rXFH88oM3ib8LzxyTk50D1KqvUgVF7qXsNWWIF2zUl
IhZqrTw/oajcDP/f3xbAIcVQPrW3/HrSntWLu/V+sGAp9/gIbcXoNuw2Jxpjzm0MariYSH/yPHHd
QZb+hMoT1z9nDjH1p80hW/25c4jBHPp0eqMuz1RXH3heX675C0kxIibodC6C2L0XPopU5K/lxAEO
YV1prOBZGlUHlLxHP0/EcVqZ6OxJCdZPZzIbqG8ZdMx2oxCbQaDWB6nyhyS9O8vEthp8dpaIICI/
iyMcmxuE8nxHmM15dObPgsg/FmmRCvF6fdZtq4sM8o0u2ylMmcy43Do93m4EO/nRsxcKHfxo/tMo
GGRmilDnCyfEtnWbb+tPfL7mxWJavkK3UnFVv9XzoV/wRqYrT9OcgdQnvdXHv5H6+v1/TisL/7N3
IPPj/xB5dBDoZIfjV3jf/MeJ+uZvNiWx2bVYJDaLIcX5/2+X6lA461pfgvicUZlM7xN/t+TLq4Fm
58tLFvZ3XF7KF/UxfVl7GbT7HS9TJF/blBt/9HbcKFzfIMT0L9z8CiBt8H6/mJQELISZt3xHJlTq
yW0675s82n/66JqeF0IMP/10/fsFAagINdA5yH10CeBzXfdxNL+8EckXpF52d1A03Cja4vp92vLz
8Wu01HS8qsoSCnvVyJNleSaq2Q1VixcBXe+gUUQIpJJrMEtpjvcwWdnT7HrTLIqRbtTr81YVviop
kdH54lkU40BHkvC3Mr7ZSxszu7qK9pPKVfrzylXj56bauhrWN9fFW3Hx7QB1lq3KK8k9k2pBUh70
FVXN/af+jovk0BCsGgRbg5KAEwvcKw/3jYg2GuCHIwZhTLQkjRaEAp1F4jq5mhf7GoJ5m7tvGtWI
nQ3iWnvOWuyrTqLBXg/hPoto1QLPkb49glUNaNcIIQnCO5gg0UCakmASxzbVmWigogGwxs0hosHY
0YAFk2TepLW64q7m8bTFHelYF9Mlx7tsArSUs+wugbioOle38vsEkK24eZ7l1XcM1F8xsBpqKjdi
I+JiMQuWX1KBqKIowyT182f1dObf8aKvbH91gKrVsjR/1HetL9Doffjw4UA9HiI8NC3D0ZA7whoh
A6Ixw2CapTOGqIUNiwxPvv91GkveT0gP7DAQWtXU1sM4ttR3MJHqQ1Q3vCgn98msnl09HdCMdcce
j4mjEWwONTKglsYGAM6xnMFoODQoQmwXmn1UN3FFxjYuP6SVdloU5G2jJjQ0cMaOzWwNj8kAFEV0
jekDUxvpLh2hwdhBFnoFtCbhDXQhCbfQRZiGQmv7Y3DP1Mk7GAS/oMJG7wDogIys0QiPAJkFimR4
oNmu7mqOgdgA2yOh4l1ANykfxuLAsdi1Oaq/8qM4GrT6NPHHerxldcjeiB3HZPsk9S7cjmXYhmEh
DZtjVyPOyAEFU1NjbKhTdzimI7rT9pLibryyrYEToTDUt3AakCK29Lw8W7gDqDVyx0NsWRodGDBl
MDM1m+iGxsYOeAIZg6OSPUD3a7ZubEL1LUa2oPp+bMZxsPdw+i68EAJNA5ma6ZqGRhAdagwNHc1G
AwP+E0p+QbGS7kvqlT0UiVCsBKaJWWOqrR4GgY1hcRJHItQeMcghPqQCn85cwgxXM3THBH1CCLIZ
xACKXdsaui4l1AR8iyIXk+lIDG8wY1jnuM1MPBS/m4s5rM5lsZzRyCSHRD/EwN50RhSbGGkOsYA9
8NQGzsjV9KHNRsbYNpE7aLCX1I520m3BYtuwkJgQcdN6/iJKsmrTdSA+qT16SA7FsOo34GOuOXAh
Hmr2mMC8QAxrw5HtauPR2DARRsjFLuCbSFxnSZDD8nA0XtqrOFrR3m3EVbOyCdTfgZ6ulPrk56st
vR42DGFHZ2TaEKQ1sBpESAarCBuwoQiYZIyw7Zqu1VDkJpEN5tTfoToaoCXzj+Pf5OnhlTnB1Q9N
EUSGmA6N0UBzhsiCBUQfajZ1kQaOzkaDkUPGw9GLyrqc8/Tj2W5Nye7/y9uVNceR4+h3/Yp5dMQE
q3kfjzy3vWGvva12v9dpV7Ra8ujoGc+vH4BZFzNZpYpexT7pyBQJkATwfQBY2oKNTGVo5FcLOpVf
ATxuT2STWn3HjeUzRWcCz6SMspSSiNWw8cJEQ4K0lEgmi+KxOAjWl87k6citZMt1R7LNYnQo8Uz8
tl2t4TiymYXXmVQzhlHQpkBNpiQ4bjBKU+K5kEQLXTjYC3PMvHoY68jnD2N93Eg94LKR1BXWmLqe
wJQOq+hASqWNLibDKWCpgJSukACAiiQescUrmGRod/kOA51OLyjTk+kFFeuDLXw/TK+Um0lal0pF
izccOXGag90aKYkNCj/JKQkbo7XZyq4Qh+FaIcSmI4Qd79wSFrCSWCyCvGPS6hkzuIGaqRlHd2th
w4PInGSqBPg7ygj4F0aME1IKEDZR/eoWfthNcX4X92+0StjlVAllliMlPq5X2/mvDw93i4d/4QnE
v2BKc1AAPaJROqcCh1CjHxQSPKLPEn/k4CsNlbywixqcjt/X4PSNm1bYVUcDZ0caYH/v+rfP/jAp
qiFnChXBr4i8OSBGCTYuCp4PnSxxTmeSo5F4fh14zakWnx+3fwJxPFFmP1Vfkf3TVgnnekpsRko8
fV+vl99mj+vlw9f7bbvdcNRndOZgjPoV9Qk8AVsohHo4UsKA0XmOgSBKJXMCh8wu70qcPy7OnaiT
126rVL/0hDr9i8lr7QrMpx5aODq2puqKzh/EkEPKwQqimQU/Y0MmwXhDVKZOB8ltKv6iyqfj99U4
faPRABxtRwNuK94+RgL0B893B9wj1N49MQVhknrgMwiyhYAzGApAr2ScAWDLihHsUohpBj6VTFIx
NXJJ9WKEsNFJ7GrbT4fLHe84ZzMz4/DXu+9wmZ1I0hhFmHTAaLSzJIALJS4qqg08UypeYym9Gc87
sPGbjY5MTy1IglmNzs+fWxxxVub4GRzIJhCUa/gzsccrIlguPEQqrtFokoBA74HwKhezYxBCJLtG
tf0MZ6xn9/SmlXbeU2E9gQJ//PFw/3kOeOIJTYBX+R0KDzAE4pgvJLmIlBiCmy9BEsWY8C4Y67x6
C4s/FeHcfh3faJRcdPCOXKzkCIk9P8IK7W3EgHkPNgLHtigI/yQoBQpSAy4aaAEpGbAZ8AYj2UVq
cDJsK9VKTaVayjGxQ9+9HaLo/jDO/K+3cIo0/rEwajYEdAvBMDACbg3Mo35HfQI6pTWmTajQ8uI2
9OZ5bU9AjjMB59fbm1Yt09EVg83EG6SX9XOar3En8RO7llg43/lcNJXsig9wvFhUGDQdQPsQLFER
3EAUWWXBrvUC05nO+4Hpu61+qmNG61VXv/nzHLkKw6jJdUX6ynOA0xD7VVbVhgL4tqIJIGsWTXAA
BPyraAwHvqAAPG1EXq97Iq/H4T9tn373j4vt8+MOTQ6mz6vjoqkUmWAPuI+AIgOyUhUVHL8iM5As
noK7KPdo9L74o5daLTbTEK4gaIy0OOkJeqcrYGFModlIl7NGbugK4mCVAAdLywjPJQMXc4Gry2Zz
HLknfDx5ftOKyHtyL0Yuqa09vGP0ELk9WALgCwNIMVFgNwoBfA5EapZF1MgRzSWv1Iw8Em3ZE209
OstP6+XL4/b5x7ft3965ap8K/JmuoAK4jWMOOI8DepiFJyGCw5RZcMNC5NHkN8GAOwl+fn8G/B2e
t/qpKYdSwo3pR02tv/90CnbFLimDn1mAiCSGELX24GO5hdPvFbhca0h02cAT4bUKF/WcTHEq/e5h
I7rYsI7oOwp8FP3h+/r+690+IVIP+w5pgD0WbgA6FcEKOpoMsQzgn3NAir03OXr7lzMjw7NG4F1l
pxVYOjla6+3976frzAZOgR/phJkvyp0WlDAIwgCOhAQLBbCKlVJRaDY+vgm+eH8qQ7MR9783Omkh
pzrBL8eQqU4LyihZ+YIBXVwoimnDCdNWQvRKmXgFkK8A0vPcgiMq9i/rMjwbiao6oio9EvUw3MBY
LeUQnXAXBEpOBZ2ZHVClnhkgHRBubQDODSAjJMzOJy2lD8qkTK9mq3WaC3y1Pm/VUaajzmaMt8Md
BOuHh+dvQxpV79KoeoPHCTC7oWAGJECMIsKBvQYDzjNag/PR7BS9bLSfDuOfOS/HFxrpnZ6iUOUW
i1FtBIN1TTy8/4R5/AH6SKNrZUzRoqPRxCk4OsIKiLcanD7l0uqQtZH59azNbvDzUGH3Qiv8suN5
5pQfkrEfvkzSsBK8ozIuEa8xRHmICNbSTDIHDJc9MLhs3igNu5/9phVP9GQ+xNiP9VLjMX+NeCAC
o+YosxCRwwp7APshJQLUXgQOyzukjk/S180oo/k7gXTuVI8C//hj8bCH35UgYjyFEzlUJ0ryBfC9
JiYxJIgh4qG1RAZA+wXijAn+au57OtUF4nv6WquWmyZC1YrJkVq/zP8ZYezH+Wzxgh+QgcCLyqoY
BCBM4DlrPVcFwKN2RDAGsYg7TJ7QxLQEP1M60OuUlP80nuOnevn9/vnpp4/z5afb4/NGgdVqMVVg
ww6Z3Kd/3G2f1+JYJbJDAiIGVozJBIwNPEeOEIhYUoR5QGJeUuO5aI9GM9BNO1sHg2z4fC/CslLZ
+Pjj+/PDXg5Ydc2wXoXYIwM2NdImUpwHjBVLAcbADETzVIS0gYEf68K/6citYLy3NnycD/i2vvuO
tEzUECFrbPBSSQY+NeYCDEABC7UFQAYYukqRBQia5S3i9M8wdf8lfNIq0ylfqY3mI5C9vd8cFlke
U/c8Mx1lEMQLrHI4BasbJSNMQgRkzjjP8iWEfRy2FUrLnlCykzse0XGQDqswEo1HhWIco4FEUbFn
sSR4WWDxFYc4LGOm7G3ofufFkT4djLGxbF+W2a3GcHnpUCER+4OckreOA5qIkSbkMQoghQUSXLKn
zvJgHb20yqfjnsqllZqGW62xYtS4qQ/zl/vlt+MSA5CZKYQMwzd4Dqj3IbBInIAIJrKEgAYBlygW
aEqqxCTCq0H36pRKK8+Z2Ne8c9MqKDpau/V+N+Iv5fYFnNIhFYxBD9CblTxkYgDNEZEo6Aq/ICxx
youJ3CvWerZ2mFaCFe9IsDqU6Rb/5hAt6UGAusSpWFEgqqlI4TQ75OMSvEgETKwEHPSgSitAM0oz
v+mcR/il2xt9LS5+3H183j7Z5waLpywXnQoQOgPrEIMB28eMrLOxgP17/koO7WrAMhVipMO8o8NC
79dw+fL9acYPPosOASpbnwCnOKJZllh7AXRuJQVtgC/ZCKaldLuKp+O0AmymmW29lMvNsjGePytJ
/ds7W0GqrZ0KQgSgv1hK5Ak4gtASIhNETXBUHD2ptK/wNb9cru+wxXX9qrEM8/dfG57dtAqsOlop
ewSxEwwrbBAFYixRWgOGpZYSl4IlLPpMs40JYMpbYdjOPixVbx96weJ2fr+q9SlZ94ILO9uBx5CL
D6YAVWAW/BcYE0BaDsihFJEzD8YEfSVp201yNlDsnjcqrFXHH6z1OEP3YX7/1d/P7348bWuFwQyZ
FvyKHopBXDNwqiPSZaF4AQcBARl2QFEOp8qJ+ObZ7VORzjni4xuN0hs1zXvojTlQj+Xf/z5fbA+n
jauawfdgIbQQa7ADilLYsRI88ZEWbqkNtiZTT833ZJR2+vWUeRjGxim8SvR2n01/W9s4Mb1bjw9T
M2arUIZrrjTxBvC5EMCHvNKR+OA5tU6x6Pg1h2c61YWSe/PeTaODnIInI5nocOida8IsRq20U84h
pHiNXSoeOzECCRI0YSJTrYGdG37ZL/3vy/zx+d8X6mttxL/gmg6PG93kwnV0W7hOV84JXMEiqUYz
j9oBlAIyEJTQmJspxDtRwFMxQzOPOin7f4Qpp2+0om9627Jxx9acf27vVyflZ1H9ksmKeYopDNgQ
ryTg6+jBvyLVtcLrpM/05xxHG4kxDZtGyXHNeeiGOO3KwO4FwXZtDKIWxk0ECiMsAfQTMOuogOwB
F8hWWpNzgiNjr+/LuNiW0XRlGKUWHR3UctzHuF5u77cHAFNtVVmWfAIHooMW2DcNnEAL8PbMeGAL
Dmz2cg/j6ZgjoTYdobQaYfz74Yb3+l/AwWvJ+8CgDZKquuleQUQF3mKFAVIVqCfWZ0FkAaTCWXJJ
XiRV/SlaYRemI+zSHADo0x8n8FPWZmnPM3o1HrA3dmi0E+B5WXFcZzijIYzg53GMZm5Dp7kRY9lq
sx7m/jPdfj5wIFYz8iWnwBkl0iWIbJYKgoGARM1S0MCpo0hvBpfWSxig/1ojXKOTXfCOTmve8bn+
t/hzQnMytclJGUVnskJrAabOIbCR7AzQPGs1CdlagpZuOHgPa/S1Gaw6y4U2VnzcaOA6iTgDOzvS
4Mti+w8gNT9qYgNL67X+gA22mGEDgqohAobMidXgtQwr1DBuQPqr+k72o/cF3z9t5eadk+zEuEsd
IWbaPq7xP/n9qBGPVexkseTAeSnScEaoSECtLKA/762Ao05N0o5GY15Pwh5GP1/4ObzSamA79jDn
ctLq9zxfDXVxukN+4LRmlRtSGmUMKpFsOHg1zWD9ZQZ7EY46bHaKKb0d/d5Lcg6dDE9vWnU6znEu
TC/q3P7yuUabXTeDtoVGBY4wJ4cxG0G6oYzELADVCm2STFdHGRj7QpiBp63UYtpdbRZ8sfeS//2Z
H+FpLXdmkajN4Klclng1gzlgFNQQEBQgoQmcJvvXy537T1OuXOgw+U0rXceMF5OFrv91dPhHtevH
3VWbo1XoGt6jlFw5Hwn1LGIuVxGHPwI5DcBXvKHuqoXvzXXGM3XebLXrbciGbmroGLnZLxGAeuWo
A1iv3yFq4VoqzR0BSKvQy2bidVCEOunBySpjY77ay36JF3zsl9gIX+vSE+GZ2J+mkw/APLnzgYhc
YL+IzoCvhoy6M3jjx0kXs5Qy93sYjsONpJjCUMuwr31xDkHvyrRDXx5j1O7q5fgN0h+nhMKalbEQ
AYQIHLynBqBqucNUWxLevp3zOcpyqcI77uGznE4zXpbzcfMRXlTY3n+FDeB2aAcfvkEAlFTmiHgC
NuyKZACfUQBpnkcwCxZLLld1Ve2mONOOMTxsReernuircX7jiHEGDFNLZPh3ux/xp9ojyq21iYI/
BeYjJF7Pw4t6GtBdSUxH9UpP+BuBqeHZSNN1R1M9ZnejQiCbYfOA0lSqIU+rDAuMSAkRXJSMl4C0
AaNhQlOA+Iabq7bp9RLg2fKf5ZZ3FJkPRoYXF57uno9FVbbbmaypitki5Ad0LWxO6HAlKZxZKmXQ
gavRtaCTcVoB5suOAJtxU8PP748smc04r+12COhg3uQFV0SJCIhIo5NUBSsOsIwxgVNS/s1zSUdp
ztSu3veINag1RYBWiNXer85fjvVBZtFjea4p9q0RgA6gHdNAqKWjhCtpIEhbP5jAyUIfx2imFtZ1
pnZj8Pk/62f/gq0WqvZrq5py5CEkIx1wu8xACBUA6Gego95RIU1kQPOvOqi7wftLtnvYCr2eYjEr
+aH48F8fhrTMOM2bdEqRMkl4xMw/Vv2cAW7KNRxQVorRubxVmvdEgkZ2KWhH9gXrtAt8ed4Ofdhs
CFYDxbIU0AtEU5YKMknA/Nb7TJSJEKhkUUyGa4N/neB8+K+PG+FVpxUeDlBP+G4vphjSjVj/cRyO
i9MOdJCsECBBjkSg6EYmgGyevhpvL7dk+tE7N63EHefmLL2Qg5t9uj2tHtLqsetX9DWJGRUTIGVu
CuatHUGnT7ROFmmYsldc27zayRwlOcPTbrtOxlnWU1qMlL57+Lq9fzrg6QOJSd4nIC2CeIZ9M3jj
M4DFkJRZ8kVrKelV4KGO/6qOp1KcyWScvDHSswMPnTtQng/b+/X80d99XYOIRxfB7dBvEWPwHlyY
cxDEAF7bHB2hOgWmsgYbM/9PaZqOmK2arhMf3eR2p89wXC2riRr8WpMFoQgnFbgQINUEuTUcVwkR
BJBF1IGVoMzbHVefz/DV3Oqz6eizoOO+udX66ffnh+9PJ0HfDQ2M+BWbqHJmTEhOVIhYHvWGWAa2
mLy0ITMTXHTXnNM0TLRXE18407c+ffGm1aGnGGfTxAEWROaw7Y+d8h73nuciHd4Mx4BfNLGBQsCN
0USIX8oUcWUO4TDN2TzC4Y1WkU4zu13sPrVi+g8E3gH5xjvOtY1ds2yoiECw4JwNt7oU+BKjUmKg
GgTm2KeAzZitOJ0yr12YQwfA066KyY6MtK4mQmxgpEF5BXgp5AxMSAHh4y4CVjQgm5ZeOTlq8mpH
ayUx844k63Hi8ePHeHtIOnJTBSnAvMD2NFAZLDwLCYA5O0mkEsCZc3HRXFWAwLHPJLPgSSvtugM2
F5vVKMs/fzreVtfoNQqEbx9VIFSBdQmlM7EWoDWnXvOIV3HzxXvqhwFbaTYdwlSL9WZcN34BQIX/
4vWu0ttjZPIRK2CZEk+zwE9ryXjJGXxaDiZlVYTmV12uHc9xvhh8+lajzWrZMZHVcty5P7mvOiQm
sNel3obErwiTwEQ4B/oXa6eHMACtgUgR1MhZlUUWV+Wku9NdeZN2koZYdS4U2dVmXOgH2F5uazNo
7ctGcghuCqhYAfk5dlYyvIwe8T63M94ywzTV4mLYqWOeZQmlPeab9RQGOKrGcOcWguzyW/2YGrys
TXeXtuuHcVBgGiExEh1ebTZglp7TTCRe2JYpWefd24XJgyDnbrnsHt80+tipDwRcsJ7GluGDeAYc
LuQuIQRkTSWlAQNkw5EPGcAAIQCwSznzRE0o6jWOfEbiuHvWiLtki464/yHuyprcuJH0u37JvkCB
+3jEqVDseEe2PJ552ygeLXHdh1at1o796ycTRRYLVWA3Y9zhdYTdNKsCyASBRJ5fcr74TY7Rv7eI
tnJ4/HbYPjZlI/WMVL86C4Ix+IEMyCa0PwWxYAIhD3DVO+pBJb/S/sQPHzvTLfZY+1rD276TEOdq
od3oMEFY69vvoKSc4oJVE9NB2KwZgfOM1fMCbGkewSQKKsM36K9bJIO0w8wpGGinzn2gO7uIKZ9W
93RLs1oCW5FIGFWRIcKH4bAdIljGXkYwLTPjGqFnwKK/ImrbI223thsHxpfJ5PH24WmXHraPJ/Eu
OBsdS95yzrhDBBKPsVttSAhckxiV8ZHZJNN1ZeGnGS7YjKfHDfWsc0cNnC2zpd9vmyReU812/FOT
9kQqWQSilcTUfqHB9oWTxkHxUYmCZXad63U+x4W6lG0/g3eABexwIZd6aG3Y9u3haft5FehATUCO
daH4t9YACldQF9WgugBbRWChPicUdNUSigTT96oAyzOTNrrM8rWWwWHTYXBExFsik/8H4zWSEpwS
tIDShb40wYwkNQc4pMiUUxRuJbpKxurpgIPolMANwvCLNVjv/1pFMn9LR3lGQVU+6vrURaoYgh5Q
hLQpEVZVJ4wcJqEK2Gj2BTdVHftS2dJCKA9SrSNSg9zvVj6d24evH3+736Jx4o7XuqsXpWOKRg6X
B88YO1cUa0KzJyaI4pQrVLr86q7WiZ5L3p/j45bXfecky5upVGCLHZCnSgxEOpEgiMHywosRzUkd
OAGTQRAaJdiZmkmf+tAZs6EaElTHPQFfqhMJt6BfHmZgV3hNBCW99B7MlYzly9ow2BpFEV+KYSzS
HFxut+l8lMX0ujf9MLlO35dFQNh6gXguniis7oV9blHRZqTYgJhkCk65fKWA8DT5guTOudZm8vYW
sFY/DF8fwaCdwhFyvDZ0LFJIz4ljiFohDVwbCRRqYE1Rm5OnKv15cAkNr0uqG5a17UgTI+niTG6G
7a9PX1rlSB+Bh3S1L60WTlP0GAjMvkP4F1cMJdQJL5KW1CR5jYAOi5nmbI3PGvpNJ6F5MHqdTIRV
SmNg4ejxGAWKhz2VsyYwCKa4Bax6l4V4r6QIAbTS6+CSzuM/ByWyDC8AoaJDvVlW9NV9HYcv357Q
eBtF4igQTQlaJdBEFYblhQLJYcFGJsbzlJNzoLO+SpHUnIJnysuPb7Q8Gt3jcRmoRHyyqSkNtpy8
2983bmHvlGcqggkROKZso4O4gI3HEtjeIoXiGX+W1dXol+yfxWsLboYON1vXqZjfIvAQWHijoS3r
hZsY58KbRCTDwLjODstBC1EqUsG0iTr6F+NC8Zl6+fiXltxOaSJ8uT/ZCvHdP7DJ+1s/Va5Yi0V4
VREuIRZcaq4rWmAGjaWAImk9BcKTFfHl2uB3X4cvny/aOY2YWpDSsGE7mTqDFbYPLfb42/23z/sm
yR7DieLtiJFSP9REvGhKsooUFiiqZJHY6irkXBkaA/DvXl1kj26Pj2sK176R6aVmKVwHLWBwcqVE
lWez+AqzVGFtQFIxwmHCsmQhHaGSJ2Vhl9pA/2gW33wrlCveX7zUci076tT2XBR4t98OsyCL1rrG
HyhsU59VBnmoEF/AazDrciY8WAUqJCgXjSdxOVBDwo51rJqdMMtQ3uen+9p/Zlyz6murSImi2jHc
JQnajUIcWswoiZrYEXw16GLAJMjmKk/CYpoLK9q+1LKjOvtopyftcHv3ZfKv42mROkfhnCEpKIQK
8CgOwK4EYaDgsvQJrPiFATON0E6sN72Jp4T0dBg+3T+g2+OH/eMjwpG3tXXwK9Ri2myzBONWIaQz
rCMm3ClHVEDHZVIUbsaWnOfHXZC465A4LDNC/OHrh9vhtyklcFHq4o3B2x2UZ8z7FzRb+KlhGyIe
gDLJyGiv+qnbaS6EUpp3Gmb2rKMh7e1Swzvbiyi3/34oB8yJqq4ROsaemePaRZZIDhzUc4yvWAF2
uEkpoQPcJZ+uzQfA8S8H0/Fpy0Mnojzc0CX07fa8R6TECoGKxAxGI5ix6O8yWHHnGQmeciKLAVtH
OgSkfxaSsLNBbmhHHNX0xPFa/bw/3O2GWzI83p+DQs6eKsFN4gFUlkwwyQq0TrBlveOZgJWQi0tC
MrOwstYDzunZ0I4WvGGbYYkK/f1mlisxbldr3VteTRhOmeCZGqJ9QWAci+l7YMIorZ1OmNxkXrgP
f3kpU2L+xpuW1rVQ2HA2Faj+/L4srUVZfPKYBCQlOuoUbEwvRCEcLEinpMzqBaf59dbiefY3LX2m
Q7SgC9sDdcHHCm9/DCfpmtLBEPATTe5iHKcmkAhmC0gynYgt+AOkFHOMLrvMX0OFx8v144mMywrk
9ErLqmA9VlkXdvzp/vDt8W1F//7b/RjvYNXzBH/QQ6mEUNJxYjJC8jMwFwNGBaR3EUwxEN72BSfO
aeQLm+z0eMEB73EwLETI7v7xcXf2nGuMKyPRLkflCxCdKHa0ANueOB40ScJg1q7VKtrnpMhs3Ias
Yb+2jjYbtvSVpkPt2gML0SQhVkDTsdZcc7ifMwtEeQRw4Iqj56aQyLODfyL33L9eDGlNzyWoveV7
b1pGOz/Kxuwv+jLr7fAX/1+nogcFd5MYcwTBKHGGgQ475ppwRDBRGoEdWS4KTpGK4sUFwLGfuZfg
aUu/uenQv1nerQjxCErtfle9/h9Bux1LSSfb1iWjC8heBCjwcPJDxBzcQrI1mH8sdShX4WB1J+rz
0321YW43dMTbbnDLysFjvsI690HgsiN2czRw3wrmI4L4R0JVUZE5pa14NsrTjLwgbeiRtllkFmyw
U9yEUqyRJqeZSox6UiLi3IQsiffMExaAoORjZv5ZgOL5kA1JNddhQdKWoStHtFnEE/AzBt8rehGs
WPW9Mga/dU5EZcPQFyUJbFq4jk2xMjIGCvirwBxOJFzKHO4AQwMnusOem5X35HeLC9prjQmKmgS4
xeCCzqgJe8xaBHtbuKCoNa9W33OavSW6k7m25fYMsX93y8+wF1y/rTBSmLgFMp1YRxFtEsi2VklQ
zhgrCswgqZYNJ2bDNPPzTqR2K7bytGiH7cP99xnuxph+RXWivBAbsHGIBQlmsZgLsfxUkDREHdvp
m1HetFOtCzm2GitXm/qVd/uH+a1ShRI15i0d7RgeQrFBwgogNJ+QghMbrSQ6ae8plZGLqxLCZtP0
f9LZC29aim2HjR1dYpveDt9uHr5OrZ/02PMiC0mNI8kwkEFJawJaBigbzGoOimOk8lk4oHbQlqzd
WifaGrrE/fwxgVCkrBpSY6lY4j5RQYIVeCww9o0Kd5CeWljonF4ooPx33E4/Xqhv/bEpbAXqdz2W
poytX/e/3X2agh98PC5WKgT3SRnNqxgRbwlLDkViknMTc+oDh83HWhCx7xDB9Mm42j58+e3mcDtL
urfHNCYaQXsU6OSpKkDGILED4R6j5VFwDyuuL4CYzYdsqeko+Vuzm8JY3384PG7bEmwOWohBLcym
GICMYGFJ8PIT0QlheaDe/1kl2GfqWq5uOpIJfsjTGoOhNjb3ma1xZU1KluAyIskWYC0h1GtKhjgm
MwW7VVjL/6CN2Aj2lo6GhaFTIghfTjfSr/88lwjOu+AkailLGKnzUsCG9eiB86B6KZ+sCoEz19cA
zgO2dGxkh47dMsX/3f5+P+JND7eTBnj0GFE3eqRdKTYhIiNXuLpUGrgxA0LTMLCZXIDLKF4naVdz
XZK4qxdb3nZrPWu7ocNCqXn38eMirGYK3GMcbfNYsLsUnACrBSky5yBcDOmFhkkw4gWKPzbJd9ut
7QiL7U7OQ7Y/7T8dHr99/a0J2lbsd9jMNtY4O4gLqSKoKhLoNUbFSHXUhv8/xmxbshuudz2htHP0
BAuBbTS2Ddgj3NEnhDxlDGw02PEyOcRJSZJUOCfNLMhrzVm6YMouR21Jcp3bcLddhvl+2t+B3fHL
Yf9/Z5VjPAXOVbhUrzmW6gSa3JgnGAyLiKEeVJEpKnWVrrGe5tKiL99rmdoOPaYmp0HjMMEipjNC
yejcARWJc6YT8Slw7MkD5kYSlBTQ8ajlDhTKRZnihSEXZK29ZduKBtUcyzPAUHXBVF+uhg+uOmHQ
Y+g9SRFRsIvBchtQSmgt69bRjdhu/z560fn5m5bKbY/0/SpZdovdS/8+Nn/uVCmAFsy4BrUJTGME
T+WOYHMQYgJI8cRMzvKqwH070UXc99k7C3bWDoAd3S97box+sW9Hs6veaLP+P3PnmNLGlljz8hFV
qqhCgodjymgOYHpo7px52Tn2rIE3f+NNS/daquyYWuWU17njw/3N4dPT16mwmMnRrQkf0PZPpSRT
MAsGUTaKjJjS7EgELTc5V7Qyz3tjOrNcqixevdhwVdusrbhaGUEIw7Hbf6uxx8ft2KRzDH84fVQv
s/JMGp+JrskWSTCMJlKSRAHVEp327Ko9h60z0mmqyydo9VrLVsco2rEd7aDoTCKwfMzfEc0YTXRW
kwBraPL0ufamKcYlgcidGOUDfZVYadBMMU56bLioXrG+8ETPhRePTxu2Oe2wzTk/3fe3v98Nb9WU
zYBhK7C1sjWKeBMx/oN6OYPtKCKH/RngS7PIfJ6P0U7O1+k6O7nCz4nlmMCNXX8ojITYCMdP6BeR
pvbSJSCC4Wi4RMFQ4IYobzIH7c+lF9LcpvEvxdGPjxvapXQd2tVkx/x+zlhVI3pgNNFgx1IZat13
9UhINK1cESkz7xd137/30lVhivVdtQPTeZm6ceytAUs2OnYNFQzjZWhjlgCSvxRMyxLYwLmm3xdL
ePIWjWnPXqiwP3XueL6vR0O360Q8dhUr6Qj7+ssPHz/cPn063C/aOk814AUsvWKjJIwnbInoQQvI
sKCgyvtIrc9g8b8S+muflgU/ux4/N8sQaiNwp/xUd4qmqlqREjNJGAIBdQI7FFMsztXcgGRHB8bz
Dd5W47dkSt4hUy4z4n4Y7j99ffjeONE1Ng7lMmEzCWzlpMA2ldrCjvUsUxaioVdZT6exL2SGH5+2
VDvZodoNC6r/8SEeZeNJ6a1+Ui+9EiBpWcEWVFKDqILLBA4ek8GpFKm6ChLzPHqf8vPzlvZOmRV8
uTmXk9wBu3OHi6jOfQnGMqjkRMcM8iFqDlIMe8saTA7T2aoLnf6W4zXEDB1wV/jS9IBG0Uvy+HjY
HG6PGGsVjolViC8vMg2aGMRgEtZkEjjWf/lUQlKG86JfbuXZjP8Mumjz3oIb1+NmuS2+fD3MkxHf
fsD/rxlbVemtcQuBlmk2hRgLlpvAuIBFpQrWK5tcknixo9d1wYEPLS1txOjQJkPuhk4YBr6c8qXv
hu3nyQK1FVUUlPYISlMCgYGADNTCtWIt2Hsu+RxhG4nQd9HNxmpp2HTu5P2WTkX4/oOP/7movi+O
U+YzaKdwy2CX1ACWP1wozrAMZzkXE9mfVX0/o+9NywPrMWYn5PV38YePvcRNmVXh2IkpBXQwU8dJ
CBZUOpZAe/OgDzH/uombM0IWLHT2/41cojF92H9FF/twv93PEZtP8lFmJ2QGPVtFxDFOSsLW91h2
D3eo1i4Zo64Kjq6nubDR1y++aTlY+5z2TFqpx6v0YfM/2/MPo6Wp3YVdxuao6GHCOITMxGoXCNbT
YxtSZswirDMfZT79frBrm3M/oKelMWjSfvP0aYRdwuVkagRGwYuyUGE0S8RgGaCIFhRQPAeg0UXm
E6h9VF8HXHCe4RJiwfmNhodtp5EUfnkRp2vyYMy+OlbsFRac9poRkyWWVgVMBMKOh6BPF1aYzkX+
ocN8fr7gQfd4MKdeueOEb8M5LFrxP3mGfYuHEt0/oKZoQYKuJTaypKAp2FsLVP12oIaGHk4efDmV
Gf3v0/B1uP92uD/3IdUnW8/4AsdTMsINaEk138tx5UmyoO0zq4WW/TL75aALilyHIjE1jPhw/2mJ
Aym5lFjPpWsHLWkwXMIwsT8pnjFPNr1WItc0eUuyHDok792erwE3MdLcKJ2g9qaUHPEWk5kcrCQY
Kx5+Us8dmCuOOX814mYNY1+G3MTHc8Jv+Ga9A/HLFbrQ9mFAd4at6am45GCAwE2QR71NgHJEvIOd
oBJ2+qFWlZf6xuGQlxJl4FFL5nbXIRP+PWqYWG9+AH17CoQLeoLziExSo0UhSmJ0USCGvcAe7YoF
GZQTNC/aZy0GawiRdK2m30ix7Nt7d6YDG92j1pIZ90Eq7A2vUV/A8mCuSQFzwxX0VV+AFm9HbInp
iMAbqaac1p/ef+iWZfis4Dr0mFBRc0cNlqJ7YrRSzGXrXXjV231GRkt+px0Ofjk5YmpPmbNLYWqD
JItlCL9FEgczUlABa2ldIpIXkeD2CXCSums5H3FByk2HFMM7WGGzVn7nM2xxUkReyAGR7qkBQciY
IzSI5Izg0amXM8deaOLXvNJSP6z1vBu1cpD87f0c52ymHWkdUvEWqMXrxAeKJcbYx8sYMKa54/oq
ATQf/wKk9Pt+8u6N7oBu3uhVcujPMTadl6MH2Z4x5ZXC0ZZSgrmOMN5RKrgO4EzJqwoGYdg+vfCg
JbOTAXqjh6Wv/uSJumlg5cZ+tGC9VNMXIcjgyob/wn7xueJYRAKGcFZK6iRcucod9dKKr99rGeok
6N3oDV2i6D98O9zMgp/YJX4EtWBw18LaF1gYjOV7YhWNoDelIoRVYEW4Z0EYZuO2dG06O9pg1GwF
m/vz/p/fsEmaHGuzxg+om2TFOWL+WERKB5sQyBIecXID2PQCtJb8spTDwS+fRnz6pqVw0yN7Bb7w
149PX28G9OE4U0Me+Aclc2YsYtMpWfOkaBEYWIb/jZYJRo0Tjr1QTH8c+VJB/fHxguqO8DO7Zbs0
jGicoMxOW6FWnbNgogKVS3ks+GYRNQGNKZtwzQoaqBP2eX/ectwZdQ6YXmkojtoVHu/UJXQSEAoD
qJKOcqLAviygV6GjqWADipQd4SFI7SQVOZXrepS+0KG0IdyuG8xje+xlLAzZfzqcirzEEeXZZZpd
1J5oi60LMV/GY3mh06A0JJAaV8KwV2jM98/AZr5vaHbrFFSEtL/pLDa2n58LY6G9dyUpwrUFipkE
QxU7bYnipbY2WR2uphjHfr7xfUv1drumerNh5yTJJ1zlsy6kBAP1sHaI9MZHhO6nmNvnmQBxAZTz
oDRoh9Twkpapks1YDR3btTMLvjzTAQv45QBm4H+fXf3VERqKLRGkKsmIZQ9iVBMXHNzCnAqXucWA
7qXOme2ADTl72SFnL6fc1S/D3Sx1tUIiW6qEs4k47zDdulgE3VaYhcasDaDa/6u3I9tRHAe+5yv8
MhJIGxQ7iZ0g8eAcsAykWUF6ZvcpSpPQjYZjRIJG8/dTlRCOQKBbM1o/tBq7UlW+y3YdvGZVdIaj
RntxgzavGzmP0t1LuttmlaFYsXALrvmai17u0LOP0NBVKTSJw23mwcnQ9Z37i2CF9PYIqkov2RXs
mt2FVvfsNkdF92/LvHT+U/pEsfQOLxfx6t/idMR9w2GuClIq+hAEoRBVgtU+p56O7mYs9iBA44HA
Hdc/l75RgN3rp0XIvLIlQq19OF+tnP1igXoRtLAAsToHj70Gs31HQ88LGrpHQeUBWzpqXzBL2FQI
GB7vNSM4UWm2HzjBXNbl+ukMM49PZ9MYVtvNPK0bdFkaHF8EU/tmH+P3wnbv4O0IsxwJq74DA9r/
Q/cAlxzUmDduMB/XHUr8XRrkXaq9WR7lXLh91QNBRtXRlk6alq/izR/GnJS2+a5wCQfkTVFpi8JL
puNbo2ehveeh4aAfVAZnN8xSNoQN1maGMFTYCNH3MxpNGn2ugnDLTd2H6nnmH1eNO7Jz5/2hpgdh
U5Zc9xc1TjF5nbGc1W7/DRsmAzo/kzZ0js7w+cH3hAp7tjChqxhM9P/p9v/EnXLJ/3V/0vmc31Du
qI7yhWGhVj4ZnW4LfCYtk0lYu4SHhkVMwooAm5NLqWlorovOlH/ztuAc4qISpeZNrRKJfjyeXIX1
MktDLpjqGrVdqVIb9RO5hIUYdhOVGrCvMwonk7rOXHP0LiAoxA0uhN0gFBU31uPt62vN9acNe4Ip
YIP3Jfpr5tyHxcmAXV5y08do1FzSjwhI53TuC0vnkIriQ1V3G1h4gm2yXFRxHWb79RrodaHmbrxa
ZWQdJyl5+Um2+RtsE993W3yiTDOSx7vXtLBDzd+WWVXQLVosj7Nv0WK7i74vky6hZd7bLo2TaA5/
87RLtPPMLM0jdJx4yL8k/Ai99nvo4cdZraAFCnr4RrjcpLfogRxmf7BKypeAoA7ueftOAWqyWf0k
qGWBJdsFOapidEm4zeNVz0Dj84DAwWiZpJu8pxswsIOWsD61SfYDlQiTaLvPI+BtvynCTQPFpGfb
CMXYp7byFU798csqBRxI/4iZdvQB+QGFMN57lHV40KKA9EiJmlXWGZ2eNmppkHVOCxG1bBtIEWXq
D4aTJxL+949PGtKX4TR8lmOld0pNoIdixR0QdBqFQy3L8ZB4C5hago8QdFkE17yXjqDZW7xLk/KL
rAEWQb2DQ2eY5PhWsS9mSv0DA0SnQPk8I5+HIXktteEB+Xyb1LlhJm8GbZWH4DRpI6jgiLX6sCoi
MJziJIGfGQHO8P7grEfaCoi2m3RFJOaQCQgnDQ1hjZRAjscT925zEUZ5Rw8q0FacrJebdiO0zkbK
LJTuiAye5dRrRlu2wiyHriUPEoUNKYBJFBUsyNC/Ayo6NFC+pi8olQdFozSCcgSNIk+G8hEDdsdE
0GEgB/4DWJNBu0bRePg08j3o4OZ2ZbRjIdbQ/zd80AUMZyiAPj8N3Yl3nwUQO0bKupi0BJVjmiGF
1RGBcpgG63SN7n2akzH6yKwNJ6Eck4c927EHJehfBIbVPrsY5OXgPoLSAawxyi9QSwMEFAACAAgA
spvzSC4+KtMbQQAANuUAACIAHABEdW1wUmVuZGVyVHJlZS03NDExNS1jcmFzaC1sb2cudHh0VVQJ
AAMQ4o5XEOKOV3V4CwABBPUBAAAEFAAAANxcbXObyJb+vPwKPtzKlZNg03TTgMrrlIRQxhm/lWUn
UzOVohpobK4l0ABy7P31e5pGEkKSYyapvbPXMxXL0H3Oc176vDSNrvIs5EXRVzd/RovZ/JqnEc9v
cs7VPyyCkPlVuWLlfXso/Bx9zqaLGS+OPl+e3Z57R2+PNucrpxFPyyROeN7fz0X5zPMiydI2gw8f
PihuFnH15nnON2/+ZlONErV3wcrkkR8AvhwYqVctoa6ey/ssBSkwceyvyjUv5llaJMF0g1xxr/5h
EPpVuS14rp6O2jhMHSnKiJX86CaZtYAYOqKabmnIUZHTN6w+sg4d01Dhmq4rlxN1l2znLFTh1m8q
0g/hf1PtITJGtm4fAMR5lpdbsxBSBmmWPs+yRaHe3jYwjjCiyBzqmmUOHA2NqKtRihzNpdbQGo+s
wdAcKYoikKuDb+yBq5MkDbk6zLKyr1JT13W14GGWRoWiuDkr7nmk3tznnEUrHjqwSYo5K8N79c8F
X4AOwmx2yObzKT+csSTVymqConhPIZ+XgHzTZt5vrj8cjPyB63qTidqbnH6ceB8/HzTGC0OvDPer
d33hn158HpydwqTR6FrMYqWqP+n1TxCwKOA8VpTP5+o1vwMShXrBWQ5jlvf6iqadqIog6Ps33m83
W/5bE0O6YTMEH7T1BYcEQjV/qCq19V+/qrn2dJR/e1In5//tXn7Z4fqg40oJoK1ajf3+K9UG+m3c
+cQe2STMk3npZjmXQP9rJTnScRTFJLDULzfjipH6TsWOgrrRIE6oO0T9NHH7/U+nN+ewvk/d4+Wf
gyj6yFOeszLLT/r9OEnZNPkffppOk5QLS/WqkXJWPRIsMClhkQCKtCjfvJe0z5L0YbiIY56/OQCg
4OSK0Q2pFVGbWCuk/T6fJeVkmn3zs7nPokhCOQWe+SIUKN7WrMUYlxXcS8v8+e2bg37/H77e72dz
KVfvoLeNsMIucGJTwZ1xWnYsrAKs7yEeRTeseBgv0hCYHT9mSaRuM3z/s+QCK+WLtLdL58RSSDdR
nAiLGNYi1u+D5uIsn42lO1Qm71VWRUQxO7OwsbXNYulqwsm+JBC9FyWsIVYUfBZMnytu4Oy0o2lC
h5KooWpw44eKlomoqVgdoWMLxeGK2pcsf5gmRdnvX01Zupagom/Yit2VOuXBfupAaZ5M+UX2Tdpa
6Gk4zcKHt4KdRRWnKzuTxHwHu5rRGazofBcr4hAF6d14xYZp1rzOzk5T4PKvBAZXjAZpNOHlL3yR
A/skLNo8a+f3nnhYhZkKBNYNBaFuILjNHaxOwQVKf5rBWsuKXPgwxQoyOsoTWjSuSXGxGoXFLWpC
NMYdKZkO4erjrFrTN9l6ghASg6ZJx1jEecBWVhVahPgCqluUdej+fL7UKNRMZeay6XScs5lUq4Fs
BZndOFKTRLFaxyzwmXnOS7GgN7gCrzvg4lXXGJRh22ZdRsTJZfAvHpbS17CJFEQ7AdIj0KguifFH
Nl2wJYgtXpNskYdVxNnMXZ8mn2Eefy9j+gXUTtFVmR/XROrC5UTGWMhryOoKkKJ6NczzLIY1EHkv
A72qhiXp3TVnRZb+PPhiLdtN9F94sIatbqNnIQtDEqj1OMHsHAoaWQGtcP/7BbNMkXR3QDu879vo
QIGyvZvUzLHstdRLA8OqzabTyt1rQU9TCKXTqNcaukOk1YjR5fmXHIDwvJravLWSasRLlkwLGfwg
XPXaCA7D+bwPsexAMfSuojEneo1oXWTaCZyifbgtB3CjbrgDhiFftjB5Uz7jIsHU4Ude/S7yymWI
vYRXU6mwYUPo1OiIzdEjvBcbhMg51IlLbMKZb/hTeZUVSdUSbWmzNf+M37HwWTRak8VctI1VLWZh
tAs/NLiAH3fB7zDTiHFDt7/cnJ9JyteLNBU+ATVnW7U107f18twhUeW8ontv05OK1k0ASroCjQh7
CegyDVWYrqCevOaxCBpt2Ccvw0bY3gMbWdC9G2Yn2I4VRxChNmCPsnAhgFyxvNjQcDHO8iu2KKCv
yDkfLpJpBJVZBYqaWKLanCztjoTf0q64eExfxjVfzOY32QNPodTNz6CO6r04fPKchvd5lmaL4hzW
23s1yLJpw7WvgNyEF2LT440sQch+kTABkayOIvEYRx1E6iROVQIQcz9i2wDEdlfEAeYdEJ/G4LDV
5lZn7Mjar21ERVB2umG3dU7wy9hFpksjuSCXi7HqncscCoHT2Xx68qZyBdve793YgaiGO2U6B9sB
RY1VN+IhqCEasZLtxjh8Lnmx1uly0Jc8gQoX4nMI3b6MERD0FmmR3KU8UqdZelevTrW3l0clhamD
EJ3SnkOC0OYNDW+CAuRRxaz3HWyOwLYxVfprhcjohshyDJ1vIzrLWCQQAalZUr4GFIE029ucXqFy
DAtQtVPYr0kpE+EOVAjZIaVBpGp/wMiqwRF2rBoU6NIPVH+Nqv9VhB0dFLIcejib9ZGOINhg0omp
o1PEdMlUOO41h1RfgDDVloma85Anj9Ib+t+S8l58kLVIBQJBpOjtnFohEnUrNrtpgUGnzCSgNbOW
KjZgCRyOXsFYTxDsDQLpGdNu7CMLh5a61Ks0qTtNqipGWqDkkbjc2+M+b1urDDruylV0vDZXk6w0
nS682OroxQEEr+95cQV1FyBDt3e6rl1pze4KhetsP5QI7HJd22ytN5eF9zy65kVlsT16o/qeFWaK
cNop1tuxBbEeqW0A7NsSQ7+fZmUSP0vLFMKdvrBihXx3MFgaWPQKWxRlXkJQcBG9K9ZIJy9irQOn
3I9sNAzVjm5zJ9uh+5BZ4HakWxcTMxo6caPSXwR5TXJl7iSqdSbwXeY1wrZ56/q1Xd428UNefV9F
2+qfZgcKhK/Y8xQ4iq5Cbh470E200cjci6GyJEZXOaPIeKWcSxvU8vy4MLaxVxYR5Qnu1t0ZFiaN
7uj6u4K0R/7C0qjaA3uFiPWCsMDrrrfxUxPiC+nUNAUG10M9lklBjNxENShGfAohXT7QSXn1CKLl
hIM8Z89VqsB1IH6JThWTRYdPNpKXO77g5bcsf9jGacVxbEcGpzaKVN+npvbHxeT2+sxdAVqmL9UX
eXR9fZBGS7b9LJ0+D0LxnLj/1Q/EZrKfpI9QNYtA6CiEdkUDcNQfRiKSBTYUYnXlbtrW97hLHrsx
fK12KxVid+KLI8Z5oPottqNtd+j57nhjDLi3D9eqm6tAVT0Ok3/IhakQp6siOMNA2f/9wrA2GMo8
47tT6PKT0HD8qJbd3+G93mPbJRAxFVPvph0nIK8Cg+zKPktjDApoxbyrX8NbhCWKeZYIS44frxBt
K/LqV4xblyR1d5GL0w/+53P25G2I4xtyc9dE3ZSLHc5D9XqRigck1fMXsVPHn6BcW1Ku2PQadpRG
lY+hDMXcyAsiLIyzRRrJAniLo20GJqVErd1kAJOeqyenYjSsUlsxcVcJIhbtlqB+iim3TjBWTNKV
NJSI6vliWiYw4Ynndem+QRg6fsU0uxJ2AraLsL+kvKFh2k3D3GE6qpbi9e3F2eXllX868d3B2dnp
xUf/8vbGv7n0B/7k8vba9XT/yrseX16f++PbC/fm9PLC96ttAsW0unGNgsCOJNdFKraJRpmUqtCF
liD+mnZXiiiImxThl/ByA8A5HUmxILLVJqHJnIdJnIQCm0MVqlenkNT9P82MatihYdqhqlePrLBl
6RTbugIlbDciekijFRHqOA5xFGp0JYJio0HEMiiIg7uKw8OoIY5tCSSkExEHheIsQU3E1i3TsQEJ
LI1pEkTP0+gQ/kmCfUQqS1kxwmboqEXJ8up0xuqsDXrxjI3gUN/UZixldzyvztrA9eK5KPnMf4Cs
yaebEJqcDTO0IE2rD/wRIiyILnrO6qxNg/YOCTb8LIBgQLnqL8f7s7vcl0d/xBEEYyWN0e8OjzqE
wWoQgeXPanzOy0WebgCtqc0lzw1yTWqmYWAcRVLN/rc/VxARXkHEf3+I5O8P0fz7Q6R/BSKxBcSC
z76xpPRFKw8laRNg+O7dIdq94pu0mBGjyLABYATZz4dVXt4nRb1m+v1iyvnch4zYWw+QW9rQdS3k
WbTjRk+4HlXdO0bT9ypaniTUpyfqSfP5n9n1hBqnThhQWdN+D/FrYAlAPyhZSyZkQTmCu0pFA4TV
YMamUD7VIjRgLdIEAq4vSqvj1SDxbD0JzxdQaZ28acL7q0LUu9RdT7CJJg1Ha/DCH2/TMpmO2bTg
/+dSyMddb+TD765H5UAWizlrWX7hbA7mCBmkpDv+b7GIhbsewQMhMLPbQoCHhrJ5mSzFkdu6pOuh
PE4Dk6E1/aq1EgcwjzdY1p1nr4Xj7UHv4EQsWbFa62pQIjGo2fUEH6fMdMyfAqU6DnYlesLej5Cr
D3V1PRvIaWgGhmzrGi7h11HNn+fZ0/NxI+ItgGx90hX4/hji9z+kwLcihK66JSLOs+kdMyTVTUhm
9UA/yKLnKkGi6sBhJ0pmHFlrSqsi1qLVgcOOaZtHapvQOmlb/Wb529qskduF3bM6IhFXZ0zUrcWd
X+ZsvqvmeAUhnZJ4RUhUvu1M+5rmjwek2fxNeP6YhPwcqF5llToM1E51ryGLrWC7p0TYQq3M8xOa
ys3w//1tASMkBrRP7S2/nrRn9eBuvR8sWMo9PkxaMboNu82JxAbnjgFquJhIf/J98ZaCbP0xkQel
f84astWftoYc9eeuIRvW0KfTG3V5FLr6wPP6nZi/UBQjTEGncxHE7v3wUZQif60mDgxopZsZPEuj
6oCS/8jyRBynlYXOnpJgfXUmq4H65YCu1S6YNQjU+iBV/pCkd2eZ2FaDz+4SEUTkZ3GEY3ODUJ7v
CLM5j87YLIjYsSiLVIjX67NuW0NkkG8M2S5hymTG5dbp8fZNsBOLnv1Q6OBH659GwyArU4Q6vyeC
Y0d3+Lb+xOdrXiym5St0KxVXjVtdH7KCNypdeZrmDKQ+6a0+/o3U1+//c1pZ+J+9A1kf/4fIo4NA
Jzscv8L75j9O1Dd/syVp0K7NIo7tGEqc//92qQ6F2137SxCf20QW0/vE3y358o0+2vmdI8tgO945
yhf1MX3Ze5mk+6tZVBRf25Qbf/R2vAi4fvHPIH/hha0Aygb/94tJicFChu0vn5EJlfpym87/Jo/2
nz561PdDiOGnn65/v8AAFaEGOhd5jx4GfJ7nPY7mlzei+ILSy+kOioQbTVtcP09bfj5+jZaajld1
WUJhr5p5smzPRDe7oWpxVLbrq2PEwhhKyTWYpTTHe5is7Em7viDGTaSbdX7e6sJXLSUy7a6vi3HT
CHQkCX8r45u9tA1bvkD2k9pV8vPaVfPnltq6GtYvnIun4uKl/rrKVuWbxD1KtCApD/qKqubsqb/j
/W+4EaxuCLZmhM0QW+BeebhvRrRxA35ibFNdMImSxh2EDJ3rVBe0in03gnmbu02dasbOG+Jt9Nxu
sa8GiRvOekqAxTti4geuI317hl3dQLtmCEmQsYMJEjfwhiTM4jYQEzeIuAFY4+YUccPcccMQTJJ5
k9bqzXQ1j6ct7kg3dLFccmOXTYCWcpbdJRAXVffqVn4NAFW8PM/y6psB6i8GWM2kyo3Yh7hYzILl
V0sgoijKMElZ/qyeztgdL/rK9gv/qlaL0vxR37W+9qL34cOHA/V4iIwhtUxXQ97I0DAeYM02TVuz
dNtGxDJMCw9Pvv8lGEveT6AEhkXWBhSti3Fsqe9gHdVnqG54UU7uk1m9uHo6oBnrrjMeY1fDBh1q
eEAszR4AONdyB6Ph0CQI2bvQ7KPawmVu4woMUmmnRUG+bNSEhgbu2HVsRzPGeACKwrpm6wOqjXSP
jNBg7CILvQJak/AGutAJt9ARg4VCa/tDcI/q+B1Mgl/QYKN3AHSAR9ZoZIwAmQWKtI2B5ni6p7km
sgeGMxIq3gV0k/JhLM4bi02bo/qLOoqjQWtMEz9FZrCF39IdJ453nGbfhdu1TMc0LaQZdOxp2B25
oGBCNdse6sQbjsmI7LS9pLgbr7zXxGlHiG/hDJGBWnpeHi3cAdQaeeOhYVkaGZiwZAybag7WTc0e
u+AJeAyOivcA3a/Z+mYDKkIW31pICAUmOGyw92z6LrzIwNREVKMeNTWMyFCz0dDVHDQw4T+h5BcU
K+m+pF45QpEIRSKgyHEazrC6GCHHgNwkTkSoPWziQ+OQCHy67WHb9DRTdynoE0KQY0MMIIbnWEPP
I5hQwLcocrGYjsT0BjMb8pTRZiYuit/NXA7JuSyWKxpRfIj1QwPYU3dEDGogzcUWsAee2sAdeZo+
dOyROXYo8gYN9pLa0U66LVj2NiyEnQrW2npsESVZtec6EJ/UHjnEh2Ja9Rvw2R4deBAPNWeMYV0g
29CGI8fTxqOxScFxkWd4gG8icZ0lQQ7p4Wi8tFdxtKK924ir28omULYDPVkp9Ynlqx29nmGawo7u
iDoQpDWwGkRIG7KIPbCHImDiMTIcj3pWQ5GbRDaYE7ZDdSRAS+Yfx7/Jw8Mrc4KrH1IRRIYGGZqj
geYOkQUJRB9qDvGQBo5ujwYjF4+HoxeVdTnn6cez3ZqSwxNYI9sYNvBXobCN3wyjlkdu7Kz2/pe3
K2uOI8fR7/oV8+iICVbzPh55bnvDXntb7X6v065oteTR0TOeXz8Asy5mskoVvYp90pEpEiAJ4PsA
sMSN5TNFZwLPpIyylJKI1bDxwkRDgrSUSCaL4rE4CNaXzuTpyK1ky3VHss1idCjxTPy2Xa3hOLKZ
hdeZVDOGUdCmQE2mJDhuMEpT4rmQRAtdONgLc8y8ehjryOcPY33cSD3AspHUFdaYup5AlA6r6EBK
pY0uJsMpYKmAlK6QAICKJB4F5TyYZGh3+Q4DnU4vKNOT6QWQnYMtfD9Mr5SbSVqXSkXLHSBC4jQH
uzVSEhsUfv5SEjZGa7OVXSEOw7VCiE1HCDveuSUsYOWwWAN5x6TVM2ZwAyFAzzi6WwsbHkTmJFMl
wN9RRsC/MGKckFKAsInqV7fww26K87u4f6NVwi6nSiizHCnxcb3azn99eLhbPPwLTyD+BVOagwLo
EY3SORU4hBr9oJDgEX2W+CMHX2kANhV2UYPT8fsanL5x0wq76mjg7EgDbO9d//bZHyZFNeRMoSL4
FZE3B8QowcZFwfOhkyXO6UxyNBLPrwOvOdXi8+P2T+CNJ8rsp+orsn/aKuFcT4nNSImn7+v18tvs
cb18+Hq/bbcbjvqMzhyMUb+iPoEnYAuFUA9HShgwOs8xEESpZE7gkNnlXYnzx8W5E3Xy2m2V6pee
UKd/MXmtXYH51EMLR8fWVF3R+YMYckg5WEE0s+BnbMgkGG+IytTpILlNxV9U+XT8vhqnbzQagKPt
aMBtxdvHSID+4PnugHuE2rsnpiBMUg98BkG2EHAGQwHolYwzAGxZMYJdCjHNwKeSSSqmRi6pXowQ
NjqJXWn76XC34x3nbGZmHP569x0usxNJGqMIkw4YjXaWBHChxEVFtYFnSsVrLKU343kHNn6z0ZHp
qQVJ5cbg7s8tjjgrc/wIDmQTCMo1/JnY4xURLBceIhXXaDRJQKD3QHiVi9kxCCGSXaPafoYz1rN7
etNKO++psJ5AgT/+eLj/PAc88YQmwKv8DoUHGAJxzBeSXERKDMHNlyCJYkx4F4x1Xr2FxZ+KcG6/
jm80Si46eEcuVnKExJ4fYYX2NmLAvAcbgWNbFIR/EpQCBakBFw20gJQM2Ax4g5HsIjU4GbaVaqWm
Ui2lHhE79N3bIYruD+PM/3oLp0jjHwujZkNAtxAMAyPg1sA86nfUJ6BTWmPahAotL25Db57X9gTk
OBNwfr29adUyHV0x2Ey8QXpZP6f5GncSP7BriXXznc9FU8mu+ADHi0WFQdMBtA/BEhXBDUSRVRbs
Wi8wnem8H5i+2+qnOma0XnX1mz/PkaswjJpcV6SvPAc4DbFfZVVtKIBvK5oAsmbRBAdAwL+KxnDg
CwrA00bk9bon8noc/tP26Xf/uNg+P+7Q5GD6vDoumkqRCfaA+wgoMiArVVHB8SsyA8niKbiLco9G
74s/eqnVYjMN4YpzNtLipCXona6AhTGFZiNdzhq5oSuIg1UCHCwtIzyXDFzMBa4um81x5J7w8eT5
TSsi78m9GLmktvTwjtFD5PZgCYAvDCDFRIHdKATwORCpWRZRI0c0l7xSM/JItGVPtPXoLD+tly+P
2+cf37Z/e+eqfSrwZ7qCCuA2jjngPA7oYRaehAgOU2bBDQuRR5PfBAPuJPj5/Rnwd3je6qemHEoJ
N6YfNbX+/tMp2BW7pAyDeIyIJIYQtfbgY7mF0+8VuFxrSHTZwBPhtQoX9ZxMcSr97mEjutiwjug7
CnwU/eH7+v7r3T4hUg/7DmmAPRZuADoVwQo6mgyxDOCfc0CKvTc5evuXMyPDs0ZgSTvmKZ0crfX2
/vfTdWYDp8BPdMLMF+VOC0oYBGEAR0KChQJYZSC9KDQbH98EX7w/laHZiPvfG520kFOd4JdjyFSn
BWWUrHzBgC4uFMW04YRpKyF6pUy8AshXAOl5bsERFfuXdRmejURVHVGVHol6GG5grJZyiE64CwIl
p4LOzA6oUs8MkA4ItzYA5waQERJm55OW0gdlUqZXs9U6zQW+Wp+36ijTUWczxtvhDoL1w8PztyGN
qndpVL3B4wSY3VAwAxIgRhHhwF6DAecZrcH5aHaKXjbaT4fxz5yX4wuN9E5PUahyi8WoNoLBuiYe
3n/CPP4AfaTRtTKmaNHRaOIUHB1hBcRbDU6fcml1yNrI/HrWZjf4eaiwe6EVftnxPHPKD8nYD18m
aVgJ3lEZl4jXGKI8RARraSaZA4bLHhhcNm+Uht3PftOKJ3oyH2Lsx3qn8Zi/RjwQgVFzlFmIyGGF
PYD9kBIBai8Ch+UdUscn6etmlNH8nUA6d6pHgX/8sXjYw+9KEDGewokcqhMl+QL4XhOTGBLEEPHQ
WiIDoP0CccYEfzX3PZ3qAvE9fa1Vy00ToWrF5EitX+b/jDD243y2eMHPx0DgRWVVDAIQJvCctZ6r
AuBROyIYg1jEHSZPaGJagp8pHeh1Ssp/Gs/xU737fv/89NPH+fLT7fF5o8BqtZgqsGGHTO7TP+62
z2txrBLZIQERAyvGZALGBp4jRwhELCnCPCAxL6nxXLRHoxnopp2tg0E2fL4XYVmpbHz88f35YS8H
rLpmWK9C7JEBmxppEynOA8aKpQBjYAaieSpC2sDAj3Xh33TkVjDeWxs+zgd8W999R1omaoiQNTZ4
qSQDnxpzAQaggIXaAiADDF2lyAIEzfIWcfpnmLr/Ej5plemUr9RG8xHI3t5vDossj6l7npmOMgji
BVY5nILVjZIRJiECMmecZ/kSwj4O2wqlZU8o2ckdj+g4SIdVGInGo0IxjtFAoqjYs1gSvCyw+IpD
HJYxU/Y2dL/z4kifDsbYWLYvy+xWY7i7dKiQiP1BTslbxwFNxEgT8hgFkMICCS7ZU2d5sI5eWuXT
cU/l0kpNw63WWDFq3NSH+cv98ttxiQHIzBRChuEbPAfU+xBYJE5ABBNZQkCDgEsUCzQlVWIS4dWg
e3VKpZXnTOxr3rlpFRQdrd16vxvxl3L7Ak7pkArGoAfozUoeMjGA5ohIFHSFXxCWOOXFRO4Vaz1b
O0wrwYp3JFgdynSLf3OIlvQgQF3iVKwoENVUpHCaHfJxCV4kAiZWAg56UKUVoBmlmd90ziP80u2N
vhYXP+4+PW+f7HODxVOWi04FCJ2BdYjBgO1jRtbZWMD+PX8lh3Y1YJkKMdJh3tFhofdruHz5/jTj
B59FhwCVrU+AUxzRLEusvQA6t5KCNsCXbATTUrpdxdNxWgE208y2XsrlZtkYz5+VpP7tna0g1dZO
BSEC0F8sJfIEHEFoCZEJoiY4Ko6eVNpX+JpfLtd32OG6ftVYhvn7rw3PbloFVh2tlD2C2AmGFTaI
AjGWKK0Bw1JLiUvBEhZ9ptnGBDDlrTBsZx+WqrcPvWBxO79f1fqUrHvBhZ3twGPIxQdTgCowC/4L
jAkgLQfkUIrImQdjgr6StO0mORsods8bFdaq4w/Wepyh+zC//+rv53c/nra1wmCGTAt+RQ/FIK4Z
ONUR6bJQvICDgIAMO6Aoh1PlRHzz7PapSOcc8fGNRumNmuY99MYcqMfy73+fL7aH08ZVzeB7sBBa
iDXYAUUp7FgJnvhIC7fUBluTqafmezJKO/16yjwMY+MUXiV6u4+mv61tnJjerceHqRmzVSjDNVea
eAP4XAjgQ17pSHzwnFqnWHT8msMznepCyb1576bRQU7Bk5FMdDj0zjVhFqNW2innEFK8xi4Vj50Y
gQQJmjCRqdbAzg2/7Jf+92X++PzvC/W1NuJfcE2Hx41ucuE6ui1cpyvnBK5gkVSjmUftAEoBGQhK
aMzNFOKdKOCpmKGZR52U/T/ClNM3WtE3vW3ZuGNrzj+396uT8rOofslkxTzFFAZsiFcS8HX04F+R
6lrhddJn+nOOo43EmIZNo+S45jx0Q5x2ZWD3gmC7NgZRC+MmAoURlgD6CZh1VED2gAtkK63JOcGR
sdf3ZVxsy2i6MoxSi44OajnuY1wvt/fbA4CptqosSz6BA9FBC+ybBk6gBXh7ZjywBQc2e7mH8XTM
kVCbjlBajTD+/XDBe/0v4OC15H1g0AZJVd10ryCiAm+xwgCpCtQT67MgsgBS4Sy5JC+Sqv4UrbAL
0xF2aQ4A9OmPE/gpa7O05xm9Gg/YGzs02gnwvKw4rjOc0RBG8PM4RjO3odPciLFstVkPc/+Zbj8f
OBCrGfmSU+CMEukSRDZLBcFAQKJmKWjg1FGkN4NL6yUM0H+tEa7RyS54R6c17/hc/1v8OaE5mdrk
pIyiM1mhtQBT5xDYSHYGaJ61moRsLUFLNxy8hzX62gxWneVCGys+bjRwnUScgZ0dafBlsf0HkJof
NbGBpfVaf8AGW8ywAUHVEAFD5sRq8FqGFWoYNyD9VX0n+9H7gu+ftnLzzkl2Qoz8GULMtH1c4//f
+1EjHqvYyWLJgfNSpOGMUJGAWllAf95bAUedmqQdjca8noQ9jH6+8HN4pdXAduxhzuWk1e95vhrq
4nSH/MBpzSo3pDTKGFQi2XDwaprB+ssM9iIcddjsFFN6O/q9l+QcOhme3rTqdJzjXJhe1Ln95XON
NrtuBm0LjQocYU4OYzaCdEMZiVkAqhXaJJmujjIw9oUwA09bqcW0u9os+GLvJf/7Mz/C01ruzCJR
m8FTuSzxagZzwCioISAoQEITOE32r5c79x+mXLnQYfKbVrqOGS8mC13/V+jw72XXj7urNker0DW8
Rym5cj4S6lnEXK4iDn8EchqAr3hD3VUL35vrjGfqvNlq19uQDd3U0DFys18iAPXKUQewXr9D1MK1
VJo7ApBWoZfNxOugCHXSg5NVxsZ8tZf9Ei/42C+xEb7WpSfCM7E/TSeff3ly5wMRucB+EZ0BXw0Z
dWfwxo+TLmYpZe73MByHG0kxhaGWYV/74hyC3pVph748xqjd1cvxG6Q/TgmFNStjIQIIETh4Tw1A
1XKHqbYkvH0753OU5VKFd9zDZzmdZrws5+PmI7yosL3/ChvA7dAOPnyDACipzBHxBGzYFckAPqMA
0jyPYBYsllyu6qraTXGmHWN42IrOVz3RV+P8xhHjDBimlsjw73Y/4k+1R5RbaxMFfwrMR0i8nocX
9TSgu5KYjuqVnvA3AlPDs5Gm646meszuRoVANsPmAaWpVEOeVhkWGJESIrgoGS8BaQNGw4SmAPEN
N1dt0+slwLPlP8st7ygyH4wMLy483T0fi6pstzNZUxWzRcgP6FrYnNDhSlI4s1TKoANXo2tBJ+O0
AsyXHQE246aGn98fWTKbcV7b7RDQwbzJC66IEhEQkUYnqQpWHGAZYwKnpPyb55KO0pypXb3vEWtQ
a4oArRCrvV+dvxzrg8yix/JcU+xbIwAdQDumgVBLRwlX0kCQtn4wgZOFPo7RTC2s60ztxuDzf9bP
/gVbLVTt11Y15chDSEY64HaZgRAqANDPQEe9w084iAxo/lUHdTd4f8l2D1uh11MsZiU/FB/+68OQ
lhmneZNOKVImCY+Y+ceqnzPATbmGA8pKMTqXt0rznkjQyC4F7ci+YJ12gS/P26EPmw3BaqBYlgJ6
gWjKUkEmCZjfep+JMhEClSyKyXBt8K8TnA//9XEjvOq0wsMB6gnf7cUUQ7oR6z+Ow3Fx2oEOkhUC
JMiRCBTdyASQzdNX4+3llkw/euemlbjj3JylF3Jws0+3p9VDWj12/Yq+JjGjYgKkzE3BvLUj6PSJ
1skiDVP2imubVzuZoyRneNpt18k4y3pKi5HSdw9ft/dPBzx9IDHJ+wSkRRDPsG8Gb3wGsBiSMku+
aC0lvQo81PFf1fFUijOZjJM3Rnp24KFzB8rzYXu/nj/6u69rEPHoIrgd+i1iDN6DC3MOghjAa5uj
I1SnwFTWYGPm/ylN0xGzVdN14qOb3O70GY6rZTVRg19rsiAU4aQCFwKkmiC3huMqIYIAsog6sBKU
ebvj6vMZvppbfTYdfRZ03De3Wj/9/vzw/ekk6LuhgRG/YhNVzowJyYkKEcuj3hDLwBaTlzZkZoKL
7ppzmoaJ9mriC2f61qcv3rQ69BSbfAgBwA0siMxh2x875T3uPc9FOrwZjgG/aGIDhYAbo4kQv5Qp
4socwmGas3mEwxutIp1mdruQywP7a/9/wDsg33jHubaxa5YNFREIFpyz4VaXAl9iVEoMVIPAHPsU
sBmzFadT5rULc+gAeNpVMdmRkdbVRIgNjDQorwAvhZyBCSkgfNxFwIoGZNPSKydHTV7taK0kZt6R
ZD1OPH78GG8PSUduqiAFmBfYngYqg4VnIQEwZyeJVAI4cy4umqsKEDj2mWQWPGmlXXfA5mKzGmX5
50/H2+oavUaB8O2jCoQqsC6hdCbWArTm1Gse8SpuvnhP/TBgK82mQ5hqsd6M68YvAKjwP7zeVXp7
jEw+YgUsU+JpFvhpLRkvOYNPy8GkrIrQ/KrLteM5zheDT99qtFktOyayWo479yf3VYfEBPa61NuQ
+BVhEpgI50D/Yu30EAagNRApgho5q7LI4qqcdHe6K2/STtIQq86FIrvajAv9ANvLbW0GrX3ZSA7B
TQEVKyA/x85KhpfRI97ndsZbZpimWlwMO3XMsyyhtMd8s57CAEfVGO7cQpBdfqsfU4OXtenu0nb9
MA4KTCMkRqLDq80GzNJzmonEC9syJeu8e7sweRDk3C2X3eObRh879YGAC9bT2DJ8EM+Aw4XcJYSA
rKmkNGCAbDjyIQMYIAQAdilnnqgJRb3Gkc9IHHfPGnGXbNERl/PRnuyqfzP8tJXt0/N/iLuyJjdu
JP2uX7IvUOA+HnEqFDPekS2PZ942ipfMdatbq1Z7x/71m4kii4UqsJsx7vA6wm6aVQFkgkAizy+P
28embKSekepXZ0EwBj+QAdmE9qcgFkwg5AGuekc9qOQ32p/44WNnusUea19reNt3EuJcLbQbHSaI
an33Kygp57hg1cR0EDZrRuA8Y/W8AFuaRzCJgsrwDfrrFskg7TBzCgbaqXMf6M4uYsrn1T3f0qyW
wFYkEkZVZIjwYThshwiWsZcRTMvMuEboGbDob4ja9kjbre3GgfFlMnm8e3japYft41m8C85Gx5K3
nDPuEIHEY+xWGxIC1yRGZXxkNsl0W1n4eYYrNuP5cUM969xRA2fLbOn32yaJ11SzHf/UpD2RShaB
aCUxtV9osH3hpHFQfFSiYJnd5nqdz3GlLmXbz+AdYAE7XMilHlr7tX17eNr+vAp0oCYgx7pQ/Ftr
AIUrqItqUF2ArSKwUJ8TCrpqCUWC6XtTgOWZSRtdZvlay+Cw6TA4IuItgcn/g/EaSQlOCVpA6UJf
mmBGkpoDHFJkyikKtxJdJWP1dMBBdErgBmH41Rqs93+rIpm/paM8o6Aqn3R96iJVDEEPKELalAir
qhNGDpNQBWw0+4Kbqo59rWxpIZQHqdYRqUHudyufzt3D14+/3W/ROHGna93Vi9IxRSOHy4NnjJ0r
ijWh2RMTRHHKFSpdfnVX60TPNe/P6XHL675zkuVhKhXYYgPkqRIDkU4kCGKwvPBiRHNSB07AZBCE
Rgl2pmbSpz50xmyohgTVcU/Al+pMwh3ol8cZ2BVeE0FJL70HcyVj+bI2DLZGUcSXYhiLNAeX2206
H2Uxve5NP0yu0/dlERC2XiCeiycKq3thn1tUtBkpNiAmmYJTLl8pIDxNviC5c661mby9BazVD8PX
RzBop3CEHK8NHYsU0nPiGKJWSAPXRgKFGlhT1ObkqUp/HlxCw+uS6oZlbTvSxEi6OJObYfvL05dW
OdIn4CFd7UurhdMUPQYCs+8Q/sUVQwl1woukJTVJ3iKgw2KmOVvjs4Z+00loHoxeJxNhldIYWDh5
PEaB4mFP5awJDIIpbgGr3mUh3ispQgCt9Da4pMv4z0GJLMMLQKjoUG+WFX11X8fhy7cnNN5GkTgK
RFOCVgk0UYVheaFAcliwkYnxPOXkHOisr1IkNafgmfLy0xstj0b3eFwGKhGfbOpJgx0nP+/vG7ew
d8ozFcGECBxTttFBXMDGYwlsb5FC8Yw/y+pq9Gv2z+K1BTdDh5ut61TMbxF4CCy80dCW9cJNjHPh
TSKSYWBcZ4floIUoFalg2kQd/YtxofhMvXz8a0tupzQRvtyfbYX47p/Y4/2tnypXrMUivKoIlxAL
LjXXFS0wg8ZSQJG0ngLhyYr4cm3wu6/Dl5+v2jmNmFqQ0rBhO5k6gxW2Dy32+Nv9t5/3TZI9hhPF
2xEjpX6oiXjRlGQVKSxQVMkisdVVyLkyNAbg3726yB7dHh/XFK59I9NLzVK4DlrA4ORKiSrPZvEV
ZqnC2oCkYoTDhGXJQjpCJU/Kwi61gf7RLL75Vig3vL94qeVadtSp7aUo8PN+O8yCLFrrGn+gsE19
VhnkoUJ8Aa/BrMuZ8GAVqJCgXDSexOVADQk71rFqdsIsQ3k/P93X9jPjmlVfW0VKFNWO4S5J0G4U
4tBiRknUxI7gq0EXAyZBNjd5EhbTXFnR9qWWHdXZRzs9aYfbz18m/zqeFqlzFM4ZkoJCqACP4gDs
ShAGCi5Ln8CKXxgw0wjtxHrTm3hKSE/H4dP9A7o9vts/PiIceVtbB79CLabNNkswbhVCOsM6YsKd
ckQFdFwmReFmbMl5ftwFibsOicMyI8Qfv364G36bUgIXpS7eGLzdQXnGvH9Bs4WfGrYh4gEok4yM
9qafup3mSiileadhZs86GtLeLjW8i72Icvsfx3LEnKjqGqFj7Jk5rl1kieTAQT3H+IoVYIeblBI6
wF3y6dZ8ABz/ejAdn7Y8dCLKw4EuoW+3lz0iJVYIVCRmMBrBjEV/l8GKO89I8JQTWQzYOtIhIP2z
kISdDXKgHXFU0xPHa/Xn/fHzbrgjw+P9JSjk7LkS3CQeQGXJBJOsQOsEW9Y7nglYCbm4JCQzCytr
PeCcng3taMEbthmWqNC/Hma5EuN2tda95dWE4ZQJnqkh2hcExrGYvgcmjNLa6YTJTeaF+/CnlzIl
5m+8aWldC4UNZ1OB6o/vy9JalMUnj0lAUqKjTsHG9EIUwsGCdErKrF5wmt9uLV5mf9PSZzpEC7qw
PVAXfKzw9qdwkq4pHQwBP9HkLsZxagKJYLaAJNOJ2II/QEoxx+iyy/w1VHi8XD+eybiuQE6vtKwK
1mOVdWHHn+6P3x7fVvTvv9+P8Q5WPU/wBz2USgglHScmIyQ/A3MxYFRAehfBFAPhbV9w4pxHvrLJ
zo8XHPAeB8NChOzuHx93F8+5xrgyEu1yVL4A0YliRwuw7YnjQZMkDGbtWq2ifU6KzMZtyBr2a+to
s2FLX2k61qY9sBBNEmIFNB1rzTWH+zmzQJRHAAeuOHpuCok8O/gncs/968WQ1vRcg9pbvvemZbTz
o2zM/qovs94Of/X/eS56UHA3iTFHEIwSZxjosGOuCUcEE6UR2JHlouAUqSheXAAc+5l7CZ629JtD
h/7N8m5FiEdQave76vX/CNrtWEo62bYuGV1A9iJAgYeTHyLm4BaSrcH8Y6lDuQkHqztRn5/uqw1z
u6Ej3naDW1YOnvIV1rkPApcdsZujgftWMB8RxD8SqoqKzCltxbNRnmbkBWlDj7TNIrNgg43iJpRi
jTQ5zVRi1JMSEecmZEm8Z56wAAQlHzPzzwIUz4dsSKq5DguStgxdOaLNIp6AnzH4XtGLYMWq75Ux
+K1zIiobhr4oSWDTwnVsipWRMVDAXwXmcCLhWuZwBxgaONEd9tysvCe/W1zQXmtMUNQkwC0GF3RG
Tdhj1iLY28IFRa15tfqe8+wt0Z3MtS23F4j9z3f8AnvB9dsKI4WJWyDTiXUU0SaBbGuVBOWMsaLA
DJJq2XBiNkwzP+9EardiK8+Ldtw+3P86w90Y06+oTpQXYgM2DrEgwSwWcyGWnwqShqhjO30zypt2
qnUhx1Zj5WpTv/Ju/zC/VapQosa8paMdw0MoNkhYAYTmE1JwYqOVRCftPaUycnFTQthsmv5POnvh
TUux7bCxo0ts07vh2+Hh69T6SY89L7KQ1DiSDAMZlLQmoGWAssGs5qA4RiqfhQNqB23J2q11oq2h
S9zP7xMIRcqqITWWiiXuExUkWIHHAmPfqHAH6amFhc7phQLKf8ft9P2V+tbvm8JWoH7XY2nK2Ppl
/9vnT1Pwg4/HxUqF4D4po3kVI+ItYcmhSExybmJOfeCw+VgLIvYdIpg+G1fbhy+/HY53s6R7e0pj
ohG0R4FOnqoCZAwSOxDuMVoeBfew4voKiNl8yJaajpK/NbspjPXrd8fHbVuCzUELMaiF2RQDkBEs
LAlefiI6ISwP1Ps/qwT7Ql3L1aEjmeCHPK8xGGpjc5/ZGlfWpGQJLiOSbAHWEkK9pmSIYzJTsFuF
tfwP2oiNYG/paFgYOiWC8OV0I/3yr0uJ4LwLTqKWsoSROi8FbFiPHjgPqpfyyaoQOHN9DeAyYEvH
Rnbo2C1T/N/t7/cj3vRwN2mAJ48RdaNH2pViEyIycoWrS6WBGzMgNA0Dm8kFuIzibZJ2Ndc1ibt6
seVtt9azths6LJSadx8/LsJqpsA9xtE2jwW7S8EJsFqQInMOwsWQXmiYBCNeofhjk3y33dqOsNju
5Dxk+8P+0/Hx29ffmqBtxX6HzWxjjbODuJAqgqoigV5jVIxUR234/2PMtiW74XrXE0o7R8+wENhG
Y9uAPcIdfUbIU8bARoMdL5NDnJQkSYVz0syCvNacpSum7HLUliTXuQ1322WY74f9Z7A7fjru//ei
coynwLkKl+o1x1KdQJMb8wSDYREx1IMqMkWlbtI11tNcW/Tley1T26HH1OQ0aBwmWMR0QSgZnTug
InHOdCI+BY49ecDcSIKSAjoetdyBQrkoU7wy5IKstbdsW9GgmmN5ARiqLpjqy9XwwVUnDHoMvScp
Igp2MVhuA0oJrWXdOroR2+3fRy+6PH/TUrntkb5fJctusXvpP8bez50qBdCCGdegNoFpjOCp3BFs
DkJMACmemMlZ3hS4bye6ivs+e2fBztoBsKP7Zc+N0S/27WR21Rtt1v9n7hxT2tgSa14+okoVVUjw
cEwZzQFMD82dMy87x5418OZvvGnpXkuVHVOrnPI6d3y4Pxw/PX2dCouZHN2a8AFt/1RKMgWzYBBl
o8iIKc2ORNByk3NFK/O8N6Yzy7XK4tWLDVe1zdqKq5URhDAcu/23Gnt83I5NOsfwh9Mn9TIrz6Tx
meiabJEEw2giJUkUUC3Rac9u2nPYOiOdp7p+glavtWx1jKId29EOis4kAsvH/CuiGaOJzmoSYA1N
nj/X3jTFuCQQuROjfKCvEisNminGSY8NF9Ur1hee6bny4ulpwzanHbY55+f7/u73z8NbNWUzYNgK
bK1sjSLeRIz/oF7OYDuKyGF/BvjSLDKf52O0k/N1us5OrvBzYjklcGPXHwojITbC6RP6RaSpvXQJ
iGA4Gi5RMBS4IcqbzEH7c+mFNLdp/Gtx9NPjhnYpXYd2Ndkxv18yVtWIHhhNNNixVIZa9109EhJN
K1dEysz7Rd337710VZhifVftwHRepm6cemvAko2OXUMFw3gZ2pglgOQvBdOyBDZwrun3xRKevEVj
2rMXKuzPnTue7+vR0O06EY9dxUo6wb7+9N3HD3dPn473i7bOUw14AUuv2CgJ4wlbInrQAjIsKKjy
PlLrM1j8r4T+2qdlwc+ux89hGUJtBO6Un+rO0VRVK1JiJglDIKBOYIdiisW5mhuQ7OjAeL7B22r8
lkzJO2TKZUbcd8P9p68PvzZOdI2NQ7lM2EwCWzkpsE2ltrBjPcuUhWjoTdbTeewrmeGnpy3VTnao
dsOC6n9+iCfZeFZ6q5/US68ESFpWsAWV1CCq4DKBg8dkcCpFqm6CxLyM3qf88rylvVNmBV9uLuUk
n4HducNFVOe+BGMZVHKiYwb5EDUHKYa9ZQ0mh+ls1ZVOf8vxGmKGDrgrfGl6QKPoJXl8PG6OdyeM
tQrHxCrElxeZBk0MYjAJazIJHOu/fCohKcN50S+38mzGfwZdtHlvwY3rcbPcFl++HufJiG8/4P/X
jK2q9Na4hUDLNJtCjAXLTWBcwKJSBeuVTS5JvNjR67bgwIeWljZidGyTIXdDJwwDX0750p+H7c+T
BWorqigo7RGUpgQCAwEZqIVrxVqw91zyOcI2EqHvopuN1dKw6dzJ+y2divD9Bx//sqi+L45T5jNo
p3DLYJfUAJY/XCjOsAxnORcT2Z9VfT+j703LA+sxZifk9Xfxu4+9xE2ZVeHYiSkFdDBTx0kIFlQ6
lkB786APMf+6iZszQhYsdPb/QS7RmD7sv6KLfbjf7ueIzWf5KLMTMoOerSLiGCclYet7LLuHO1Rr
l4xRNwVH19Nc2ejrF9+0HKx9TnsmrdTjVfqw+e/t5YfR0tTuwi5jc1T0MGEcQmZitQsE6+mxDSkz
ZhHWmY8yn34/2LXNuR/Q09IYNGm/efo0wi7hcjI1AqPgRVmoMJolYrAMUEQLCiieA9DoIvMJ1D6q
bwMuuMxwDbHg8kbDw7bTSAq/vIrTNXkwZl+dKvYKC057zYjJEkurAiYCYcdD0KcLK0znIv/QYb48
X/CgezyYc6/cccK34RIWrfifPMO+xUOJ7h9QU7QgQdcSG1lS0BTsrQWqfjtQQ0MPJw++nMqM/udp
+DrcfzveX/qQ6rOtZ3yB4ykZ4Qa0pJrv5bjyJFnQ9pnVQst+mf1y0AVFrkORmBpGfLj/tMSBlFxK
rOfStYOWNBguYZjYnxTPmCebXiuRa5q8JVkOHZL3bs/XgJsYaW6UTlB7U0qOeIvJTA5WEowVDz+p
5w7MFcecvxlxs4axr0Nu4uM54Qe+We9A/HKFLrR9GNCdYWt6Ki45GCBwE+RRbxOgHBHvYCeohJ1+
qFXlpb5xOOS1RBl41JK53XXIhH9PGibWmx9B354C4YKe4Twik9RoUYiSGF0UiGEvsEe7YkEG5QTN
i/ZZi8EaQiRdq+kHKZZ9ez9f6MBG96i1ZMZ9kAp7w2vUF7A8mGtSwNxwBX3VV6DF2xFbYjoi8CDV
lNP6w/sP3bIMnxVchx4TKmruqMFSdE+MVoq5bL0Lr3q7z8hoye+0w8EvJ0dM7SlzcSlMbZBksQzh
t0jiYEYKKmAtrUtE8iIS3D4BTlJ3LecjLkg5dEgxvIMVNmvldznDFidF5IUcEOmeGhCEjDlCg0jO
CB6dejlz7IUmfs0rLfXDWs87qJWD5O/v5zhnM+1I65CKt0AtXic+UCwxxj5exoAxzR3XNwmg+fhX
IKXf95N3D7oDunnQq+TQH2NsOi9HD7I9Y8orhaMtpQRzHWG8o1RwHcCZkjcVDMKwfXrhQUtmJwP0
oIelr/7siTo0sHJjP1qwXqrpixBkcGXDf2G/+FxxLCIBQzgrJXUSrtzkjnppxdfvtQx1EvQOekOX
KPoP346HWfATu8SPoBYM7lpY+wILg7F8T6yiEfSmVISwCqwI9ywIw2zclq5NZ0cbjJqtYHN/3P/r
GzZJk2Nt1vgBdZOsOEfMH4tI6WATAlnCI05uAJtegNaSX5ZyOPj104hP37QUbnpkr8AX/vbx6eth
QB+OMzXkgX9QMmfGIjadkjVPihaBgWX432iZYNQ44dgLxfSnka8V1J8eL6juCD+zW7ZLw4jGGcrs
vBVq1TkLJipQuZTHgm8WURPQmLIJ16yggTphn/fnLcedUeeA6ZWG4qhd4fFOXUInAaEwgCrpKCcK
7MsCehU6mgo2oEjZER6C1E5SkVO5rUfpCx1KG8LtusE8tsdexsKQ/afjuchLnFCeXabZRe2Jtti6
EPNlPJYXOg1KQwKpcSMMe4XGfP8MbOb7hma3TkFFSPtDZ7Gx/fxcGAvtvStJEa4tUMwkGKrYaUsU
L7W1yepwM8U49vON71uqt9s11ZsNuyRJPuEqX3QhJRioh7VDpDc+InQ/xdw+zwSIC6CcB6VBO6SG
l7RMlWzGaujYrp1Z8OWFDljAL0cwA//r4uqvjtBQbIkgVUlGLHsQo5q44OAW5lS4zC0GdK91zmwH
bMjZyw45eznlrn4ZPs9SVysksqVKOJuI8w7TrYtF0G2FWWjM2gCqvV5UFc3GWMx96Mytl0XOf/m/
3o5lR3EceM9X+DISSBsUmySOkTg4D1gG0qwgPbN7itIkdKPhMSJBo/n7qUoIkECgWzNaH1qNXXGV
n1W265HsX5L9Li0NxfKNm5uapzno5Q49+3ANXZVCl9imYC6cDB3Pvr8JlpXenkFlaZVczq7JXWp1
z24LVHT/tsoK5z+FTxSr2zGLTbz8Nz8dmZ5uM0cFKRV9CIJQiCrB6sCkbhfdzVjsQYDGI4I7rn+q
vlGA3OunRci8siVCrX04X63tw3KJehE0twCxOkePvToTnq2h5wUN3aOg8oCQtjrgzOKCcg7T471m
BGcszfYDZ5hqW66fzjDz9HQ2i2C33S6SukGXpcHxhTN1YAwwfi+wextvR5hlS9j1bZjQ3h+6B6hS
UCNev0F8VHco8XdhkFdVe7NcaprcGaguCDJqF23ppGF5Kt78YcxJKYx3hUs4Vt4UlTYvrBId3Zo9
S+09Dw1H/aAiOLtuFLIhMFjBdK6rwAjR9zMaTeoDUwXh1jS6HjTPNf64atyJnDvvDzU9CEFZfD1e
VD/H5LUncl67/dcFLAZ0fiYFDE6X4fOD53IVeDY3YKgYLPT/6fb/TJ1Spf96POliYd5Q7iiP8rlh
oVY8GZ1vCzwmLYNJ2Lu4i4ZFTMKOAMzJodTQNcdBZ8q/eVtwCVFpRKF5U2tE3D0dT67CehmFIRcs
dY0KR6pUoH6iKWEjBm6iUh34OqNwMqnrzDVH7wKEnN+ggosGoSi/sZ7sXl9rrj8F8ASDA4P3JPpr
Nk0PNicduLw0DQ+jUZuSfkRAusRzX1i6hFQUD5q638LG4+/i1bKM6zA/bDaArwctd6L1OiWbKE7I
y0+yy96ATXzf7/CJMklJFu1fk9wONXtbpWVBL++xLEq/hcvdPvy+inuEFnlv+ySKwwX8zZIe0S4z
0yQL0XHiMb+K+FH12u9VDz8uWgU9kOPDN8LVNrmFDxigJj6GU/niE9TBvezfGUBNt+ufBLUssGS3
JCdVjB4Jdlm07utofO4TOBit4mSb9bs6TGy/xa1PbZL+QCXCONwdshBoO2zzcNOAMe4LgVCMfWor
X+HUH72sE6gD8Z9qpp3ukPyAQpjvfco6lt+iUOkJEwMAqKKKp6+NWxpkXeLCiloCCFKIMvOGo+kT
Cf77xyMN6ctoFjzLidI/pybQY7HiDAk6jcKplmZ4SLwFzA1NGyPoKg+ueS9Ri5s5aPoW7ZO4+CJt
gEVQ9+jQGRY5vlUc8pVS/0AH0clXPs/J51FAXgtteKh8sYvr1FB2B7RVHIKTuI2gljABtPywLCIw
naI4hp8pAcrw/uBiRNoKiLbbZE0k5pApCCcNHWGNFV9OJlPnbncRRk2YCyVoK4o3q227EbrLxso8
kM6YDJ/lzG2u1sCmKfMMhpY8SBQYkg+LKMxJkIF3B5R3qK98TV5QKvfzTmkENRE0DF0ZyEcEiI6B
oCNfDr0HsAaDfg3Dyehp7LkwwM39CmvMwloD79/gwRAwhj0Qhs9PI2fq3icBxI6xsskXLUHlmGZI
bnW4rxyXwSbZoHuf5qSPP7Jqg2kgJ+ThyHbEsAD9i8C0OqSVSV5M7hOoNoQ9RvkFUEsDBBQAAgAI
ALKb80jH5rvNsUEAACTmAAAiABwARHVtcFJlbmRlclRyZWUtNzQ0MjgtY3Jhc2gtbG9nLnR4dFVU
CQADEOKOVxDijld1eAsAAQT1AQAABBQAAADcXOtzo7iy/3z5K/hwao4zMyQICQGu3FT5uZvZvCpO
ZrZ2a4sSIBLO2OAFnEnuX39bErYxxjNhZ+qevSf7iIOk7l8/1OqWhG/yLORF0dd3f8arxfKWpxHP
73LO9d8dQiz3D+2GlY/NrvBz8jGbrxa8OPl4fXF/OTl5e7I7XjuPeFomccLz/mEu2keeF0mWNhmY
2iiLuH73suS7Tb+61KBE712xMnniR4AuBzb6TUOkm5fyMUtBBkw8+od2y4tllhZJMN8hVzzqv1sE
2u8Lnuvn4yYK20SaNmYlP7lLFg0glomoYToG8nTk9S2nj51japk6PDNN7Xqmt0l2yUIdmn7VkXkM
/9p6D5Epck33CCAus7zcG4WQNkiz9GWRrQr9/r6GcYwRRfbQNBx74BloTEcGpcgzRtQZOtOxMxja
Y03TBHJ98IV95vosSUOuD7Os7OvUNk1TL3iYpVGhaaOcFY880u8ec86iDQ8T2CTFkpXho/7niq9A
B2G2OGbL5ZwfL1iSGqUcoGmT55AvS0C+a7PJryN/OBj7g9FoMpvpvdn5T7PJTx+Pav2FoTeG+2Vy
e+WfX30cXJzDoPH4VoxipW4+m9VPELAo4DzWtI+X+i1/ABKFfsVZDn3WbX3NMM50TRD0/bvJr3d7
3lsRQ6ZtMwwfjO0DSiKhmt91nbrmL3/oufF8kn951meX/z26/tTi+Jo2AH0kIZPizJY8BK8P9fM0
zvKFfNjXRreD2c/nVz/pd5PZXV+PWVGezNkLGPvkMYmWiRHPsyw3Uv4g/doI4a8oScH1jCc2X/HC
KDNDKLwUSs+zVQqtD0aU5DwUHAz+DHxLHh0/los5WF2aBexXGbbff6UhweK1lg/sic3CPFmWoyzn
SnX/tbEFMimLIhI4+qe7qWSkv9Oxp6FuNJDHTI/oH2ajfv/D+d0lxJvz0en6z0EU/cRTnrMyy8/6
/RiUMk/+h5+n8yTlwnd6sqcaVfUEhcxK0B2gSIvyzXtF+yJJPw9XcczzN0cAFKadZnVDSiLiEmeD
tN/ni6SczbMvfrb0QRUKyjnwzFfSLG8r1qLPiBV8kpb5y9s3R/3+P3yz38+WSq7eUW8focQucGJb
w51xOm4srAKsHyFCRnes+DxdpSEwO33KkkjfZ/j+R8kFVspXaa9N58TRSDdRaIQ822oasN8HzYnp
NVXuIE3ek1ZFRLM7s3Cxs89i7WrCyT4lsJ6sSphDrCj4Ipi/SG7g7LSjaUIHzFNTNbjxZ0nLRtTW
nI7QsY3icEPtU5Z/nidF2e/fzFm6lUDSt1zN7Uqd8OAwdaC0TOb8KvuibC30NJxn4ee3gp1DNa8r
O0xi3sKuYnQBMzpvY0U8oiGzG68YIn/F6+LiPAUu/0qgs2Q0SKMZL3/mqxzYJ2HR5Fk5/+SZhzLM
SBDYtDSEuoHglHtYn4MLlD7E/6WfFbnwYYo1ZHWUhzk0rkhxMRuFxR1qQzTGHSlhj3D9aSHn9F22
HSCExKBp0jEWhTxgG6sKLUJ8AdWtyip0f7xcaxSyuDIbsfl8mrOFUquFXA3Z3TiC30axXsUs8Jll
zksxoXe4Aq8H4DKRzxgkhvtmXUfE2XXwL1hcla/BjNMQ7QLIjiKHcFMR42I5Z2sQe7xm2SoPZcTZ
Xbs+zD6KNOC9iulXkM1FN2V+WhGpUqkzFWNhXUNOV4AUVbNhmWcxzIFo8nWgN7Ib5CC3nBVZ+uPg
i7ns1tF/4sEWtr6PPvIYDUmgV/0Es0tIaFQGtMH97xfMscWi2wLt+LHvoiMNColuUhPPcbdSrw0M
szabz6W7V4KepxBK51Gv0bVFpE2P8fXlpxyA8FwOrTdtpBpzyEXnhQp+EK56TQTH4XLZh1h2pFlm
V9GYF71GtC4ytQKn6BBuxwPcqBvugGBYLxuYJnO+4GKBqcKPevpN5NJliLuGV1GR2LAldGp1xIbN
CB/EBiFyCXniGptw5jv+XN5kRSKrmj1tNsZfQOESvojSb7ZaikJW5mIORm34oeQG/LgL/tAhYYxr
uv357vJCUb5dpanwCcg5m6qtmL6tpmeLRNJ5xX5Ck55StGkDUNIVaETY14CulyGJ6QbyyVsei6DR
hH32ddgIuwdgI8cF2HYn2NTxIohQO7DHWbgSQG5YXuxouJhm+Q1bFVBX5JwPV8k8gsxMgqI2Vqh2
Byu7I+G3tCsuHtOv41quFsu77DNPIdXNLyCP6n21++wlDR/zLM1WxSXMt/d6kGXzmmvfALkZL8Q2
zBuVgpDDImECIjkdRXJjHHUQqZM4MgUg9mHErgWI3a6IA8w7ID6PwWHldltn7Mg5rG1ERVD2OmJn
nOCvYxcrXRqpCbmejLJ2LnNIBM4Xy/nZG+kKrnvYu7EHUQ13WulC07Upqs26MQ9BDdGYlawd4/Cl
5MVWp+tOn/IEMlyIzyFU+ypGQNBbpUXykPJIn2fpQzU79d5BHlIK2wQhOi17IQqoy2sa3gUFyCPJ
rPcNbJ7AtjNU+atEZHVD5GDL5PuILjIWCURAapGUrwFFYJnt7Q6XqDzLAVTNJeyXpFQLYQsqROzQ
pkGkG79DT1ngCDvKAgWq9CPd36Lq/yHCjgkKWXc9Xiz6yEQQbDDpxJSaNmKmYioc95bDUl+AMGq3
MuchT56UN/S/JOWj+KByEQkCQaTotQ6ViETeiu1uWmCWaTEFaMusoYodWAKHZ0oY2wGCvUVgeca0
G/uI4tDR13pVJh3NE5nFKAuUPBKPewfc521jlkHFLV3FxFtz1ckq05nCi52OXmx7rvktL5ZQ2wBZ
ptvquq7UmtsVCjfZYSgR2OW2stlWbyMWPvLolhfSYgf0Rs0DM8wW4bRTrA9CCrEe6U0A7MsaQ7+f
ZmUSvyjLFMKdPrFig7w9GKwNLGqFPYpqXUKQcBGzK9bIJF/FWgVOtR9ZKxjkjm59J9ujh5A54Hak
WxUTMjP04lqmvwryiuTG3ElU6Uzgu84rhE3zVvlrM72t44d19b2MtvJ/9QoUCN+wlzlwFFWF2jz2
oJpoolFrL4bMklhd5Ywi65Vyrm1QyfP9wrjWQVlElCe4W3UHqTWpVUe33xSk2fNnlkZyD+wVIlYT
wgGvu93HT22IL6RT0RTFEQvNWC0KoucuqkEx5nNxMiZr41SdeDWccJDn7EUuFbgKxF+jI2OyqPDJ
zuI1ml7x8kuWf97H6cRx7EYWpy6KdN+ntvH71ez+9mK0AbRevnRfrKPb54M0WrPtZ+n8ZRCKE77+
H34gNpP9JH2CrFkEQk8jtCsagKN/NxKxWGBLI05X7rbrfIu74tGO4Q+5W6kRtxNfHDHOA91vsB3v
u0PPH013+oB7+/BMNm4ClTwOU3+oiakRr6siOMNA2f/tynJ2GKp1xh/NocpPQsvzo0p2v8V7J09N
l4B0RbPNbtrxAvIqMMiV9lkbY1BAKTa5+SW8R1ihWGaJsOT06QbRpiJvfsG48UhRH61ycR/D/3jJ
nic74viW2ty1UTflYo/zUL9dpeKARJ6/iJ06/gzp2pqyZNOr2VEZVR1DWZq9sy6IsDAV5+cqAd7j
6NqBTSnRKzcRR/sv8uRU9IZZ6mo27ipBxKJ2CapTTLV1grFmk66kA8/VL1fzMoEBzzyvUvcdwlDx
a7bdlbAXsDbC/pryjoZpNw1zj5lITsXb+6uL6+sb/3zmjwYXF+dXP/nX93f+3bU/8GfX97ejienf
TG6n17eX/vT+anR3fn3l+3KbQLOdblyjIHAjxXWVim2icaakKkyhJYi/ttuVIgriOkX4JbzcAnBe
R1IsiFy9TmhzkQSweVSj5t4NrcbPzpGOHRLbDfV8ld7xouwVZQS281G/HzCY/H4hdzZORcb2Xt82
ir/9MmdJWci2s3ojm4PviusKqkk/q21GUsu2NEiQu0G0QhqtIQKcGc+fqg08uS8LE4JaXUmi2NKj
nRE9mYrWklN1kGebGsVddcrDqDFCHOi0c0CWrUEg6cKBIi5uO4gLOUIBRKMwb+dJEL3Mo2P4XxLo
B8ZLN3JihO3QA5uxXF4d2VwEQl+9ACQ4VI3GgqXsgefyIhA8L16Kki/8z7Ck8/kuhDpnyw4dyCH0
z/wJwj9ILQpieRGoRrtFgp1JEECkolz31/39xQN4oxLgnQ4OtpbG6neHRz3CYKqKqPen7J/zcpWn
O0ArakvFc4dcnZptWRhHkVKz/+XPDUSENxDx3x8i+ftDtPubj/SvoCWuQFvwxRcIab6o5yEvrWMN
3707Ru0zq06LWTGKLLcWDMvHpKh8s98v5pwvfVgWe/VQKva1ofRaqQtpp7XCcNtLtp2i+XsdrS84
mvPd0OrYXa+pBdQJA6oS228hfg0sAeg7JWvIhBzISXBXqUiAsB4s5DpUiVCDtUoTCGy+yK9ON53E
AXsSXq4g3Tp7s7vS/TUhqq3qrtfYALyLoy144Y/3aZnMp2xe8P9zKdSZl1q5Udf7ciCLw7ytLD9z
tgRzhAxC/wP/t1jEwV3v4YEQmLlNIcBDQ1XBzNbiqL1d0vVmXkA9m6EtfVlfiVuYpzssq/Kz18Dx
9qh3dCamrJitVUqokFjU7nqNL6Cu7dk/BIq8E3YjCsPe95CrbnZ1vSAYUGYHlqrtai7hV1HNX+bZ
88tpLeKtgGx13RX4fh/i99+lwLcihG5KJiIutZkdF0tq2rCYVR39IIte5FqJ5K3DTpTsOHK2lDbJ
okPlrcOOKziP9Cah7frt9OtpZmPHRu0Zdl/VEYk4pMgiPyweRLWybEs/XkHIpCTeEBIZZnOlfU0F
yANSrwBFDZOEUBWEjzeZVIeFmkvda8hiJ9gvLBF2UGPl+QGV5W74//begBUSCyrm5r5fT9lTnt5t
N4UFS7XRJ6qZHU5N2E1OJLY49yxQw9VM+ZPvi8pI1f+YqNvSP2YOufoPm0Oe/mPnkAtz6MP5nb6+
Dy0/8Lx6VecvJMUIU9DpUgSxRz98EqnIX8uJAyuEdaW2gmdpJG8p+U8sT8SdWpXoHEgJtk8XKhuo
3hDomu1a8F+gV7ep8s9J+nCRib01+DxaI4KI/CLucezuEqpLHmG25NEFWwQROxVpkQ7xenvhba+L
CvK1LvspTJksuNo/Pd1vBDux6MUPhQ6+N/+pFQwqM0Wo88siZuyYHt/Xn/h8y4vVvHyFbpXiZL/N
8yEreC3TVVdqLkDqs97m499Iff3+P+fSwv/sHan8+D9EHhMEOmtxfIn3zX+cqG/+ZlPSol2LRTOm
MaQ4///tIm+Gu13rSxCfu0Ql04fEb5d8/Vof7fzikWOxlhePxNa0XGVV7WWT7u9nEZF87VOu/dFr
eRtw+/afRf7CW1sBpA3+b1ezEoOFLNdfH5QJlfpqx87/ou73nz9NqO+HEMPPP9z+doUBKkI1dCM0
eZpgwDeZTJ7Gy+s7X+6dd3+3iwQk3Cna4upQbf359DVaaj+PeM3Is3V5JqrZHVWL+7Jd3x9DDsKQ
Sm7BrKU5PcBkY0/a9S2xgMSmXa3Pe1X4pqREttv1nbHANgMTKcJfyvjuIG3LVW+R/aBylfy4ctX+
sam2qYfVe/DiaFx810CVZevqdeIeJUaQlEd9Tddz9txveS0dGoJNg2BrM2oz7IB75eGhEdFOA/xE
xA1MwSRKai1IVL7YMgWt4lBDsGxyp9STI1obxEvyudtgLzuJBm87JIgtTwV4eI7M/RGubEBtI4Qk
yGphgkQD3pEkijllpisaiGgArHF9iGiwWxoswSRZ1mltXk/X83je4I5MyxTTJbfabAK0tIvsIYG4
qI9u7tW3E0AdP8nzLJffWFB9YcFmKNXuxEbE1WoRrL/wAhFN04ZJyvIX/XzBHnjR19ZfP/C8+eYB
3dDrDykJ49jR3zUODXvmkX46RNaQOvbIQJOxZWA8wIZr267hmK6LiGPZDh6effuLOersHCvaxwAP
JQaYRtU9KnFAO3tMFtXckmim5sibTvHIwBYdGnhAHMMdALiRMxqMh0ObIOS2oTlEdRcXJvu4XAuD
zfdwqReO6tDQYDQdea5nWFM8AEVh03DNATXG5oSM0WA6gvD9Cmh1wjvoPI/toaMxY0JrhyNwj5r4
HQyCX1Bfo3cAdIDHznhsjQGZA4p0rYHhTcyJMbKRO7C8sVBxG9BdysexuHMs9mxOqq8PKU4GjT51
/C6397XrRZ4Vxy032ttwjxzbs20HGRadTgw8Go9AwYQarjs0yWQ4JWPSantFsR2vaqvjDBgkc02c
nKOgoef19cIWoM54Mh1ajmOQgQ1TxnKp4WHTNtzpCDwBT8FR8QGghzVbNdagIkK42YSKiGuDwwYH
76e34UUWpjaiBp1Q28CIDA0XDUeGhwY2/COU/BXFKrpfU6/qoSmEYh2glhvyLfL1Q88k4A66Li4e
6D1s42PrmAh8pjvBrj0xbHNEQZ8QgjwXYgCxJp4znEwIJhTwrYpcTKYTMbzGzLVMbjWZiYfid30p
h7W5LNYzGlF8jM1jC9jT0ZhY1ELGCDvAHngag9F4YphDzx3bU4+iyaDGXlE7aaXbgOXuw0LYk7C2
1mOrKMnklutAfNJ75Bgfi2HyN+BzJ3QwgXhoeFMM8wK5ljEcexNjOp7aFFkITawJ4JspXBdJkMPi
cDJd26s42dBuN+KmWdsFylrQk41Sn1m+2dDrWbb9v7xdWXMcN5J+56+YR0VMoI37eMRpa0NaaU3L
sa99SgzLpIakPOP59ZOJ6qNQhW52eBn7xKOKQCaAzPy+zEQT9zEm7cBJE9g18JAWooj1NqDDFIVx
l3U2o4VsB2kml8vO0skVO0z+Y/nfoYH4uJ1w1BcanUjgMqjkSQzMQAChgTiZGYGDbpNPUZSQLi7W
h2/b+x/f9VdqeP0ObGQuQyO/WtG5/Gq9mZzIJrH6hhvLF4ouBJ5JGWUpJRGrYeOFiYYEaSmRTBbF
Y3EQrC+dyfHIrWRzw4RfAqxqDyWeiV/vNls4jmxh4XUm1YJhFLQpUJMpCY4bjNKUeC4k0UIXDvbC
HDMvHsY68vnDWB83Ug+obCI1YjX02aAi8KTjKjqQUmmji8lwClgqIKUrJACcIolHQTkPJhnaXb7j
QOPpBWV6Nr2gYnu0hW/H6ZVyC0nrUqlouQNASJzmYLdGSmKDwk+FSsLGaG22sivEcbhWCLHrCGGn
O7eGBawUFksgbyBc6AUzuIGaqQVHd2thw4PInGSqBPg7ygj4F0aME1IKEDZR/eIWvttPcX4XD2+0
Stj1XAll1hMl3m83d8tfHh6+rh7+hScQ/4IpzUEB9IhG6ZwKHEKNflBI8Ig+S/yRg680VPLCLmow
Hr+vwfiNm1bYTUcDZycaYIvv9teP/jgpqiEXChXBr4i8OSBGCTYuCp4PnSxxTmeSo5F4fh14zbkW
Hx/v/gDaOFLmMFVfkcPTVgnnekrsJko8fdtu118Wj9v1w+f7u3a74agv6MLBGPUr6hN4AoxdCPVw
pIQBo/McA0GUSuYEDpld3pW4fFydO1Gj126rVD/3hBr/xey1dgWWcw8tHJ1aU3VF5w9iyCHlYAXR
zIKfsSGTYLwhKlOng+Q2FX9R5fH4fTXGbzQagKPtaMBtxdunSID+4PnrEfcIdXBPTEGYpB74DIJs
IeAMhgLQKxlnANiyYgS7FGKagceSSSrmRi6pniJsdBL7yvbT8X7HG87Zwiw4/PX+O1xmJ5I0RhEm
HTAa7SwJ4EKJi4pqA8+UitdYSm/G8w5s+majI9NzC5JgVpPz88cdjrgoS/wYDmQTCMo1/Jk44BUR
gIF6iFRco9EkAYHeA+FVLmbHIIRIdo1qhxnOWM/+6U0r7bKnwnYGBX7//eH+4xLwxBOaAK/yOxQe
YAjEMV9IchEpMQQ3X4IkijHhXTDWefUaFj8W4dx+nd5olFx18I5cbeQEiT0/wgodbMSAeQ82Ase2
KAj/JCgFClIDLhpoASkZsBnwBiPZRWowGraVaqPmUq2lnhC70UdAHg7jwv9yC6dI4x8LoxZDQLcQ
DAMj4NbAPOp31CegU1pj2oQKLS9uQ2+el/YE5DgTcH65vWnVMh1dMdjMvEH6vn1Oyy3uJH5o1xrL
5nufi6aSXfEBjheLCoOmA2gfgiUqghuIIqss2LVeYD7TeT8wf7fVT3XMaLvp6rd8XiJXYRg1ua5I
X3kOcBpiv8qq2lAA31Y0AWTNogkOgIB/EY3hwBcUgKeNyNttT+TtNPynu6ff/OPq7vlxjyYH0+fV
cdFUikywB9xHQJEBWamKCo5fkRlIFk/BXZR7Mnpf/MlLrRa7eQhXEDQmWow6gt7oClgYU2g20uWs
kRu6gjhYJcDB0jLCc8nAxVzg6rLZnEbuCR9Hz29aEXlP7tXEJbWVhzeMHiO3B0sAfGEAKSYK7EYh
gM+BSM2yiBo5ornklZqRJ6Kte6JtJ2f5abv+/nj3/OeXu7+9cdU+FfgzXUEFcBvHHHAeB/QwC09C
BIcps+CGhcijya+CAfcS/PT2DPg7Pm/1U3MOpYSb0o+aWH/7YQx2xT4pwyAeIyKJIUStPfhYbuH0
ewUu1xoSXTbwRHitwkU9Z1OMpd8/bEQXO9YRfU+BT6I/fNvef/56SIjUw75HGmCPhRuATkWwgo4m
QywD+OcckGLvTY7e/uXMyPCsEVjSjnlKJydrfXf/23id2cAp8FOdMPNFudOCEgZBGMCRkGChAFYZ
SC8KzcbHV8EXb8cyNBtx/1ujkx5XEEa/nEKmOi0oo2TlCwZ0caEopg0nTFsJ0Stl4hVAvgJIz3ML
jqjYv6zL8GwiquqIqvRE1ONwA2O1lEN0wl0QKDkVdGH2QJV6ZoB0QLi1ATg3gIyQMDuftJQ+KJMy
vZqt1mku8NX6vFVHmY46uyneDl8hWD88PH8Z0qh6n0bVOzxOgNkNBTMgAWIUEQ7sNRhwntEanI9m
p+hlo/1wHP/MeTm90Ejv9ByFKrdaTWojGKxr4uHtB8zjD9BHGl0rY4oWHY0mTsHREVZAvNXg9CmX
VoesjcwvZ232g5+HCvsXWuHXHc+zpPyYjH33aZaGleAdlXGJeI0hykNEsJZmkjlguOyBwWXzSmnY
w+w3rXiiJ/Mxxr6vVwdP+WvEAxEYNUeZhYgcVtgD2A8pEaD2InBY3iF1PEpfN6NM5u8E0qVTPQr8
5++rh+MnvSNBxHgKJ3KoTpTkC+B7TUxiSBBDxENriQyA9gvEGRP81dx3PNUF4jt+rVXLzROhasPk
RK2fl/+MMPbjcrH6jp+RgcCLyqoYBCBM4DlrPVcFwKN2RDAGsYg7TJ7QxLQEP1M60GtMyn+YzvFD
vf9+//z0w/vl+sPt6XmjwGazmiuwY8dM7tM/vt49b8WpSmSHBEQMrBiTCRgbeI4cIRCxpAjzgMS8
pMZz0R6NZqCbdrYOBtnx5UGEdaWy8fHPb88PBzlg1TXDehVijwzY1EibSHEeMFYsBRgDMxDNUxHS
BgZ+rAv/5iO3gvHe2vBpPuDL9us3pGWihghZY4OXSjLwqTEXYAAKWKgtADLA0FWKLEDQLK8Rp3+C
qfsv4ZNWmU75Su00n4Dsu/vdcZHlKXXPM9NRBkG8wCqHU7C6UTLCJERA5ozzLF9C2KdhW6G07Akl
O7njCR0H6bAKI9F4VCjGMRpIFBV7FkuClwUWX3GIwzJmyl6H7ndenOjTwRg7yw5lmf1qDFeXjhUS
cTjIKXnrOKCJGGlCHqMAUlggwSV76iwP1tFLqzwedyyXVmoebrXGilHjpt4tv9+vv5yWGIDMQiFk
GL7Bc0C9D4FF4gREMJElBDQIuESxQFNSJSYRXgy6V6dUWnnOxL7mnZtWQdHR2m0PuxF/LrffwSkd
U8EY9AC9WclDJgbQHBGJgq7wC8ISp7yYyL1irWdrh2kl2PCOBJtjmW71bw7Rkh4FqEucihUFopqK
FE6zQz4uwYtEwMRKwEEPqrQCNKM085vOeYRfuoPR1+Li+/0n6B2SfW6weMpy0akAoTOwDjEYsH3M
yDobC9i/5y/k0K4GLHMhJjosOzqs9GEN19+/PS340WfRIUBl6xPgFEc0yxJrL4DOraSgDfAlG8G0
lG5XcTxOK8BuntnWa7nerRvj+aOS1L+9sRWk2tqpIEQA+oulRJ6AIwgtITJB1ARHxdGTSvsCX/Pr
9fYrNrhuXzSWYf7+a8Ozm1aBTUcrZU8gdoZhhQ2iQIwlSmvAsNRS4lKwhEWfabYxAUx5LQzb2Ye1
6u1DL1jcLu83tT4l615wYRd78Bhy8cEUoArMgv8CYwJIywE5lCJy5sGYoK8kbftJzgaK/fNGha3q
+IOtnmbo3i3vP/v75dc/n+5qhcEMmRb8ih6KQVwzcKoj0mWheAEHAQEZdkBRDqfKifjq2e2xSOcc
8emNRumdmuc99M4cqcf6739fru6Op42rmsH3YCG0EGuwA4pS2LESPPGRFm6pDbYmU8fmOxqlnX47
Zx6GsWkKrxK9/cfT39Y2Tkzv1uPD1ILZKpThmitNvAF8LgTwIa90JD54Tq1TLDp+zeGZT3Wh5N68
d9PoIOfgyUgmOhx675owi1Er7ZRzCCleY5eKx06MQIIETZjIVGtg54Zf9kv/8335+PzvC/W1NuJf
cE3Hx41ucuU6uq1cpytnBFewSKrRzKN2AKWADAQlNOZmCvFOFPBUzNDMo07K/h9hyviNVvRdb1t2
7tSa88+7+82o/CyqXzJZMU8xhQEb4pUEfB09+FekulZ4nfSZ/pzTaBMx5mHTKDmtOQ/dEOOuDOxe
EGzfxiBqYdxEoDDCEkA/AbOOCsgecIFspTU5Jzgy9vq+jIttGU1XhlFq1dFBrad9jNv13f3dEcBU
W1WWJZ/AgeigBfZNAyfQArw9Mx7YggObvdzDOB5zItSuI5RWE4x/P9zv3v4LOHgteR8ZtEFSVTfd
K4iowFusMECqAvXE+iyILIBUOEsuyYukqj9FK+zKdIRdmyMAffp9BD9lbZb2PKNX4wF7Y4dGOwGe
lxXHdYYzGsIEfp7GaOY2dJ4bMRavHgxz/5FuPx45EKsZ+ZJT4IwS6RJENksFwUBAomYpaODUUaRX
g0vbNQzQf60RrtHJrnhHpy3v+Fz/a/wpoTmZ2uSkjKILWaG1AFPnENhIdgZonrWahGwtQUs3HLyH
NfraDFad5UIbKz5uNHCdRJyBnZ1o8Gl19w8gNX/WxAaW1mv9ARtsMcMGBFVDBAyZE6vBaxlWqGHc
gPRX9Z0cRu8Lfnjays07J9kJMfFnCDFT/X+ND49/1ojHKnayWHLgvBRpOCNUJKBWFtCf91bAUacm
aUejMS8nYY+jny/8HF9pNbAde1hyOWv1e15uhro43SM/cFqLyg0pjTIGlUg2HLyaZrD+MoO9CEcd
NjvFlF6Pfh8kOYdOhqc3rTod57gUphd1bn/+WKPNvptB20KjAkeYk8OYjSDdUEZiFoBqhTZJpquj
DIx9IczA01ZqMe+uNiu+OnjJ//rIT/C0ljuzSNRm8FQuS7yawRwwCmoICAqQ0AROk/3r5c7DBypX
LnSc/KaVrmPGq9lC1/8XOvzT2+3j/qrNySp0De9RSq6cj4R6FjGXq4jDH4GcBuAr3lB31cL35jrj
mTpvttr1NmRHdzV0TNzspwhAvXLUAazX7xC1cC2V5o4ApFXoZTPxOihCnfTgZJWxMV/tZT/FCz72
U2yEr3XpmfBMHE7T6GMmR3c+EJEL7BfRGfDVkFF3Bm/8OOlillLmfg/DabiJFHMYahn2ta/OIeh9
mXboy2OM2n29HL9B+uOUUFizMhYigBCBg/fUAFQtd5hqS8Lb13M+J1kuVXinPXyW03nGy3I+bT7C
iwp3959hA7gd2sGHbxAAJZU5Ip6ADbsiGcBnFECa5xHMgsWSy1VdVfspzrRjDA9b0fmmJ/pmmt84
YZwBw9QSGf7d/kf8qfaIcmttouBPgfkIidfz8KKeBnRXEtNRvdAT/kpgang20XTb0VRP2d2kEMgW
2DygNJVqyNMqwwIjUkIEFyXjJSBtwGiY0BQgvuHmqm16uQR4tvxnueUdRZaDkeHFhaevz6eiKtvv
TNZUxWwR8gO6FjYndLiSFM4slTLowNXkWtBonFaA5bojwG7a1PDT2xNLZgvOa7sdAjqYN3nBFVEi
AiLS6CRVwYoDLGNM4JSUf/Vc0kmaM7Wrtz1iDWrNEaAVYnPwq8vvp/ogs+ixPNcU+9YIQAfQjmkg
1NJRwpU0EKStH0xgtNCnMZqphXWdqd0UfP739tl/x1YLVfu1VU058hCSkQ64XWYghAoA9DPQUe+o
kCYyoPlXHdT94P0l2z9shd7OsZiV/Fh8+PHdkJaZpnmTTilSJgmPmPnHqp8zwE25hgPKSjE6l9dK
844kaGSXgnZkX7FOu8Cn57uhD5sNwWqgWJYCeoFoylJBJgmY33qfiTIRApUsislwbfCvE5wP//Vx
I7zqtMLDAeoJ3+3FFEO6Ees/jsNxcdqBDpIVAiTIkQgU3cgEkM3TF+Pt5ZZMP3nnppW449ycpRdy
cIsPt+PqIa0eu35FX5OYUTEBUuamYN7aEXT6ROtkkYYpe8W1zaudzEmSMzzttutknGU9pcVE6a8P
n+/un454+khikvcJSIsgnmHfDN74DGAxJGWWfNFaSnoVeKjjv6jjWIozmYzRGxM9O/DQuSPleXd3
v10++q+ftyDiyUVwO/RbxBi8BxfmHAQxgNc2R0eoToGprMHGzP9TmqYjZqum68RHN7vd6TMcV8tq
oga/1mRBKMJJBS4ESDVBbg3HVUIEAWQRdWAlKPN6x9XnM3w1t/rsOvqs6LRvbrN9+u354dvTKOi7
oYERv2ITVc6MCcmJChHLo94Qy8AWk5c2ZGaCi+6ac5qGiQ5q4gtn+tbnL960OvQU42yeOMCCyBK2
/bFT3uPe81ykw5vhGPCLJjZQCLgxmgjxS5kirswhHKc5m0c4vtEq0mlmt6vh80Y6H9P/Bsg33nGu
beyaZUNFBIIF52y41aXAlxiVEgPVIDDHPgVsxmzF6ZR57cocOwCe9lVMdmKkdTURYgMjDcorwEsh
Z2BCCggfdxGwogHZtPTKyUmTVztaK4lZdiTZThOP79/H22PSkZsqSAHmBbangcpg4VlIAMzZSSKV
AM6ci4vmqgIEjn0mmQVPWmm3HbC52m0mWf7l0+m2ukavUSB8+6gCoQqsSyidibUArTn1mke8ipsv
3lM/DthKs+sQplqsN9O68XcAVPhfXr9WenuKTD5iBSxT4mkW+GktGS85g0/LwaSsitD8qsu10znO
F4PHbzXabNYdE9msp537s/uqQ2ICe13qbUj8ijAJTIRzoH+xdnoIA9AaiBRBjZxVWWRxVU66O92V
N2lnaYhN50KR3eymhX6A7eW2NoPWvmwkh+CmgIoVkJ9jZyXDy+gR73M74y0zTFMtLoadOuZZllDa
Y77bzmGAo2oKd24hyK6/1I+p+Q9xV9bkxo2k3/VfoMB9POJUKHa8I1sznnktXjLXrW6vWq0d+ddv
JoosFqrAbsa4w+MIu2lWBZAJAok8v8RibXoq2q5gHBQsjZAYiQ5Lmw0cS89pJhILtmVK1nn3etfk
RMi1KpfT4zcNP3YtA0Ev2K/vlhGIZ9TDhTw5hMBYU0lp0AGy4WgPGdABQgDFLuXMEzWhqJds5CsU
x9Ozhtwt23TI5Xzxm5yif28RbeX4+PW4fWzKRuoZqX51FgRj8AMZkE1ofwpiwQRCHuCqd9SDSn6j
/YkfPnamW+yx9rWGt30nIc7VQrvRYYKg1nffQEk5xwWrJqaDsFkzAucZq+cF2NI8gkkUVIZv0F+3
SAZph5lTMNBOnftAd3YRUz6v7vmWZrUEtiKRMKoiQ4QPw2E7RLCMvYxgWmbGNULPgEV/Q9S2R9pu
bTcOjC+TyePdw9MuPWwfz+JdcDY6lrzlnHGHCCQeY7fakBC4JjEq4yOzSabbysLPM1yxGc+PG+pZ
544aOFtmS7/fNkm8pprt+Kcm7YlUsghEK4mp/UKD7QsnjYPioxIFy+w21+t8jit1Kdt+Bu8AC9jh
Qi710Nqz7evD0/aXVaADNQE51oXi31oDKFxBXVSD6gJsFYGF+pxQ0FVLKBJM35sCLM9M2ugyy9da
BodNh8HDYZaNNfNY8hpJCU4JWkDpQl+aYEaSmgMcUmTKKQq3El0lY/V0wArFt5pcGH61Buv9X6tI
5m/pKM8oqMonXZ+6SBVD0AOKkDYlwqrqhJHDJFQBG82+4KaqY18rW1oI5UGqdURqkPvdyqdz9/Dl
4/f7LRon7nStu3pROqZo5HB58Iyxc0WxJjR7YoIoTrlCpcuv7mqd6Lnm/Tk9bnndd06yPEylAlts
gjxVYiDSiQRBDJYXXoxoTurACZgMgtAowc7UTPrUh86YDdWQoDruCfhSnUm4A/3yOAO7wmsiKOml
92CuZCxf1obB1iiK+FIMY5Hm4HK7TeejLKbXvemHyXX6viwCwtYLxHPxRGF1L+xzi4o2I8UGxCRT
cMrlKwWEp8kXJHfOtTaTt7eAtfph+PIIBu0UjpDjtaFjkUJ6ThxD1App4NpIoFADa4ranDxV6c+D
S2h4XVLdsKxtR5oYSRdncjNsf336rVWO9Al4SFf70mrhNEWPgcDsO4R/ccVQQp3wImlJTZK3COiw
mGnO1visod90EpoHo9fJRFilNAYWTh6PUaB42FM5awKDYIpbwKp3WYj3SooQQCu9DS7pMv5zUCLL
8AIQKjrUm2VFX93Xcfjt6xMab6NIHAWiKUGrBJqowrC8UCA5LNjIxHiecnIOdNZXKZKaU/BMefnp
jZZHo3s8LgOViE82taTBxo6f9/eNW9g75ZmKYEIEjinb6CAuYOOxBLa3SKF4xp9ldTX6Nftn8dqC
m6HDzdZ1Kua3CDwEFt5oaMt64SbGufAmEckwMK6zw3LQQpSKVDBtoo7+xbhQfKZePv6lJbdTmghf
7s+2Qnz3T+zz/tZPlSvWYhFeVYRLiAWXmuuKFphBYymgSFpPgfBkRXy5Nvjdl+G3X67aOY2YWpDS
sGE7mTqDFbYPLfb4/f7rL/smyR7DieLtiJFSP9REvGhKsooUFiiqZJHY6irkXBkaA/DvXl1kj26P
j2sK176R6aVmKVwHLWBwcqVElWez+AqzVGFtQFIxwmHCsmQhHaGSJ2Vhl9pA/2gW33wrlBveX7zU
ci076tT2UhT4eb8dZkEWrXWNP1DYpj6rDPJQIb6A12DW5Ux4sApUSFAuGk/icqCGhB3rWDU7YZah
vF+e7mv3mXHNqq+tIiWKasdwlyRoNwpxaDGjJGpiR/DVoIsBkyCbmzwJi2murGj7UsuO6uyjnZ60
w+3n3yb/Op4WqXMUzhmSgkKoAI/iAOxKEAYKLkufwIpfGDDTCO3EetObeEpIT8fh0/0Duj1+2D8+
Ihh5W1sHv0Itps02SzBuFUI6wzpiwp1yRAV0XCZF4WZsyXl+3AWJuw6JwzIjxB+/fLgbvk8pgYtS
F28M3u6gPGPev6DZwk8N2xDxAJRJRkZ700/dTnMllNK80zCzZx0NaW+XGt7FXkS5/Y9jOWJOVHWN
0DH2zBzXLrJEcuCgnmN8xQqww01KCR3gLvl0az4Ajn89mI5PWx46EeXhQJfQt9vLHpESKwQqEjMY
jWDGor/LYMWdZyR4yoksBmwd6RCQ/llIws4GOdCOOKrpieO1+sv++Hk33JHh8f4SFHL2XAluEg+g
smSCSVagdYIt6x3PBKyEXFwSkpmFlbUecE7Phna04A3bDEtU6G+HWa7EuF2tdW95NWE4ZYJnaoj2
BYFxLKbvgQmD3Rd0wuQm88J9+PNLmRLzN960tK6FwoazqUD1b+/L0lqUxSePSUBSoqNOwcb0QhTC
wYJ0SsqsXnCa324tXmZ/09JnOkQLurA9UBd8rPD2p3CSrikdDAE/0eQuxnFqAolgtoAk04nYgj9A
SjHH6LLL/DVUeLxcP57JuK5ATq+0rArWY5V1Ycef7o9fH99W9O+/34/xDlY9T/AHPZRKCCUdJyYj
JD8DczFgVEB6F8EUA+FtX3DinEe+ssnOjxcc8B4Hw0KE7O4fH3cXz7nGuDIS7XJUvgDRiWJHC7Dt
ieNBkyQMZu1araJ9TorMxm3IGvZr62izYUtfaTrWnj2wEE0SYgU0HWvNNYf7ObNAlEcAB644em4K
iTw7+Cdyz/3rxZDW9FyD2lu+96ZltPOjbMz+qi+z3g5/8f99LnpQcDeJMUcQjBJnGOiwY64JRwQT
pRHYkeWi4BSpKF5cABz7mXsJnrb0m0OH/s3ybkWIR1Bq97vq9f8I2u1YSjrZti4ZXUD2IkCBh5Mf
IubgFpKtwfxjqUO5CQerO1Gfn+6rDXO7oSPedoNbVg6e8hXWuQ8Clx2xm6OB+1YwHxHEPxKqiorM
KW3Fs1GeZuQFaUOPtM0is2CDfeImlGKNNDnNVGLUkxIR5yZkSbxnnrAABCUfM/PPAhTPh2xIqrkO
C5K2DF05os0inoCfMfhe0YtgxarvlTH4rXMiKhuGvihJYNPCdWyKlZExUMBfBeZwIuFa5nAHGBo4
0R323Ky8J79bXNBea0xQ1CTALQYXdEZN2GPWItjbwgVFrXm1+p7z7C3Rncy1LbcXiP3Pd/wCe8H1
2wojhYlbINOJdRTRJoFsa5UE5YyxosAMkmrZcGI2TDM/70Rqt2Irz4t23D7cf5vhbozpV1Qnygux
ARuHWJBgFou5EMtPBUlD1LGdvhnlTTvVupBjq7Fytalfebd/mN8qVShRY97S0Y7hIRQbJKwAQvMJ
KTix0Uqik/aeUhm5uCkhbDZN/yedvfCmpdh22NjRJbbp3fD18PBlav2kx54XWUhqHEmGgQxKWhPQ
MkDZYFZzUBwjlc/CAbWDtmTt1jrR1tAl7uePCYQiZdWQGkvFEveJChKswGOBsW9UuIP01MJC5/RC
AeW/43b68Up9649NYStQv+uxNGVs/br//vnTFPzg43GxUiG4T8poXsWIeEtYcigSk5ybmFMfOGw+
1oKIfYcIps/G1fbht++H490s6d6e0phoBO1RoJOnqgAZg8QOhHuMlkfBPay4vgJiNh+ypaaj5G/N
bgpjffvh+LhtS7A5aCEGtTCbYgAygoUlwctPRCeE5YF6/2eVYF+oa7k6dCQT/JDnNQZDbWzuM1vj
ypqULMFlRJItwFpCqNeUDHFMZgp2q7CW/0EbsRHsLR0NC0OnRBC+nG6kX/91KRGcd8FJ1FKWMFLn
pYAN69ED50H1Uj5ZFQJnrq8BXAZs6djIDh27ZYr/u/39fsSbHu4mDfDkMaJu9Ei7UmxCREaucHWp
NHBjBoSmYWAzuQCXUbxN0q7muiZxVy+2vO3WetZ2Q4eFUvPu48dFWM0UuMc42uaxYHcpOAFWC1Jk
zkG4GNILDZNgxCsUf2yS77Zb2xEW252ch2x/2n86Pn798r0J2lbsd9jMNtY4O4gLqSKoKhLoNUbF
SHXUhv8HY7Yt2Q3Xu55Q2jl6hoXANhrbBuwR7ugzQp4yBjYa7HiZHOKkJEkqnJNmFuS15ixdMWWX
o7Ykuc5tuNsuw3w/7T+D3fHzcf9/F5VjPAXOVbhUrzmW6gSa3JgnGAyLiKEeVJEpKnWTrrGe5tqi
L99rmdoOPaYmp0HjMMEipgtCyejcARWJc6YT8Slw7MkD5kYSlBTQ8ajlDhTKRZnilSEXZK29ZduK
BtUcywvAUHXBVF+uhg+uOmHQY+g9SRFRsIvBchtQSmgt69bRjdhu/z560eX5m5bKbY/0/SpZdou9
S/8xtn7uVCmAFsy4BrUJTGMET+WOYHMQYgJI8cRMzvKmwH070VXc99k7C3bWDoAd3S97box+sa8n
s6veaLP+P3PnmNLGlljz8hFVqqhCgodjymgOYHpo7px52Tn2rIE3f+NNS/daquyYWuWU17njw/3h
+Onpy1RYzOTo1oQPaPunUpIpmAWDKBtFRkxpdiSClpucK1qZ570xnVmuVRavXmy4qm3WVlytjCCE
4djtv9bY4+N2bNI5hj+cPqmXWXkmjc9E12SLJBhGEylJooBqiU57dtOew9YZ6TzV9RO0eq1lq2MU
7diOdlB0JhFYPuZviGaMJjqrSYA1NHn+XHvTFOOSQOROjPKBvkqsNGimGCc9NlxUr1hfeKbnyoun
pw3bnHbY5pyf7/u73z8Pb9WUzYBhK7C1sjWKeBMx/oN6OYPtKCKH/RngS7PIfJ6P0U7O1+k6O7nC
z4nllMCNXX8ojITYCKdP6BeRpvbSJSCC4Wi4RMFQ4IYobzIH7c+lF9LcpvGvxdFPjxvapXQd2tVk
x/x+yVhVI3pgNNFgx1IZat139UhINK1cESkz7xd137/30lVhivVdtQPTeZm6ceqtAUs2OnYNFQzj
ZWhjlgCSvxRMyxLYwLmm3xdLePIWjWnPXqiwP3fueL6vR0O360Q8dhUr6QT7+vMPHz/cPX063i/a
Ok814AUsvWKjJIwnbInoQQvIsKCgyvtIrc9g8b8S+muflgU/ux4/h2UItRG4U36qO0dTVa1IiZkk
DIGAOoEdiikW52puQLKjA+P5Bm+r8VsyJe+QKZcZcT8M95++PHxrnOgaG4dymbCZBLZyUmCbSm1h
x3qWKQvR0Jusp/PYVzLDT09bqp3sUO2Wbbb/+SGeZONZ6a1+Ui+9EiBpWcEWVFKDqILLBA4ek8Gp
FKm6CRLzMnqf8svzlvZOmRV8ubmUk3wGducOF1Gd+xKMZVDJiY4Z5EPUHKQY9pY1mByms1VXOv0t
x2uIGTrgrvCl6QGNopfk8fG4Od6dMNYqHBOrEF9eZBo0MYjBJKzJJHCs//KphKQM50W/3MqzGf8Z
dNHmvQU3rsfNclv89uU4T0Z8+wH/v2ZsVaW3xi0EWqbZFGIsWG4C4wIWlSpYr2xySeLFjl63BQc+
tLS0EaNjmwy5GzphmB02lz9nZQ3bXyYL1FZUUVDaIyhNCQQGAjJQC9eKtWDvueRzhG0kQt9FNxur
pWHTuZP3WzoV4fsPPv7Xovq+OE6Zz6Cdwi2DXVIDWP5woTjDMpzlXExkf1b1/Yy+Ny0PrMeYnZDX
38UfPvYSN2VWhWMnphTQwUwdJyFYUOlYAu3Ngz7E/Osmbs4IWbDQ2f8HuURj+rD/gi724X67nyM2
n+WjzE7IDHq2iohjnJSEre+x7B7uUK1dMkbdFBxdT3Nlo69ffNNysPY57Zm0Uo9X6cPmf7aXH0ZL
U7sLu4zNUdHDhHEImYnVLhCsp8c2pMyYRVhnPsp8+v1g1zbnfkBPS2PQpP3m6dMIu4TLydQIjIIX
ZaHCaJaIwTJAES0ooHgOQKOLzCdQ+6i+DbjgMsM1xILLGw0P204jKfzyKk7X5MGYfXWq2CssOO01
IyZLLK0KmAiEHQ9Bny6sMJ2L/EOH+fJ8wYPu8WDOvXLHCd+GS1i04n/yDPsWDyW6f0BN0YIEXUts
ZElBU7C3Fqj67UANDT2cPPhyKjP636fhy3D/9Xh/6UOqz7ae8QWOp2SEG9CSar6X48qTZEHbZ1YL
Lftl9stBFxS5DkViahjx4f7TEgdScimxnkvXDlrSYLiEYWJ/Ujxjnmx6rUSuafKWZDl0SN67PV8D
bmKkuVE6Qe1NKTniLSYzOVhJMFY8/KSeOzBXHHP+ZsTNGsa+DrmJj+eEH/hmvQPxyxW60PZhQHeG
rempuORggMBNkEe9TYByRLyDnaASdvqhVpWX+sbhkNcSZeBRS+Z21yET/j1pmFhvfgR9ewqEC3qG
84hMUqNFIUpidFEghr3AHu2KBRmUEzQv2mctBmsIkXStph+kWPbt/XyhAxvdo9aSGfdBKuwNr1Ff
wPJgrkkBc8MV9FVfgRZvR2yJ6YjAg1RTTutP7z90yzJ8VnAdekyoqLmjBkvRPTFaKeay9S686u0+
I6Mlv9MOB7+cHDG1p8zFpTC1QZLFMoTfIomDGSmogLW0LhHJi0hw+wQ4Sd21nI+4IOXQIcXwDlbY
rJXf5QxbnBSRF3JApHtqQBAy5ggNIjkjeHTq5cyxF5r4Na+01A9rPe+gVg6Sv7+f45zNtCOtQyre
ArV4nfhAscQY+3gZA8Y0d1zfJIDm41+BlH7fT9496A7o5kGvkkP/FmPTeTl6kO0ZU14pHG0pJZjr
COMdpYLrAM6UvKlgEIbt0wsPWjI7GaAHPSx99WdP1KGBlRv70YL1Uk1fhCCDKxv+C/vF54pjEQkY
wlkpqZNw5SZ31Esrvn6vZaiToHfQG7pE0X/4ejzMgp/YJX4EtWBw18LaF1gYjOV7YhWNoDelIoRV
YEW4Z0EYZuO2dG06O9pg1GwFm/u3/b++YpM0OdZmjR9QN8mKc8T8sYiUDjYhkCU84uQGsOkFaC35
ZSmHg18/jfj0TUvhpkf2Cnzhrx+fvhwG9OE4U0Me+Aclc2YsYtMpWfOkaBEYWIb/jZYJRo0Tjr1Q
TH8a+VpB/enxguqO8DO7Zbs0jGicoczOW6FWnbNgogKVS3ks+GYRNQGNKZtwzQoaqBP2eX/ectwZ
dQ6YXmkojtoVHu/UJXQSEAoDqJKOcqLAviygV6GjqWADipQd4SFI7SQVOZXbepS+0KG0IdyuG8xj
e+xlLAzZfzqei7zECeXZZZpd1J5oi60LMV/GY3mh06A0JJAaN8KwV2jM98/AZr5vaHbrFFSEtD90
Fhvbz8+FsdDeu5IU4doCxUyCoYqdtkTxUlubrA43U4xjP9/4vqV6u11TvdmwS5LkE67yRRdSgoF6
WDtEeuMjQvdTzO3zTIC4AMp5UBq0Q2p4SctUyf/v7dh2E9eB7/kKv6xEpRMUO4kdV+LBucBhIeWI
0u45T1FKQouWS0WCVvv3O5NwSyDQalcnD1VxJjPj23hsz6WCq8LH9PwwCwqPfEADvs9hGxgdj/qL
g1C363Q9kKp6gLHsQYxyXboSVmFmmDJgDl7oNmXOrCKssJNaF9hJrYPt6nu8PDFdLUIiO4ZtSsfX
pZJobt11MOi2jVZo1HFcUO15zavoBEeN9uwCbV53ch6km5d0s872jmKF4BbcCAwPo9xhZB9hYKhS
aBKXS+bDztAL3OtCcI/08gjav62yK9g5uzOjHtltiobu3+d5GfynjInimG1eCvH9v8XuiAeWyzwd
tFSMIQhKIZoE611OfRPDzTjsRoLGHYEroX+qsVGA3fOrRSg88yVCq33YXy3c7WyGdhG08ABx2ruI
vRaTgWtg5AUDw6Og8YBUrt4VzBGSCgHD46NuBEcqzf4DR5hqXc6vzrDwcHU2jkHarqZp3aHLMWD7
IpjetbuYvxeWexdPR5jjKpD6Lgzo4A+dA1Q5qDFvXWA+rgeU+Lt0yKuavTk+5Vx4Xd0HRUY30ZdO
2U6g48kf5pxU0v5QuoQd8qastMXLKtPxpdEzMz5y0bCzDyqTs1t2qRvCAiuZJSwdFkKM/YxOk1aX
66DcctsMoHq+/cdN4w7sXLl/qNlBSMqS8/6i1jEnrztUj7XTf0vCZMDgZ0pC55gMrx8CX+iwZgsb
uorBRP+fTv+P3GlV/s/7k06n/IJxx34rXzgWGuWV0fG0IGDKsZkC2SV8dCxiCiQCLE4epbZleB4G
U/7N04JTiEolSsubWiUS87A9OUvrZZeOXDDVDSo9pVOJ9olcgSCG1USnFqzrjMLOpG4z15y9CwgK
cYELIRuUouLEerh+fa2F/pSwJtgCFvhAYbxmzgMQThas8orbAWaj5op+RkE6pXNdWTqF1LQAqrpZ
geAJ18l8ts/r8LhdLoHePdTcixeLjCzjJCUvP8k6f4Nl4n2zxivKNCN5vHlNCz/U/G2e7V/cFy2W
x9n3aLbeRO/z5J7Qsuxtk8ZJNIW/eXpPjNPCLM0jDJy4K68SvoXe+D308OOkVtACBT28I5yv0kv0
YAGk5udoas8hQRvc0/YdA9RotfhJ0MoC36xn5GCKcU8m6zxedCx0Pg8JbIzmSbrKO6YFAztsCefL
Hcl+oBFhEq23eQS8bVdFummgmHSkRCjGvtxp32DXH78sUsCB9A+YadvskR/wEsZ7h7K2GbYoID1Q
wiCGgKJKp2MMWgYUndJCRC0JDGlEGwe9/uiBTP77JyANz3N/PHlSQ61zfJpAd681r0cwaBQOtSzH
TeIlYGEbxgBB50VyzWsPdQQvQLO3eJMm5RdZAyyC+ruAzjDJ8a5iW8yU+gcWqE6h9vWRfO1PyGtp
DQ/Ip+ukzg2zeTNoq9wEp8ldUSuOWPcf7l8RGE5xksDPjABneH5w0iN3Gqi2q3RBFJaQESgnDQ3h
DLRQDYcj72pzEUY5DI89aCtOlvPVXSO0yQba40R5A9J7UmO/GW3ZCo85dC258aAh1B602kAX0DJj
8NkGew6jonJqElxhQiAT39IX1PfD4utGUI6gUeSribpVNdm2EbQfql5wA9Zm0GNRNOw/DAIfhk5z
j8HsdRDrJPh3cqNzGWtzBH166Hsj/zoLoNAMtGUhDgia3TRDCqctQm03wZbpEgMHNT/W4DPyYDKa
qCG5OWbasleC/kVgwG6zymgoR8EBlPZAemm/AFBLAwQUAAIACACym/NIcQsckqFAAAD64wAAIgAc
AER1bXBSZW5kZXJUcmVlLTc0NTIyLWNyYXNoLWxvZy50eHRVVAkAAxDijlcQ4o5XdXgLAAEE9QEA
AAQUAAAA3Fxbc9s4sn4+/BV82MrKSWgTV4IqH6ckiso441tZdjK1UykWL6DNtSRqSMqX8+tPg6Rk
SqITc5LanV3NVCwJQPfXF3Q3QEAXWRrKPO/rm6/Rcra4lPNIZleZlPrvFmUYf9Uu/OJ2uyu8Dj6n
0+VM5gefz0+uT92Dtweb47XjSM6LJE5k1n+Zi/ZZZnmSzrcZfPjwQXPSSOpXTwu52fib4Aaneu/M
L5J7uQf4MmCkX2wJdfFU3KZzkIIwTL9qlzJfpPM8CaYb5PJb/XdM+VftOpeZfjzaxsFMpGkjv5AH
V8lsCwg2ETdMy0C2juw+tvqM7XPL1uE709TOJ3qbbKd+qEPTbzoy9+F/pvcQHSNhij2AuEizYmcU
Qtpgns6fZuky16+vGxhHBHHEhqZhsYFtoBF3DM6RbTjcGlrjkTUYspGmaQq5Pnjw76Q+Seah1Idp
WvR1zkzT1HMZpvMo1zQn8/NbGelXt5n0ozUPE9gk+cIvwlv9j6Vcgg7CdLbvLxZTuT/zk7lRlAM0
zX0M5aIA5Js2c39zvOFg5A0cx51M9N7k+OPE/fh5r9FfGXptuF/dyzPv+Ozz4OQYBo1Gl2qUX+jm
o1m/gsCPAiljTft8ql/KGyCR62fSz6DPqq2vGcaRrimCnnfl/na14781MWQGsY3gjbH+IjRJoFTz
u65zYf76Vc+Mx4Ps4VGfnP6vc/6lxfVBx6USQFu1Gvv9V6oN9Nto+eTf+5MwSxaFk2ayAvo/a8mR
GdEI08DSv1yNS0b6O53YGupEIwxEbNpU/zRx+v1Px1enML+PncPVx0EUfZRzmflFmh31+3Ey96fJ
/8nj+TSZS2WpXtmzGlX3BAtMCpgkgGKeF2/eV7RPkvndcBnHMnuzB0DByTXcDakMbUGtNdJ+X86S
YjJNH7x04flRVEE5Bp7ZMlQo3tasVR/Hz6U7L7Knt2/2+v2/eWa/ny4quXp7vV2EJXaFkzCNdMZp
iVhZBVjfQjyKrvz8brych8Ds8D5NIn2X4fufJRdYKVvOe206p5ZGuzmYGXKb4W0D9vuguTjNZuPK
HUqT90qrIqqxziwEsXZZrFxNOdmXBKL3soA55Oe5nAXTp5IbODvvaJog5DRqqBrc+K6kxRBnmtUR
OvZRHK6pfUmzu2mSF/3+xdSfP0tQ0sdCE12pCxOjFuoruopL3ivd7LMsfat8fynjiyI7bEd19F4n
eDl9X3lnGTXO5+f3YE7wpfc64svpUekrtqXZnfEixlvwLtLptPLHz6fV3LeFhsxuxCWjcuWIJ8dz
IPvPBDrPFslUDubRRBa/yGUG/JIwr5gpxxlO0/BuNV3cRxmWgeltCcICEKgbCEgmNtGn4DSFN01h
dqZ5pkhxoiHcUZ7Y4nFNSqr5q3zE4gziN+lKyY7ZNiVBTKYh2pGSsKnU72dlPLlKnweouUaohli3
yRYhGfhrh1D2gNgGRlgWcuUPK9tAvVakjj+djjN/VhkIIzAQ78aRCVvWExJ8RGaLTBYqmNRcFYPe
li+sAu/kPPgnzKLVZ9VVVS6Nj1D4+Zs57dPksz9drvoMspsTcMC6S+ljpglaszrJYJncZLKiGH4L
b5P1z0FrmxoSncGG5F8Nto5eZ1DDRutQty4gq/glYEraXWXBQVDxW2RpDIEl+obDXJRdkvnNpfTz
dP7vkxRBGsQb0fSLDJ5l1HdERYT6UBcHet1PQTiFIrSqWteC/sdpQVVVLXLs3/Yttqdh1ElFnIWB
bTZV5N5DdFWoVJXb79/682gqyy97616Vg7lltAFoTgpB6FHFlHWPckCVgJhJFeQNuvvhYtFHhABe
3AUvjjAs/qwtPld+diPLiiGTG2zy3mbHN+9bRyozva21vyoxVt3UUguIQXW7QRlqiNeUF0jA0rjX
YFUKjgUHwUlHwZklxZ8WvKwjIXnvYiEmYKGdsISUCdxwmtH56ZdkHqUP/X5Ur/+2HOZb2i+9hFKh
99Z0KvewkQBorCO0iMb4m9BOUr+yZVWwsl3GwlKMeSfGfhwIM2owTkNYLasCbsW34rDJHVEE3Ouu
JXOKmZrFVkfmPOayjXkyW0yTEErIaZpXFTorBW6yhHpM+YDoxFKGUliN2FoWNEo4FTTCWxneqQB4
vMMeMab3Gp1LBMJCAMDuCoAz+U0AUDZPoTCKKkNbZgtj5WLE7Mg4wgi/wBgWLYnaCrnwsxzSRcUZ
tXC2iA2cOwVrHJiWGbeauY0ttbYNzZBQTDtFXGJSjMJG4Pnl6vTESZ9X6ZNE5dBWuSHut/Wu/Nyk
AKVTDCRQuZmUbEJR+6nDZTLd0H7laTar+De61OHXBn8ntJsaLBxTusl7pVwldFl+z1ececV5s0Mt
N8R+wjryNkP2Hd5+UcjZorhKL5fzkYxlBhmrStM5rBvdGhnm5svIEAQewrsis5vhtg0ZLE4Wfiav
0kmRLjb8w6IvgkFEgbE6m0htSL1KTSuNcPKyQrAFGERnDFJ8G0PlpSV3C7/MXeUB0i0mBr5EEu8G
iC9ZUjQdlJBGaKga60yA9zTaLRwG3BdRS1Dajojqs7J8lC6Dqaz2tRooGqGREgjKFHVFwUP2Mop5
WiTx03gVH9b9HB9SRXQp83SZhdWCnAi7FRYRYBDarVzl3OLNXLHJrs5TZyW2KnJALuptdqp4I0iQ
lHTlbcFq4EXelWFWZnmu7cut3Gp7sirN7HZIGHIJpR0hQTrxdyD5D91RYVjC93bGV7FDpRbaKcRS
blsxaYTYyTLIaporF4qSaLwB7tmTGeTU3s6QypmpmlKdoiqFREfshjNffg/JTs9fylUbrGmaGPXe
5S4+rmo/2inQUjvCMfF14/e65ybXQT6SU3lTPxmZyzLvj7Yg97+WqyPIk9+hsT+b9TFVGDcCsTM+
k8VDmt3tYrTiOBYRllygSPc8zozfzybXl6oMqcGUe2Zzf6p7D0lx+/w9JMoV2346nz4NQvWwtf/V
C9T+qpfM79M7qXKGrVG7KxqAo/8wEuX4BGvM7MqdCet73Cse7RgUYyo0hjrytRhECM/z/nGGrQ3W
zjSB6Oo5Uz/PkxBzL6pZedvO7V4jUul/kSYK8Pj+3t22CEx5jeFO4IgdUJ+8AhwSpXpWuhjkT/PQ
vfg13MV1gbjnjDdIXfxKyNZXFXVnmakn+N7nU/9xUxwPq+cSIA/ppmxiSxnqUP6pLfvyiUC9L9Pv
ryiXbHrlo7lyywkChPrwtipFNLYRzdWsHKfLeVQ+99rlKFjAOKe6Mx5kmf80gEFP5dM/1RsmCbgL
6ypB5EftEtRP4uokSTTGu5IOoNo4XU6LBAY8ymxS55smYSxAB1ZXwnbgtxH2VpQ3NCy6aVjavonA
R53x5fXZyfn5hXc88ZzBycnx2Ufv/PrKuzr3Bt7k/PrScU3vwr0cn1+eeuPrM+fq+PzM88oHQBqz
u3GNgkBEFdfl/ARsMUorqXKzXEPYGje7UkRB3KQIf5SXY0vjqCMpP4iE3iQ0WcgwiZNQYbO5xnF5
kkZ/+dXcDw/iADMR6ma5CWUz21J7WxosC7oRMUMePRPhNlSRGkyOjkQQLKaeiXDLBHFYV3Fk2EBi
CaSQ8C5EQtMM1fPwmggnlFEMSGBqTJMgeppG+/BPErxEpLSUFcMaLrT1vPCz8oTB+rwI+uY5EcWh
bjRm/ty/kVl5XgS+z59yWL15d5C05HQTQpMzZqEFWVK/k2qfDYyg8kN5XqRBu0WCDT8LIBhwqXur
/t7sJvOq4yuqmMJraXC/OzxuQxXseSqw/FH2z2SxzOYbQGtqi4rnBrkmNYYxIVFUqdl7+GMNEZE1
RPLXh0j/+hDZXx8i/zMQqVAQczl78JPCy5MbVRE2AYbv3u2j9hnfpOXjGEVYAMAIsp8Hs7y4TfJ6
zvT7+VTKhQcZsffcIbzN0nkKC5pldZ7qcJrOb3T1z/sGmbLtEE3fqwfN9Wt6pB81nularOMpq4ix
MAx4Wf58F/FrYClAPyjZlkzIgnKEdJXKDhDRg5k/hfKpFqEBazlPIOB6qrQ6XHdSjw+T8HQJldbR
mya8PytEvfva9RQWgBckegav/PF6XiTTsT/N5b9civd6kKbT0hQcdT3uBbJYvv0syy/SX4A5Qh9S
0o38t1jEIh2PkSkhiC+2hQAPDavFy2Qlzl69BLO60pfMR8/0y6WVOkR4uMGyWqTovS0cb/d6e0dq
yqrZWleDFRLMWddTaIxFzGY/BUp5rOhCrQl7P0Ku3uXqejyNsZgFuFrWNVzCq6Oat8jSx6fDRsRb
Atn6tCbw/THE739IgW9VCF2vliiqTs91ypDcZJDM6o5ekEZPZYJE5RG4TpRYHFnPlNZFrMXLI3Ad
07aM9G1Cz0nb6jfL360tmmqnrntWRzSS+sxXdWt+4xWZv2irOV5ByOQ0XhMqHx9vZdrXLP5kQJuL
v4nM7pNQngLVi7RUB0bbqe41ZIkV7K4pEbHQVub5CYvKzfD//W0BHFIMy6ftHbdeZc893WtuFSuW
1RYboVsxehv2NicaYyltDGo4m1T+5HnqpH219IeFWxmTf84cEvpPm0O2/nPnkIA59On4Sl+dxi3f
yKy+1/EnimJEOOh0oYLYrRfeq1Lkz9XEAYaldDODp/MoUfb07v0s8dXNnLLQeaEkeP52VlUD9QH3
rtUuYlydhFPHlS787C6Z35ykalsN3jsrRBCRn9SBjc0Nwup8f5guZHTiz4LIP1RlkQ7xevPY2kaX
Ksg3uuyWMEUyk9XW6eFuI9jJj568UOngR+ufxoKhqkwR6nzXwZehactd/an3lzJfTotX6LZSXHVk
bPX90M9lo9KtjrafgNRHvfXbv5D6+v2/T0sL/723V9XH/yXymCDQUYvjl3jf/NeJ+uYvNiUx77hY
hBkZxFDi/OfbpTyYKTquL5X4UtCqmH5J/HbJV7fSeOdrLxb2W669ZMv6JHJ9vI92v15kq+Jrl3Lj
Q6/lMtvz5TVMu186sgMoG7x/nE0KAhbCwls9I1Mq9aptOu8B6mZgeHzvcs9TB/+PP13+44wAVIQa
6Bzk3rsE8Lmuez9anF+p4gtKL7s7KBpuLNri+nna6v3ha7TUdLxylaUU9qqRR6vlmVrNbqhaPQjo
eJkpDDgnUEo+g1lJc/gCk7U9edcrS4xSdZuk9PKdVfh6SYmY6HqBiVEWmKgi/FDEVy/SxqK60vST
lqv05y1X2c8ttU09rC9Nq6fi6mJ6XWXr1W3YHqdGkBR7fU3XM/+x33KHGRqCdYNiy0jIQ2qCe2Xh
SyOijQZ4xXbETcUkShotCAWWVG+gIX+pIVhsc/cZKke0Nqgb1ZnYYg8vdUpbz+znIZEfCmbWTJC5
O0KUDahthJIE4d0h4H3QQJqSYIqkDcRUA1UNgDVuDlENrKUBKybJoklrfbtaz+LpFndkYlM9Z89w
m02AlnaS3iQQF3Xn4rq6yo40N8vSrLzdXl9uX4/k2pXahzhbzoLVzyMgqmnaMJn72ZN+PPNvZN7X
di+t60YtSvOlv9v66Ybehw8f9vTDIcJDbjHHQO4IG4QMiCEYE4ZlCoGohZlFhkff/yGHFe9HCGQI
Y6VUQ9/6Mo4t/R3Mo/oI05XMi8ltMqsnV88ENGPTscdj4hgE86FBBtQyxADAOZYzGA2HjCIk2tC8
RHULV7CLCyO/1M4WheVC/c5CExoaOGPHFraBx2QAiiKmIcwBN0amS0doMHaQhV4BrUl4Ax0R8Q66
yLZjpbWXQ3CPm+QdDII/sMBG7wDogIys0QiPAJkFihR4YNiu6RoOQ2KA7ZFScRvQTcr7sTqBrzZt
Duofm8gPBlt9mvhjQcNt/Mi0BGh3+xzmr0nRhtuxmM2YhQzMx65BnJEDCqbcEGJoUnc4piPaavuK
Yjveqq2BUwUDcwcnE4hs6Xl1qq8FqDVyx0NsWQYdMJgyWHDDJiYzxNgBTyBjcFTyAtCXNVs3NqH6
EiL2NtQAU/CJYFelJ/LGD59a8SJMOEPc4C5nBkF0aAg0dAwbDRj8p5T8DcVWdL+l3qqHViFUiYD7
xGwoef0l4TaG3KROROg9wsg+3qcKnylcIphrMNPhoE8IQbaAGECxa1tD16WEcsC3zDM1mQ7U8AYz
gU2Jt5mpL9XfZi6H5FzkqxmNONkn5j4G9twZUcwxMhxiAXvgaQyckWuYQ1uM2NjmyB002FfUDlrp
bsESu7AQsUtYz9bzl1GSlnuuA/VO79F9sq+GlX8Bn3D5wIV4aNhjAvMCCWwMR7ZrjEdjxhFGyMUu
4JtUuE6SIIP0cDBe2Ss/WNNuN+K6WdsE6regp2ulPvrZekevpy5hgR2dEbchSBtgNYiQArKIGIih
CphkjLDtctdqKHKTyAZz6reojgZoxfzj+LfqhPPanODq+1wFkSGmQzYaGM4QWZBAzKFhUxcZ4Ohi
NBg5ZDwcfVNZ5ws5/3jSrqmqewJzZBfDBn4WmLv4WRhteeTGzmoPWwLvM3OfKJ+kDh2PxyNDcDA8
sRzLGFJhGhTRMcPO2IZk/S2fbFLeRBbKFmRxsOWUyic+J5EEd0T7ArojyvbR//N2Jc1x5Mb6zl/h
oyIc6MG+HLF69EJ6ozcc+d6r1DEcUuYiW/71zkT1hip0s2Mew6dusopAZgGZ+X2ZiSJGQZsCNZmS
4LjBKE2J50ISLXThYC/MMfPqZqwjn9+M9XIj9QDLRlJXWDP0WAFROjxFB1IqbXQxGXYBSwWkdIUE
AFQk8Sgo58EkQ7uP7zDQ6fSCMj2ZXlCxPtjCt8P0SrmZpPVRqWi545QTpznYrZGS2KDwHUJJ2Bit
zVZ2hTgM1wohNh0h7HjllvAAK4fFGsg7Jq2eMYMLqJmacXS3FhY8iMxJpkqAv6OMgH9hxDghpQBh
E9WvLuGH3RTnV3F/R6uEXU6VUGY5UuLjerWd//bwcLd4+BfuQPwLpjSfYWs7OBqlcyqwCTX6QSHB
I/os8UcOvtJQyQu7qMHp+H0NTu+4aYVddTRwdqQBtveu//7JHyZFNeRMoSL4icibA2KUYOOi4P7Q
yRLndCY5Gon714HXnGrx6XH7HXjjiTL7qfqK7K+2SjjXU2IzUuLp23q9/Dp7XC8fvtxv2+WGrT6j
Mwdj1E/UJ/AEbKEQ6mFLCQNG5zkGgiiVzAkcMru8KnH+uDi3o05uu61S/doT6vQvJre1T2A+9dDC
0bE1VVd0fiOGHFIOVhDNLPgZGzIJxhuiMnU6SG5T8RdVPh2/r8bpHY0G4Gg7GnBb8fYxEqA/eL47
4B6h9u6JKQiT1AOfQZAtBOzBUAB6JeMMAFtWjGCXQkwz8KlkkoqpkUuqFyOEjU5iV9p+OhyteMc5
m5kZh7/efcPH7ESSxijCpANGo50lAVwocVFRbeCaUvEaS+nNeN6Bje9sdGR6akFSuTG4+77FEWdl
vlwPbAJBuYY/E3u8IoLlwkOk4hqNJgkI9B4Ir3IxOwYhRLJrVNvPcMZ6dldvWmnnPRXWEyjwxx8P
95/mgCee0AR4ld+h8ABDII75QpKLSIkhuPkSJFGMCe+Csc6rt7D4UxHOrdfxjkbJRQfvyMVKjpDY
8yM8ob2NGDDvwUZg2xYF4Z8EpUBBoLPEAS0gJQM2A95gJLtIDU6GbaVaqalUS6lHxA5993aIovvN
OPO/3cIu0vjHwqjZENAtBMPACLg1MI/6jfoEdEprTJtQoeXFZejN89qagBxnAs5vtzetWqajKwab
iTdIL/hykTWuJL74aYl1853PRVPJrvgA24tFhUHTAbQPwRIVwQ1EkVUW7FovMJ3pvB+Y3tvqpzpm
tF519cP32wBXYRg1ua5IX3kOcBpiv8qq2lAA31Y0AWTNogkOgIB/FY3hwBcUgKuNyOt1T+T1OPyn
7dPv/nGxfX7cocnB9Hl1XDSVIhOsAfcRUGRAVqqigu1XZAaSxVNwF+Uejd4Xf3RTq8VmGsIVBI2R
FictQe90BSyMKTQb6XLWyA1dQRysEuBgaRnhuWTgYi5wddlsjiP3hI8n129aEXlP7sXIJbWlh3eM
HiK3B0sAfGEAKSYK7EYhgM+BSM2yiBo5ornklZqRR6Ite6KtR3v5ab18edw+//i6/cs7V+1TgT/T
FVQAt3HMAedxQA+z8CREcJgyC25YiDya/CYYcCfBz+/PgL/D9VY/NeVQSrgx/aip9fe/nIJdsUvK
YP4QEUkMIWrtwcdyC7vfK3C51pDosoErwmsVLuo5meJU+t3FRnSxYR3RN+P08MO39f2Xu31CpG72
HdIAeyzcAHQqghV0NBliGcA/54AUe29y9PZPZ0aGa43AknbMUzo5etbb+99PnzMbOAVnoma+KHda
UMIgCAM4EhIsFMAqA+lFodn4+Cb44v2pDM1C3P/e6KSFnOoEvxxDpjotKKNk5QsGdHGhKKYNJ0xb
CdErZeIVQL4CSM9zC46o2D+ty3BtJKrqiKr0SNTDcANjxXeLsroKAiWngs7MDqhSzwyQDgi3NgDn
BpAREmbnk5bSB2VSplez1TrNBb5ar7fqKNNRZzPG2+EOgvXDw/PXIY2qd2lUvcHtBJjdUDADEiBG
EeHAXoMB5xmtwflodopeNtpfDuOf2S/HGxrpnZ6iUOUWi1FtBIN1TTy8/wXz+AP0kfi6KcDaihYd
jSZOwdYRVkC81eD0KZdWh6yNzK9nbXaDn4cKuxta4ZcdzzOn/JCM/fB5koaV4B2VcYl4jSHKQ0Sw
lmaSOWC47IHBZfNGadj97DeteKIn8yHGfqxnGo/5a8QDERg1R5mFiByesAewH1IiQO1F4PB4h9Tx
Sfq6GWU0fyeQzp3qUeAffywe9vC7EkSMp7Ajh+pESb4AvtfEJIYEMUTctJbIAGi/QJwxwV/NfU+n
ukB8T29r1XLTRKhaMTlS69f5PyOM/TifLV7w9RQIvKisikEAwgSes9ZzVQA8akcEYxCLuMPkCU1M
S/AzpQO9Tkn5T+M5fqpn3++fn376OF/+cnu83iiwWi2mCmzYIZP79I+77fNaHKtEdkhAxMCKMZmA
sYHnyBECEUuKMA9IzEtqPBft1mgGumln62CQDZ/vRVhWKhsff3x7ftjLAU9dM6xXIfbIgE2NtIkU
5wFjxVKAMTAD0TwVIW1g4Me68G86cisY7z0bPs4HfF3ffUNaJmqIkDU2eKkkA58acwEGoICF2gIg
AwxdpcgCBM3yFnH6Z5i6fxNeaZXplK/URvMRyN7ebw4PWR5T9zwzHWUQxAuscjgFTzdKRpiECMic
cZ7lSwj7OGwrlJY9oWQndzyi4yAdVmEkGo8KxThGA4miYs9iSfCywMNXHOKwjJmyt6H7nRtH+nQw
xsayfVlm9zSGs0uHConYb+SUvHUc0ESMNCGPUQApLJDgkj11lgfr6KWnfDruqVxaqWm41drykZv6
MH+5X349PmIAMjOFkGH4gvuAeh8Ci8QJiGAiSwhoEHCJYoGmpEpMIrwadK9OqbTynIl9zT03rYKi
o7Vb71cj/lpuX/B9gvtUMAY9QG9W8pCJATRHRKKgK/yCsMQpLyZyr1jr2dphWglWvCPB6lCmW/yb
Q7SkBwHqI07FigJRTUUKu9khH5fgRSJgYiVgowdVWgGaUZr5TWc/wi/d3uhrcfHj8EKZQ7LPDRZP
WS46FSB0Bp5DDAZsHzOyzsYC9u/5Kzm0qwHLVIiRDvOODgu9f4bLl29PM37wWXQIUNn6BDjFEc2y
xNoLoHMrKWgDfMlGMC2l26d4Ok4rwGaa2dZLudwsG+P5XknqX97ZClJt7VQQIgD9xVIiT8ARhJYQ
mSBqgqPi6EmlfYWv+eVyfYcdrutXjWWYv3/bcO2mVWDV0UrZI4idYFhhgygQY4nSGjAstZS4FCxh
0WeabUwAU94Kw3bWYal669ALFrfz+1WtT8m6FlzY2Q48hlx8MAWoArPgv8CYANJyQA6liJx5MCbo
K0nbbpKzgWJ3vVFhrTr+YK3HGboP8/sv/n5+9+NpWysMZsi04Cd6KAZxzcCujkiXheIFHAQEZFgB
RTnsKifim2e3T0U654iPdzRKb9Q076E35kA9ln/963yxPew2rmoG34OF0EKswQ4oSmHFSvDER1q4
pTbYmkw9Nd+TUdrp11PmYRgbp/Aq0UPI/Phwd1vbODG9W7cPUzNmq1CGa6408QbwuRDAh7zSkfjg
ObVOsej4NZtnOtWFkntz302jg5yCJyOxb2/CoXeuCbMYtdJOOYeQ4jV2qXjsxAgkSNCEiUy1BnZu
+GW/9H8v88fnf1+or7UR/4JrOlxudJML19Ft4TpdOSdwBYukGs08agdQCshAUEJjbqYQ70QBT8UM
zTzqpOz/E6ac3tGKvukty8YdW3P+ub1fnZSfRfVLJivmKaYwYEG8koCvowf/ilTXCq+TPtOfcxxt
JMY0bBolxzXnoRvitCsDuxcE27UxiFoYNxEojLAE0E/ArKMCsgdcIFtpTc4Jtoy9vi/jYltG05Vh
lFp0dFDLcR/jerm93x4ATLVVZVnyCRyIDlpg3zRwAi3A2zPjgS04sNnLPYynY46E2nSE0mqE8e+H
A97rfwEHryXvA4M2SKrqonsFERV4ixUGSFWgnlifBZEFkApnySV5kVT1p2iFXZiOsEtzAKBPf5zA
T1mbpT3P6NV4wN7YodFOgOdlxXGdYY+GMIKfxzGaufGfnkzmtmy1WQ9zf0+3nw4ciNWMfMkpcEaJ
dAkim6WCYCAgUbMUNHDqKNKbwaX1Egbo39YI1+hkF7yj05p3fK7/e/w5oTmZ2uSkjKIzWaG1AFPn
ENhIdgZonrWahGwtQUs3HLyHNfraDFad5UIbK15uNHCdRJyBlR1p8Hmx/QeQmh81sYGl9Vp/wAZb
zLABQdUQAUPmxGrwWoYVahg3IP1VfSf70fuC76+2cvPOTnZi3KWOEDNtH+s/4fhRIx6r2MliyYHz
UqThjFCRgFpZQH/eWwFbnZqkHY3GvJ6EPYx+vvBzuKXVwHbsYc7lpNXveb4a6uJ0h/zAac0qN6Q0
yhhUItlw8GqawfOXGexFOOqw2Smm9Hb0ey/JOXQyXL1p1ek4x7kwvahz++unGm123QzaFhoVOMKc
HMZsBOmGMhKzAFQrtEkyXR1lYOwLYQautlKLaXe1WfDF3kv+zyd+hKe13JlFojaDp3JZ4tEM5oBR
UENAUICEJnCa7J8vd+7fZVy50GHym1a6jhkvJg+6/muZ4V+krh93R22OVqFreI9ScuV8JNSziLlc
RRz+COQ0AF/xhrqrHnxvrjOeqXNnq11vQTZ0U0PHyM1+jgDUK0cdwHr9hqiFa6k0dwQgrUIvm4nX
QRHqpAcnq4yN+Wov+zle8LGfYyP8htGO8LvzNO37L0/OfCAiF9gvojPgqyGj7gye+HHSxSylzP0e
huNwIymmMNQy7GtfnEPQuzLt0JfHGLW7ejl+QfrjlFBYszIWIoAQgYP31ABULXeYakvC27dzPkdZ
LlV4xz18ltNpxstyPm4+woMK2/svsADcDu3gwxcEQElljognYMOuSAbwGQWQ5nkEs2Cx5HJVV9Vu
ijPtGMPFVnS+6om+Guc3jhhnwDC1RIZ/t/sRf6o9otxamyj4U2A+QuLxPDyopwHdlcR0VK/0hL8R
mBqujTRddzTVY3Y3KgSyGTYPKE2lGvK0yrDAiJQQwUXJeAhIGzAaJjQFiG+4uWqZXi8Bni3/WW55
R5H5YGR4cOHp7vlYVGW7lcmaqpgtQn5A18LmhA5XksKZpVIGHbgaHQs6GacVYL7sCLAZNzX8/P7I
ktmM89puh4AO5k1ecEWUiICINDpJVbDiAI8xJnBKyr95LukozZna1fsesQa1pgjQCrHa+9X5y7E+
yCx6LM81xb41AtABtGMaCLV0lHAlDQRp6wcTOHnQxzGaqYV1nandGHz+7/rZv2Crhar92qqmHHkI
yUgH3C4zEEIFAPoZ6Kh3VEgTGdD8qzbqbvD+I9tdbIVeT7GYlfxQfPjbhyEtM07zJp1SpEwSHjHz
j1U/Z4Cbcg0blJVidC5vleY9kaCRXQrakX3BOu0Cn5+3Qx82G4LVQLEsBfQC0ZSlgkwSML/1PhNl
IgQqWRST4drgXyc4H/7r5UZ41WmFhw3UE77biymGdCPWfxyH7eK0Ax0kKwRIkCMRKLqRCSCbp6/G
28stmX50z00rcce5OUsv5OBmv9yeVg9p9dj1E31NYkbFBEiZm4J5a0fQ6ROtk0UapuwVxzavdjJH
Sc7wtNuuk3GW9ZQWI6XvHr5s758OePpAYpL3CUiLIJ5h3wye+AxgMSRllnzRWkp6FXio47+q46kU
ZzIZJ3eM9OzAQ+cOlOfD9n49f/R3X9Yg4tFFcDv0W8QYvAcX5hwEMYDXNkdHqE6BqazBxsx/KU3T
EbNV03Xio5uc7vQZtqtlNVGDnzVZEIpwUoELAVJNkFvDdpUQQQBZRB1YCcq83Xb1+Qxfza0+m44+
Czrum1utn35/fvj2dBL03dDAiJ/YRJUz/n9bTlSIWB71hlgGtpi8tCEzE1x01+zTNEy0VxNvONO3
Pr3xptWhpxhn08QBFkTmsOyPnfIe957nIh2eDMeAXzSxgULAjdFEiF/KFHFlDuEwzdk8wuGOVpFO
M7tdyOWB/bX/P+AdkG8841zb2DXLhooIBAv22XCqS4EvMSolBqpBYI59CtiM2YrTKfPahTl0ADzt
qpjsyEjr00SIDYw0KK8AL4WcgQkpIHzcRcCKBmTT0isnR01e7WitJGbekWQ9Tjx+/BhvD0lHbqog
BZgX2J4GKoOFZyEBMGcniVQCOHMuLpqrChA49plkFlxppV13wOZisxpl+edPx9PqGr1GgfDtowqE
KrAuoXQm1gK05tRrHvEobr54Tv0wYCvNpkOYarHejOvGLwCoPj6s1neV3h4jk49YAcuUeJoFvq0l
4yFn8Gk5mJRVEZpfdbh2PMf5YvDpXY02q2XHRFbLcef+5LzqkJjAXpd6GhI/ESaBiXAO9C/WTg9h
AFoDkSKokbMqiyyuykl3p7vyJO0kDbHqHCiyq8240A+wvdzWZtDal43kENwUULEC8nPsrGR4GD3i
eW5nvGWGaarFxbBTxzzLEkq7zTfrKQxwVI3hzi0E2eXX+poaPKxNd4e268s4KDCNkBiJDo82GzBL
z2kmEg9sy5Ss8+7twuRBkHOnXHaXbxp97NQHAi5YT2PL8CKeAYcLuUsIAVlTSWnAANlw5EMGMEAI
AOxSzjxRE4p6jSOfkTjurjXiLtmiIy7nozXZVf9m+LaV7dPzdvnUHBupNlLz6iwIxmCBDPgm5J+C
WKBAqAOEekc9QPIr+Sd+ue1MN9pj7W2NbutOQ5yrB+2GhAm+1fruO4CUfV2wIjEdhM2aEbBnPD0v
gEvzCJQoqAy/wXzdf4i7siY3biT9rl+yL1DgPh5xKhQz3pEtz/G2UbxkrqVubbfaO/Kv30wUWSxU
gd2MmQ6vI+ymWRVAJggk8vxykQzSDjOnYKCdOveB7uwipnxe3fMtzWoJbEUiYVRFhggfhsN2iGAZ
exnBtMyMa4SeAYv+hqhtj7Td2m4cGF8mk8fP90+7dL99PIt3wdnoWPKWc8YdIpB4jN1qQ0LgmsSo
jI/MJpluKws/z3DFZjw/bqhnnTtq4GyZLf1+2yTxmmq245+atCdSySIQrSSm9gsNti+cNA6Kj0oU
LLPbXK/zOa7UpWz7GbwDLGCHC7nUQ2u/tm/3T9tfVoEO1ATkWBeKf2sNoHAFdVENqguwVQQW6nNC
QVctoUgwfW8KsDwzaaPLLF9rGRw2HQZHRLwlMPl/MF4jKcEpQQsoXehLE8xIUnOAQ4pMOUXhVqKr
ZKyeDthDwYIvDb9ag/X+L1Uk87d0lGcUVOWTrk9dpIoh6AFFSJsSYVV1wshhEqqAjWZfcFPVsa+V
LS2E8iDVOiI1yP1u5dP5fP/w8fvdFo0Td7rWXb0oHVM0crg8eMbYuaJYE5o9MUEUp1yh0uVXd7VO
9Fzz/pwet7zuOydZHqZSgS12zZ0qMRDpRIIgBssLL0Y0J3XgBEwGQWiUYGdqJn3qQ2fMhmpIUB33
BHypziR8Bv3yOAO7wmsiKOml92CuZCxf1obB1iiK+FIMY5Hm4HK7TeejLKbXvemHyXX6viwCwtYL
xHPxRGF1L+xzi4o2I8UGxCRTcMrlKwWEp8kXJHfOtTaTt7fcT93Bp3CEHK8NHYsU0nPiGKJWSAPX
RgKFGlhT1ObkqUp/HFxCw+uS6oZlbTvSxEi6OJObYfvr09dWOdIn4CFd7UurhdMUPQYCs+8Q/sUV
Qwl1woukJTVJ3iKgw2KmOVvjs4Z+00loHoxeJxNhldIYWDh5PEaB4mFP5awJDIIpbgGr3mUh3isp
QgCt9Da4pMv4z0GJLMMLQKjoUG+WFX11X8fh67cnNN5GkTgKRFOCVgk0UYVheaFAcliwkYnxPOXk
HOisr1IkNafgmfLy0xstj0b3eFwGKhGfbOpJgx0nsfN7Y3w75ZmKYEIEjinb6CAuYOOxBLa3SKF4
xp9ldTX6Nftn8dqCm6HDzdZ1Kua3CDwEFt5oaMt64SbGufAmEckwMK6zw3LQQpSKVDBtoo7+xbhQ
fKZePv65JbdTmghf7s+2Qnz3j5+/fwW7bapcsRaL8KoiXEIsuNRcV7TADBpLAUXSegqEJyviy7XB
7x6Gr79ctXMaMbUgpWHDdjJ1BitsH1rs8fvdt1/2TZI9hhPF2xEjpX6oiXjRlGQVKSxQVMkisdVV
yLkyNAbg3726yB7dHh/XFK59I9NLzVK4DlrA4ORKiSrPZvEVZqnC2oCkYoTDhGXJQjpCJU/Kwi61
gf67WXzzrVBueH/xUsu17KhT20tR4Jf9dpgFWbTWNf5AYZv6rDLIQ4X4Al6DWZcz4cEqUCFBuWg8
icuBGhJ2rGPV7IRZhvJ+ebqr7WfGNau+toqUKKodw12SoN0oxKHFjJKoiR3BV4MuBkyCbG7yJCym
ubKi7UstO6qzj3Z60g63X75O/nU8LVLnKJwzJAWFUAEexQHYlSAMFFyWPoEVvzBgphHaifWmN/GU
kJ6Ow6e7e3R7/LB/fEQ48ra2Dn6FWkybbZZg3CqEdIZ1xIQ75YgK6LhMisLN2JLz/LgLEncdEodl
Rog/Pnz4PHyfUgIXpS7eGLzdQXnGvH9Bs4WfGrYh4gEok4yM9qafup3mSiileadhZs86GtLeLjW8
i72Icvvvx3LEnKjqGqFj7Jk5rl1kieTAQT3H+IoVYIeblBI6wF3y6dZ8ABz/ejAdn7Y8dCLKw4Eu
oW+3lz0iJVYIVCRmMBrBjEV/l8GKO89I8JQTWQzYOtIhIP2zkISdDXKgHXFU0xPHa/WX/fHLbvhM
hse7S1DI2XMluEk8gMqSCSZZgdYJtqx3PBOwEnJxSUhmFlbWesA5PRva0YI3bDMsUaF/O8xyJcbt
aq17y6sJwykTPFNDtC8IjGMxfQ9MGKW10wmTm8wL9+HfXsqUmL/xpqV1LRQ2nE0Fqj+/L0trURaf
PCYBSYmOOgUb0wtRCAcL0ikps3rBaX67tXiZ/U1Ln+kQLejC9kBd8LHC25/CSbqmdDAE/ESTuxjH
qQkkgtkCkkwnYgv+ACnFHKPLLvPXUOHxcv14JuO6Ajm90rIqWI9V1oUdf7o7fnt8W9G//3o3xjtY
9TzBH/RQKiGUdJyYjJD8DMzFgFEB6V0EUwyEt33BiXMe+comOz9ecMB7HAwLEbK7e3zcXTznGuPK
SLTLUfkCRCeKHS3AtieOB02SMJi1a7WK9jkpMhu3IWvYr62jzYYtfaXpWJv2wEI0SYgV0HSsNdcc
7ufMAlEeARy44ui5KSTy7OCfyD33rxdDWtNzDWpv+d6bltHOj7Ix+6u+zHo7/Nn/57noQcHdJMYc
QTBKnGGgw465JhwRTJRGYEeWi4JTpKJ4cQFw7GfuJXja0m8OHfo3y7sVIR5Bqd3vqtf/I2i3Yynp
ZNu6ZHQB2YsABR5OfoiYg1tItgbzj6UO5SYcrO5EfX66rzbM7YaOeNsNblk5eMpXWOc+CFx2xG6O
Bu5bwXxEEP9IqCoqMqe0Fc9GeZqRF6QNPdI2i8yCDTaKm1CKNdLkNFOJUU9KRJybkCXxnnnCAhCU
fMzMPwtQPB+yIanmOixI2jJ05Yg2i3gCfsbge0UvghWrvlfG4LfOiahsGPqiJIFNC9exKVZGxkAB
fxWYw4mEa5nDHWBo4ER32HOz8p78bnFBe2w9xp0mAW4xuKAzasIesxbB3hYuKGrNq9X3nGdvie5k
rm25vUDsf/nML7AXXL+tMFKYuAUynVhHEW0SyLZWSVDOGCsKzCCplg0nZsM08/NOpHYrtvK8aMft
/d1vM9yNMf2K6kR5ITZg4xALEsxiMRdi+akgaYg6ttM3o7xpp1oXcmw1Vq429Svv9vfzW6UKJWrM
WzraMTyEYoOEFUBoPiEFJzZaSXTS3lMqIxc3JYTNpun/pLMX3rQU2w4bO7rENv08fDvcP0ytn/TY
8yILSY0jyTCQQUlrAloGKBvMag6KY6TyWTigdtCWrN1aJ9oausT9/DGBUKSsGlJjqVjiPlFBghV4
LDD2jQp3kJ5aWOicXiig/FfcTj9eqW/9sSlsBep3PZamjK1f99+/fJqCH3w8LlYqBPdJGc2rGBFv
CUsORWKScxNz6gOHzcdaELHvEMH02bja3n/9fjh+niXd21MaE42gPQp08lQVIGOQ2IFwj9HyKLiH
FddXQMzmQ7bUdJT8rdlNYazffjg+btsSbA5aiEEtzKYYgIxgYUnw8hPRCWF5oN7/USXYF+parg4d
yQQ/5HmNwVAbm/vM1riyJiVLcBmRZAuwlhDqNSVDHJOZgt0qrOX/po3YCPaWjoaFoVMiCF9ON9Kv
/7yUCM674CRqKUsYqfNSwIb16IHzoHopn6wKgTPX1wAuA7Z0bGSHjt0yxf/d/m4/4k0PnycN8OQx
om70SLtSbEJERq5wdak0cGMGhKZhYDO5AJdRvE3Srua6JnFXL7a87dZ61nZDl+3X3n38uAirmQL3
GEfbPBbsLgUnwGpBisw5CBdDeqFhEox4heKPTfLddms7wmK7k/OQ7U/7T8fHbw/fm6BtxX6HzWxj
jbODuJAqgqoigV5jVIxUR234/2PMtiW74XrXE0o7R8+wENhGY9uAPcIdfUbIU8bARoMdL5NDnJQk
SYVz0syCvNacpSum7HLUliTXuQ1322WY76f9F7A7/nbc/+9F5RhPgXMVLtVrjqU6gSY35gkGwyJi
qAdVZIpK3aRrrKe5tujL91qmtkOPqclp0DhMsIjpglAyOndAReKc6UR8Chx78oC5kQQlBXQ8arkD
hXJRpnhlyAVZa2/ZtqJBNcfyAjBUXTDVl6vhg6tOGPQYek9SRBTsYrDcBpQSWsu6dXQjttu/jl50
ef6mpXLbI32/SpbdYvfSv4+9nztVCqAFM65BbQLTGMFTuSPYHISYAFI8MZOzvClw3050Ffd99s6C
nbUDYEf3y54bo1/s28nsqjfarP/P3DmmtLEl1rx8RJUqqpDg4ZgymgOYHpo7Z152jj1r4M3feNPS
vZYqO6ZWOeV17nh/dzh+enqYCouZHN2a8AFt/1RKMgWzYBBlo8iIKc2ORNByk3NFK/O8N6Yzy7XK
4tWLDVe1zdqKq5URhDAcu/23Gnt83I5NOsfwh9Mn9TIrz6TxmeiabJEEw2giJUkUUC3Rac9u2nPY
OiOdp7p+glavtWx1jKId29EOis4kAsvH/BuiGaOJzmoSYA1Nnj/X3jTFuCQQuROjfKCvEisNminG
SY8NF9Ur1hee6bny4ulpwzanHbb52Aa4JrX9/mV4q6ZsBgxbga2VrVHEm4jxH9TLGWxHETnszwBf
mkXm83yMdnK+TtfZyRV+TiynBG7s+kNhJMRGOH1Cv4g0tZcuAREMR8MlCoYCN0R5kzlofy69kOY2
jX8tjn563NAupevQriY75vdLxqoa0QOjiQY7lspQ676rR0KiaeWKSJl5v6j7/r2XrrqTHfyxHZjO
y9SNU28NWLLRsWuoYBgvQxuzBJD8pWBalsAGzjX9vljCk7doTHv2QoX9uXPH8309GrpdJ+Kxq1hJ
J9jXv/3w8cPnp0/Hu0Vb56kGvIClV2yUhPGELRE9aAEZFhRUeR+p9Rks/ldCf+3TsuBn1+PnsAyh
NgJ3yk9152iqqhUpMZOEIRBQJ7BDMcXiXM0NSHZ0YDzf4G01fkum5B0y5TIj7ofh7tPD/W+NE11j
41AuEzaTwFZOCmxTqS3sWM8yZSEaepP1dB77Smb46WlLtZMdqt2woPofH+JJNp6V3uon9dIrAZKW
FWxBJTWIKrhM4OAxGZxKkaqbIDEvo/cpvzxvae+UWcGXm0s5yRdgd+5wEdW5L8FYBpWc6JhBPkTN
QYphb1mDyWE6W3Wl099yvIaYoQPuCl+aHtAoekkeH4+b4+cTxlqFY2IV4suLTIMmBjGYhDWZBI71
Xz6VkJThvOiXW3k24z+DLtq8t+DG9bhZbouvD8d5MuLbD/j/NWOrKr01biHQMs2mEGPBchMYF7Co
VMF6ZZNLEi929LotOPChpaWNGB3bZMjd0AnDwJdTvvSXYfvLZIHaiioKSnsEpSmBwEBABmrhWrEW
7D2XfI6wjUTou+hmY7U0bDp38n5LpyJ8/8HHPy2q74vjlPkM2incMtglNYDlDxeKMyzDWc7FRPZH
Vd/P6HvT8sB6jNkJef1d/OFjL3FTZlU4dmJKAR3M1HESggWVjiXQ3jzoQ8y/buLmjJAFC539f5BL
NKYP+wd0sQ932/0csfksH2V2QmbQs1VEHOOkJGx9j2X3cIdq7ZIx6qbg6HqaKxt9/eKbloO1z2nP
pJV6vErvN/+9vfwwWpraXdhlbI6KHiaMQ8hMrHaBYD09tiFlxizCOvNR5tPvB7u2OfcDeloagybt
N0+fRtglXE6mRmAUvCgLFUazRAyWAYpoQQHFcwAaXWQ+gdpH9W3ABZcZriEWXN5oeNh2Gknhl1dx
uiYPxuyrU8VeYcFprxkxWWJpVcBEIOx4CPp0YYXpXOS/dZgvzxc86B4P5twrd5zwbbiERSv+J8+w
b/FQovsH1BQtSNC1xEaWFDQFe2uBqt8O1NDQw8mDL6cyo/95Gh6Gu2/Hu0sfUn229YwvcDwlI9yA
llTzvRxXniQL2j6zWmjZL7NfDrqgyHUoElPDiA93n5Y4kJJLifVcunbQkgbDJQwT+5PiGfNk02sl
ck2TtyTLoUPy3u35GnATI82N0glqb0rJEW8xmcnBSoKx4uEn9dyBueKY8zcjbtYw9nXITXw8J/zA
N+sdiF+u0IW29wO6M2xNT8UlBwMEboI86m0ClCPiHewElbDTD7WqvNQ3Doe8ligDj1oyt7sOmfDv
ScPEevMj6NtTIFzQM5xHZJIaLQpREqOLAjHsBfZoVyzIoJygedE+azFYQ4ikazX9IMWyb++XCx3Y
6B61lsy4D1Jhb3iN+gKWB3NNCpgbrqCv+gq0eDtiS0xHBB6kmnJaf3r/oVuW4bOC69BjQkXNHTVY
iu6J0Uoxl6134VVv9xkZLfmddjj45eSIqT1lLi6FqQ2SLJYh/BZJHMxIQQWspXWJSF5EgtsnwEnq
ruV8xAUphw4phnewwmat/C5n2OKkiLyQAyLdUwOCkDFHaBDJGcGjUy9njr3QxK95paV+WOt5B7Vy
kPz1/RznbKYdaR1S8RaoxevEB4olxtjHyxgwprnj+iYBNB//CqT0+37y7kF3QDcPepUc+nOMTefl
6EG2Z0x5pXC0pZRgriOMd5QKrgM4U/KmgkEYtk8vPGjJ7GSAHvSw9NWfPVGHBlZu7EcL1ks1fRGC
DK5s+C/sF58rjkUkYAhnpaROwpWb3FEvrfj6vZahToLeQW/oEkX//tvxMAt+Ypf4EdSCwV0La19g
YTCW74lVNILelIoQVoEV4Z4FYZiN29K16exog1GzFWzuz/t/fsMmaXKszRo/oG6SFeeI+WMRKR1s
QiBLeMTJDWDTC9Ba8stSDge/fhrx6ZuWwk2P7BX4wl8+Pj0cBvThOFNDHvgHJXNmLGLTKVnzpGgR
GFiG/42WCUaNE469UEx/GvlaQf3p8YLqjvAzu2W7NIxonKHMzluhVp2zYKIClUt5LPhmETUBjSmb
cM0KGqgT9nl/3nLcGXUOmF5pKI7aFR7v1CV0EhAKA6iSjnKiwL4soFeho6lgA4qUHeEhSO0kFTmV
23qUvtChtCHcrhvMY3vsZSwM2X86nou8xAnl2WWaXdSeaIutCzFfxmN5odOgNCSQGjfCsFdozPfP
wGa+b2h26xRUhLQ/dBYb28/PhbHQ3ruSFOHaAsVMgqGKnbZE8VJbm6wON1OMYz/f+L6lertdU73Z
sEuS5BOu8kUXUoKBelg7RHrjI0L3U8zt80yAuADKeVAatENqeEnLVMlmrIaO7dqZBV9e6IAF/HoE
M/C/Lq7+6ggNxZYIUpVkxLIHMaqJCw5uYU6Fy9xiQPda58x2wIacveyQs5dT7urX4cssdbVCIluq
hLOJOO8w3bpYBN1WmIXGrA2g2utFVdFsjMXch87celnk/Kf9w2b/cP94LhSrgttommlElDtE9jEU
oUphSYJ2PIFlGHN4XgieB+3voPPTllzD1+Qe6BLZbYuJ7r8ev43gPyMmihVv9SjEzx+rdaSzDDwS
0FIRQxCUQkwJJkWzJBBuxv5fb0e2ozgOfPdX+GUkkDYodk4j8WCSwDKQZgXpmdmnKE1CN1qOEQka
zd9vVcKRBALdmtH4AQm74irbZZePOviDAI1HBHdc/1R9owC510+LkHllS4Ra+3C+WvcPyyXqRbDc
AsTuHD326lx4fRU9L6joHgWVB4TsKwOL25ZglgXs8V4zgguWZvuBC0y1LddPZ5h5fjqbRbDabhdJ
3aDLVuH4YnFlYAwwfi+I+z7ejnC7L2HV7wNDe7/pHqBKQY14/QbxUd2hxN+FQV5V7c12mWlazkBx
YSOjaGhLJw3bU/DmD2NOSmG8K1zCsfKmqLR5YZXo6Bb3LNX3PDQc9YOK4Oy6UewNQcAKrlu6AoIQ
fT+j0aQ+MBXY3JqG5kHzXOO3q8adybnz/lDTgxCMx9fjxfRLTN7+RM5rt/+6gMmAzs+kgMHROD4/
eK6lgMy2DBgqDhP9D93+X6gjVfqvx5MtFuYN5Y7TUT43LFSLJ6PLbYHHpW1wCWuX5aJhEZewIoBw
chgzdNVx0JnyL94WlCEqjSg0b2qNiLXz8eQqrJdRGHLBVFeZcKTCBOonmhIWYpAmCtNBrnMGJ5O6
zlxz9C5AaFk3qLBEw6Yov7Ge7F5fa64/BcgEwwIB70n012yaHixOOkh5aRoeRqM2JfvIBqmM5/5m
qQxJiAdN3W9h4fF38Wp5iuswP2w2gK8LLXei9TqlmyhO6MtPusveQEx83+/wiTJJaRbtX5PcDjV7
W6Wngm7eY1mU/hcud/vw+yruUlbkve2TKA4X8JslXaqWM9MkC9Fx4jG/ivhR9eqvVQ9/Sq2CHsjx
4RvhapvcwgcCkNkfw0m++BR1cMv9OwOo6Xb9k6KWBZbslvSsitGlwS6L1j0djc99CgejVZxss56m
Gx3Nb1n2pzZNf6ASYRzuDlkItB22ebhpwBj3hOgwv8X5pzb5Cqf+6GWdQB2I/1wz62hD+gMKgd97
GArDbzGo9IyJmaesEp6eOm6pkFXGhRW1hABUlMy84Wj6RIN///FoQ/oymgXPckJ6l9QEeiwmzpCi
0yhktTTDQ+ItYGZb5hhBV3lwzXvpDJq+RfskLr5IG2AR1D06dIZJjm8Vh3ym1D/QYevkk89z+nkU
0NdCGx4qX+ziOjWM3wFtFYfgJG4jqC1MAD19eCqiwE5RHMPflAJleH9QGpE2ga3tNllTiTl0CpuT
ho6wx8SXk8nUudtdlAMvaP4JtBXFm9W23Qit8TGZB9IZ0+GznLnN1RrYNDLPYGjpg8RAIPkwicKc
BBl4d0At4FvyNXnBXbmfd0ojKLI4CUNXBvIRAaJjIOjIl0PvAazBoV/DcDJ6GnsuDHBzv3LWsbHW
wPsWPBgCzrEHwvD5aeRM3fskwLZjTDb5pKWoHNMMaasd7pPjNNgkG3Tv05z08UdmbTAN5IQ+HNmO
GBagf1Fgq0NaYfKCuc+g6hDWGPI/UEsDBBQAAgAIALKb80ho23WmVUoAAOFtAQAiABwARHVtcFJl
bmRlclRyZWUtNzQ1MjYtY3Jhc2gtbG9nLnR4dFVUCQADEOKOVxDijld1eAsAAQT1AQAABBQAAADs
XWtzo7jS/vzyK/hwKuvMxAkSCIRr3kw5vsxmNrcTO5mts7VFcREJJxi8gHN5f/3bEtjGtyQknt3Z
c/BuZWwQraelVqufloCLJHZZmrbkxU93MhpfsshjyTBhTP7N0AjWf5cu7Ox2uSh8Dq7jcDJi6cH1
+cnVae/gw8Hi9dKxx6Is8AOWtDbXIl2zJA3iaLmCz58/S53YY/LwacwWT/5K9aauyY0zOwvu2S7g
S6Ai+WJJqYun7DaOQAuVYPN36ZKl4zhKAydcEJfeyr9hDbS8SlkiH3eXcRAFSVLXztjBMBgtAcEK
0puK0USmjMwWpi2M902ky3BMUaTzgbxOt1PbleHUrzJS9uF/IjeQ1kdUobsAcRwn2cpVCEntKI6e
RvEkla+uShi7KtIROVKaBmmbTdTVO01dR2azoxtHRr9rtI9IV5IkjlxuP9h3TB4EkcvkozjOWrJO
FEWRU+bGkZdKUiex01vmycPbhNnerA4FqgnSsZ25t/IfEzaBNnDj0b49Hodsf2QHUTMTF0hS79Fl
4wyQL/ZZ79eOddTuWu1OpzcYyI3B8ZdB78v1bqk87+hZx/3Suzyzjs+u2yfHcFG3e8mvsjNZeVSK
j+PYnsOYL0nXp/IluwERqXzG7ATKTM+1pGbzUJa4QMsa9n4drthvIQwphmfylmjODzDV503zmyzr
VPnldzlpPh4kD4/y4PR/O+ff1pg+tLFoBGitohlbrVc2G7Rv6cxX+94euEkwzjpxwnKg/zPTHCkm
9pDmGPK3YV9UJH+UVVNClWRQkzLF1OSvg06r9fV4eArj+7jzafqz7XlfWMQSO4uTw1bLDyI7DP6P
HUdhEDHeUw1RMr+qKAk9MMhgkACKKM129nLZJ0F0dzTxfZbs7AJQMHIJV0PqupRqxgxpq8VGQTYI
4wcrHlu25+VQjqHOZOJyFB+KqnmZjp2yXpQlTx92dlutf1hKqxWPc70au41VhAI7x6kSSa2M06A+
7xWo+hb8kTe007v+JHKhsk/3ceDJqxXubUsv6KVkEjXWtblmSFo1VZhLTIKXO7DVgpbz42TUz81B
dHlD9CrSJFK5Cqoaq1VMTY0b2bcAvPckgzFkpykbOeGTqA2MXa/YNY6ja16pqcGM74QsgnQiGRWh
YxP57kzatzi5C4M0a7UuQjuaayDkYyrRqtINBaM10qdyeS1pQ5jZNRO2Jb5fMv8iSz6tR3W4J6t4
Eu7l1im8xnl0fg/dCba0JyN9Eh4KWzENyayMFxF9Dd5xHIa5PV6f5mPfpBJSqglnmsamhnhyHIHY
fwdQeDQOQtaOvAHLfmaTBOoL3DSvjBvOURi7d9Ph0ntkrnBMHwQIA0CgaiA8BzuKHILRZFbCxqEN
0ydIgr5FuKI6ju/6hSTGh69ARBCRkFpREjMNZ0kSpoiqEtK2JolsTZK+NUlGRUmGqTH5fiSc5TCe
X8AdiapJiFbzJJ7CHHtm7dzYwHGDhU0yNjX2qeFBMJrFHTsM+4k9yq0PI7AZs1qNxDBZ4W1gALBk
nLCMe8qiVl5BY8nQp7PK4Nz5N7iI6W9elIdlpZ8Q1dqLE/bXwbUdTqZl2snNCYyuoogYQIqiSbja
MCYK/Mdyie5zeMtVbwetCfEGqgzWVf9ssIVrPoMA3Zv58Vl0nDtnMH+Mq+qCHSevb5zEPnhN7xmD
uRBFgujmktlpHP11miKY4/GCR/zGnLmO8qqqPrZdD1QtynEIpxBh5yH5TNG/XSvwkHGNHvu3LYPs
Slir1EQaYY6plJuodw/elaPiIXyrdWtHXsjEwcasVG5gPeFtAFonBif0yH3KrIS4IJ9diaJxyAty
993xuIVUFfCSKniZAy6fGEv1DO3kholwKGEL1aSNxYI7e2uv5N30oWj9afw0LcZ5JAiD0H1BMgRI
r4mdEDWgv0pVCcUx1UFxvaLihsHomxUXQTKEJqtYVAWwGJWMxkWqa6M5ljMx5eWWchKDgxSVrMWA
DENu8PJ55WDOUDut1BK2b1ADLbVEYYKvQjEjdBxL+WqBifBBZFZERHXqzhF5BcMXso+j7vnpS3bI
c2lzLzA99S2IvPihjDDvR40WuKephOmAwnRXUpWq2FV72a7mcpeUaSz0+cqAF/B0qmyAR6FpVVTZ
1Hxv2dQ2YJpjgA4sWxkBR6PiSu3iaY5HybxikdEIXFHFP0XiZobiPCr8o6hZI3JjpbDAYSBAoVZE
wTxq5G5GpA3A2xZ5g93DfI6xnZB9S0AeSz6lmddqWRbifxwwnqLoc0p82G3s7j2j5odD+bAIeoR6
0H+NKRKYcpDClao05zBMNWqqG5UqJWPmY9U0F6ol4LRUUrUpiYlWNOUJGaHo3OXzvChPcbFIZOh4
icZ6sDs80/JTaI8cz/6psbsBOyqZxKw6UMIE36fqVZXQVPfV9vA9lV2wCrrGKIy/xChoxfb0NbUU
IXL1515rtZVKQ160lJjSICpd7V4+4ClvBrMqINXwXw8ozbOK/FcfggAv7w5CNiDSjV1JqzZBeAS5
ui2Lrij7lyC6j++YxY9bQD8nSWQ9FGbHjx3yMtxAik78sAM9d9iY/tjhP0UmEmISy/KLXrRDy7FT
1tI0aDoNVQaquAsYp2Kn36dYhM+bFwSUEC/MU7L8/OGevMH6ADMEtHPELaQpvFmrzS9YdxRil0D4
rzR6iBsXKjdMmNw0tWLltq+XAhZhP3kY6c0GtDjIR7OGoYIqLh4pug7UxC5VILiKkJiuGq3IYYAy
RSoXWrdcvghtNABBKoLwPYw2gmDZYI6jxG3mBz+sWR+YdwRM5as4Dd4ZelWYLvPeMcDereDOYeP9
MnbyhQWyeTgblZuFvjCc3416vRd4t9jqzoP+lc6j0hTlm77nl6eoeS6i1BBlZ4IQxIxrS+WECyAQ
pSIEpgKxnkHI5vOfZXX6l5PoJI7HeY/kXSFSEdomHJ1+PnjBx5CFSYeL78eTyBMLWwtIDN/3KdWx
gpkmi1qvzk7Ozy+s44HVaZ+cHJ99sc6vhtbw3Gpbw+PT3qU4fNTu/GL1r846w+PzM8vifaJIBFer
FPm+ocolVbux0EPkYokpEbWaPFMlqrdGXsrdnIIkolWSRzxHV2hZHvwjNMWaREhFWTYQMbksaTBm
buAHruB5ukR0sS1E3vwp244B2Aj4FUUMRawb0JqUSsSoKERzdW8uxDANYkiEVhWCfFwSYigGtI9Z
VR3mlpBAiwESXakkhCGFL+4WQgwEIkxN0mEohIHjPYXePvwJnE1CRE8ZPlKJa4JTshPBemabH9Cz
mx54DcXJ5siO7BuWiM0PcDx9SjM2su4gOGDhIoRyzZi4BgZ6f8c4a9U1MQrE5oeS7DUaLNiZgynW
mWxNy1ujm8TK92LwNWE80wa3qsPTTc2G4fAQJ3d/iPL5fL4AtJA2zutcEFeWRjBWVc/Lm9l6+GMG
EakziOqPD1H78SGSt0DUKIeYstGDHWRWGtzANLsA0P34cR+tH05lWTb2kQdR+HyKz26DtDBICEVC
xsaWD7P7vIB7m8RRDBx1ku+8+RTG0Y3M/5SjHHHuEwr3+Kpd8QkP5cPSAplBKu7HgenDcR19OYRd
j/g1sDigd2q2pBMyKK64ewe0og5SZWckIsNChRKsSRSAN7P4xoJPs0J8LSZwTycZezzcKcN7qxL5
kiWpuF+Hg6cwp89wcXu8irIg7Nthyv50LfZkJ47DPD+MKm4M4roYtjnX5Wdmj6E7XBv8/Q37S3rE
UCtuOOJK8ET7khJgoe4k4RtVB1N18hV1reIWJJDvERvN5bfTp0hkfz4tVDllJks4RMqDD1k+WotQ
q8hu6aTifiWAwjeLbQWK2KNxEQdR1niPuGKnRcWNTKAIIw7OCcQCE83BWeMkfnwqZd2zCYidJ5He
h3jvXQ3I8/aNEvPJ91lVmiF1zjGnBS0n9sTWJBWJzVKVJBHfM+aSZhGioYvdUhWnbebJy4Lmk7be
KseWZ4Ory5NOHEVMMN6T2PbeEl0izWPyyOZBYXpjZYk9XhdzvEKQomv+TBAPK5dn2tdQK+ZoZWo1
YMl94LJTkHoRi+bAaHmqe41Y1XBWGRtSDbQ082yDsS0K7J+xjAd1G0IhD2NXw8BNflvqzkben7uy
lbA0niQu4wd4la3fuc2r2pKPXoa9XJPmY8ZMDM1wNsjtybL4nmxB05Gq5dtCtzOGqLy1MWTK2x1D
xo8fm1MY5l+Ph/J0a6n4wpLiJoU3wEeqDvDH3M/eWu49j5beFrY72IWprxRkxJEXcJOz7u0k4Itz
eSy2IWqZHx3lAUuxW7tqQI40ne984qtpF3ZyF0Q3JzHfgAvfO1NEMGk8HY/GYb4oI2Ll6S6YgRuP
mXci1vo+8ciN5xQXtyktFJmmHWdFVqMsnqOzxnwm/7R6EvrJ9p4sl7fBe0O0Eqc5LNKPlTfuU+Yo
JlttP/79kqWTMHtF2+YNl28Rmh4/4unweTCe79M+Aa0PG7OvP1DzlRd88xD+P0Qf5afZauSC4Qu8
O/9xqu78YEMS61XvP6HM9iEK+/v3i9iIR6veGwPqM6rl8f4m9ddrPr3FSq98D4eB7TX3cCSTYv0k
p4dEq36vDOXx4ark0o/GsyuvWKt+Bw11IGyw/nU2yFToIUyfW189vu/p+drq8dfLf52pABWhEroO
6t33VMDX6/Xuu+PzoSVWPqvfJkMd7YUVzte00vpFzNdc+fw6ZdU7c0ydqG9clax4/42paiq/e0BY
+UqiYMZ6Eal6Ow4I1hwF5YIfMn+4UTamprhBZ0uMWtseoybbZQMmhNrQHDKEOmBcLJR/ZuG4DrXr
ULsOtetQuw6161C7DrXfF2rDDIKY58+8nJhl80n2Arogr7AfJ50wYFHGb4Cfb9Lm1bJkjoYjXFj2
xEbldSSEPKJsRnMrvuez/xFEMCJY1LXKa0RIVXy6uRov8E7tO8YD1va9HYht7a/Q+QXaYFYH6b5r
a+b3UG+nsLmty51u4awY+Itm0l/aqvk9EG/Yvvk9qnqJKqE/jyrh70WV1O9IlbStUSWyPaqkb5cq
IaXmSjVXqrlSzZVqrlRzpZor1Vyp5ko1V6q5Us2Vaq60wpVQzZVqrlRzpZor1Vyp5ko1V6q5Us2V
aq5Uc6WaK9VcaYUr4Zor1Vyp5ko1V6q5Us2Vaq5Uc6WaK9VcqeZKNVequdIKV1JrrlRzpZor1Vyp
5ko1V6q5Us2Vaq5Uc6WaK9VcqeZKK1xJq7lSzZVqrlRzpZor1Vyp5ko1V6q5Us2Vaq5Uc6WaK61w
JfLjPxUbLT793oW+HTEvsPfHof3Ekn2b87I3PP6eIDBnNrLHtyDREm+2WXkI/uvfs+Qavl56z9KS
4DSMH8Qz7NUlsnbKNRnCWHfix3WSgaupDjNk5TH/qVAXTonX2WB9hbpwuxcS1+M0FcM1mU9kP7jJ
G5e/N068SMEQIdd27J1s7yHw+pYfAo/+Bk+BR/RvgJE/P7Pb/1I/qr7OsdQ5ljrHUudY6hxLnWPZ
6qPqbdVUGMsfKA8zbau17mH187P5ga6d2Tk7MpWqT7C3VUPRtbUV5iFAv2B8c56k6pWTKJqmUTNv
QReEZqzQZPZ6sVx48X7jPdm9tZPCQzyfKiGVUyUAhbw7VfI2JaYJkTde/ea0h6ap/mvSHm/D9Uxy
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
Y2/VS7+pRTpIlnSapasvUEsDBBQAAgAIAAyb80hXGBNJ2gAAAFABAAAsABwAZWRpdGluZy9wYXN0
ZWJvYXJkL3Bhc3RlLW5vcGx1Z2luLXN0ZGVyci50eHRVVAkAA9jgjlfY4I5XdXgLAAEE9QEAAAQU
AAAAdY1PS8NAEMXv/RRzkkSkk4OCDCVQtLkoKok0581m0ixsM2F3UvHb29iAInh8f37v7crytSQo
jPPcggqYYHt3YohTEzjKFCxDJwF61ZEQvVjje4lK91mWIZ+cX8ePboV78dORIz4aNbirK6y5eXKK
1ffErB4k8Jk3LQdcXtB2+MwHYz/P+fbire04Jne3WQoEUY06CyV3bxo2ywbRXySHfyMiG9goJ1aG
qFC/F0SVBjcc4OrmByuCOfLsXGp7tiq/Dl+kZbjO50LUlqibBqtOhk0j4iFZ6DRPV19QSwMEFAAC
AAgADJvzSFcYE0naAAAAUAEAADIAHABlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9wbHVnaW4t
eGh0bWwtc3RkZXJyLnR4dFVUCQAD2OCOV9jgjld1eAsAAQT1AQAABBQAAAB1jU9Lw0AQxe/9FHOS
RKSTg4IMJVC0uSgqiTTnzWbSLGwzYXdS8dvb2IAieHx/fu/tyvK1JCiM89yCCphge3diiFMTOMoU
LEMnAXrVkRC9WON7iUr3WZYhn5xfx49uhXvx05EjPho1uKsrrLl5corV98SsHiTwmTctB1xe0Hb4
zAdjP8/59uKt7Tgmd7dZCgRRjToLJXdvGjbLBtFfJId/IyIb2CgnVoaoUL8XRJUGNxzg6uYHK4I5
8uxcanu2Kr8OX6RluM7nQtSWqJsGq06GTSPiIVnoNE9XX1BLAwQUAAIACAANm/NId02LHeMAAAB3
AQAALAAcAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC1zdGRlcnIudHh0VVQJAAPZ
4I5X2eCOV3V4CwABBPUBAAAEFAAAAHWPQUvDQBCF7/0Vc5JEpONBL0sJFG0uFpWkNOfJZjYupJmw
OxH6701sRBF6nPfe92ZmVxRvhYGcfMcNqAAF++E/GeJYB44yBsvgJICbAgYRj9KNJ474TEq4q0qs
uH7xins6y6gHjhqRG6++b/GnICLVvB76dnUVL7+D8/QkgbETajjgcgxah3tuyZ4nf3vR1nYYkseH
+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
tIWgmcDxO4aULxw+Vpp+IKj5fgWSUhKy2QhuFGtRukTJ2wugjCT/Gf16ohDqOwGjz659fsNz2CcU
JcsNBRQ05P9XJ6v3AcKq7zvK8cnGezbeHIxf1a67QUkQQ/lSbryq6R6XQ8cQh4TN4jsfrcajDOCj
Wy8XpLELwbTOHJaIvkG54Smc5M3kU8d292okl+WuPq24EoTbC7xxMHZnnyCznf/t60CzGtaGBfYP
s2ZI9ZL09UDBSD0gPZcbsFJ3RtjQlhHXEBzBxTdsSz3jUkv/PUj1x42uNHhm38YHvCDKUpTjTek+
TUbzp28VYcG+6Q4tJ0yrKAnI12N2/HNOPWTV0bmiozo1b7gTGvKJXhcNxoD/AVBLAwQUAAIACACL
m/NI6up39ZEAAAD6AAAATAAcAGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtdmlkZW8tcmdiNTY1LWNyYXNoLWxvZy50eHRVVAkAA8XhjlfF4Y5XdXgLAAEE
9QEAAAQUAAAAtc6xDoIwEIDh3ae4jQnboqLpLE5Ek0YnY0hpT2iCHLmWGN5eXsL1X76/MuZmNFxs
GNBDImC0HjLxiMhRtHMYfEtJ1KFly4uoqYviHGw3UkzBGZyI01rmz2Rw9Mh3RmwKqcpcHnN5yNVp
X8iywW9Uard1bGOfaXhWzCNB8YIrQZxdD+/VB2LwgdEl4kX/eWLzA1BLAwQUAAIACACLm/NIOId/
Ku4DAADACwAASQAcAGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtdmlkZW8tcmdiNTY1LXN0ZGVyci50eHRVVAkAA8XhjlfF4Y5XdXgLAAEE9QEAAAQUAAAA
1VbbjuJGEH3nK/wQIRihxReML5qMxHJJmDADGqPhIYpQu7s8eDFuq22zM/n6dNtucxW7Wq0S5Q1T
VadOn7p0Dzxv/LKczp+VyWA6G49cZbcO4yiMwQv/BuVBURvdVxrlO0i7I5Sh7njldVfg/xFmXY/m
DEP3Ee2Rh1mYZEPKoPuFWx6nyyeUbabDT5uWZphtxVX2NCTKozd03dp4Lz8HhPwGMTCUUfbgukEY
o4hnnxY8hpRAC9M4zcrwMrbyD2nsZSgDpdkprbMw3n7OgwCY0mwrf9awyq/KtWx/NTRFUdR3TdMM
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
bLVlqy1bbdlqy1b7x1ptqCA2iZN5lmNVlhfZcxgCrvCwaHZR04f/6TL7Qi0pF2gowqV7irojfJPG
tmNL24zmin3m1f8ddDCsWbRN4Rswtqsl7mY1cRqf4GtCG9b9G5xmmD1D86jNj9AGTxxkFHdvGj9E
HVh53qPnUPqw+1PMe7XX+zly+bM9QGTEGn/mJvsRIvNTEK9nPj9F1WNUCf06qqT/LKpk/ESqZD4b
VbKejyrZz0uVbEmVJFWSVElSJUmVJFWSVElSJUmVJFWSVElSJUmVulTJkVRJUiVJlSRVklRJUiVJ
lSRVklRJUiVJlSRVklSpS5VcSZUkVZJUSVIlSZUkVZJUSVIlSZUkVZJUSVIlSZW6VMmTVElSJUmV
JFWSVElSJUmVJFWSVElSJUmVJFWSVKlLlZAmuZLkSpIrSa4kuZLkSpIrSa4kuZLkSpIrSa4kudIK
V2JvjTl8L//ctORKkitJriS5kuRKkis965+bdlyiEcL/KDRUWt9f9wenF0f5F/SNobzL8TTRv0Lt
uPRVJ2sV8kZg9q7LRb9j2MJkyPNM1+MejEBoTRpL5u/f4cKb93QuvTrvYcpjCVMegGL9MOX5PiNm
xOY7r/5u+uJ5RvIU+vJ9uB4gKd8nUFIRSUUepSL60tujIvDbmMQp3qnoW++nGYmTNCNp8dycZPnl
SidU5XpO4mlO5JkODBpcf5bP6wbrjNe8SuoxUbpD1MP0ckjGeHIF51OxFyTD9G3aLKjsNS+Selho
SCLTZUJnPjsEnx2djWZv2ETmujdKPYaUJJaapJdcygl/c6lJX8/7bC9ksp/vhUzOM7+QCRkrcYmn
cVrs7P8PX9+UrzT7e73SjI9ODf1tWNzt7NPfRvyXttgo8VCsY/U9yUmZRo3sUfPCVJaJWwne677N
7OlKwtBR+/vny5LnX3Dxmvf/4+VmiL7d7HB0LJeb5HKTXG6Sy01yuUkuN8nlJrncJJeb5HKTXG6S
y02/crnJklREUhFJRSQVkVREUhFJRSQVkVREUhFJRSQV+fVUxJZURFIRSUUkFZFURFIRSUUkFZFU
RFIRSUUkFfn1VMSRVERSEUlFJBWRVERSEUlFJBWRVERSEUlFJBX59VTElVREUhFJRSQVkVREUhFJ
RSQVkVREUhFJRSQV+fVUxJNURFIRSUUkFZFURFIRSUUkFZFURFIRSUUkFfnlVETXJBWRVERSEUlF
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
eDbfBNv5+3PuY3C331ab/Y0r32Pb+eaPWbF+n31fLa8CVl779p7Pl7MF/NzmVwGpXtzk2xmy1+6u
1ys+J578M/HwR6VV0AO+PjwfXb3lnc0BOyz6sToHXycB+h9X+/ceSt29vfwdoIcJ3lkXwcEN5SqY
rrfzl2sh1VBMAliarZb52/aaw7qaTS4i/ctlsPkTHSiXs/XHdgbYPuBRvqzhKebLa0rYkE8uGPvl
cvD7+2o7f3rJQQgCOIimQ3ET/Ak3YcBfSz7UkwsBUg9VKTAEykuViq7J7QWBS7XKhvzmwiioKhjc
u5vR3Zdg+t/fXNDz+Tq6nz7a8eD6+Okrurs9SG4CpGjDsbbZ4jq1qzDVkbrFoiuf5fzUB2xY4otu
vs3f82X5jU1PWS8V89G9QTH/oPrl7oo+jnYgfMLJzo8Qt4N0l18AdAcewpQ5qZswBFhkk0Fly/Dk
B6SW/JznPrCcvx38+hD8OpoGz2XYAnTEYr1s9hyDEQgAuotelHsG+fISi0YKse6/uL8VwNifL5fw
5yaA9uJ2S2X0XA7ADn/LXwKLV4I7sKR6EOvbwcSOx3fJ6YYxaYbRZF/0Yr58Xb1d9pbmDKTmr8hO
NJ0/w5fpyYdbupAFN+OH8UkIUPRhapPb4ObR3qf9JZGGdjJ42MLgPvfAKMxo+6L1bu8Qy8jtjz6G
r5OZ7zI7dSdAREMzGfyeP+EQm/hv9/asQryzWWqn9kzTGAEdB0WxW+PH0Xg6+vLQ27UaxsFsNprY
G3dGrGS+6Hj05dalMHb762cUtB8Unbr/TM9A5WKosOjjl1Fyl56GAObf7eDV684AHbT6u5Uo7Ned
Nnotx2PvR0GzfkB5Tu+mdnxWH8Cq46Ys+q8A3piPTW3glANmjxb0Paj6wf8AUEsDBBQAAgAIAEGb
80iUfnzOOAQAAA8MAABGABwAZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmlu
Zy1yZXNpemUtZXZlbnQtY291bnQtc3RkZXJyLnR4dFVUCQADOeGOVznhjld1eAsAAQT1AQAABBQA
AADFVt9v4jgQfs9fkYcTgqo6EgiQRD2kLoU7uv2lBpWH0ylybGfJEmLkOG33/vobx3ESCltptyvd
S1UyM9/3eWY848sgmD+ulvd35uJyeTO/8s1dmGRpktEg+ZeaU9My+k8sLXY0718hgfrzddBf0+hz
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
NdwkamkohBmJ2WIlgIS1mP9bbUev1Vo4CXdqq3WHjuSU5hYpBU4YPjoaNg9CT0ipI4aPs6UgCQ6t
PHX/qFYzBElimqKTOsZOE3HCf6PpM2JOMXYqxr5l4oQ6QBtR2ICaFOUrKf79R07ENWtcUw/NH+Li
K0xw91S4qmcLeJdznsZK6HENB/lTeCXBdrFNwMuShAuJ1OVwibp6EJl7JX1ZzKZF+lPGmLpEXEGH
FZXIl6WBTohBhu6OIbTIOYZquuRgc1w3TxApPx7y3ZzlK4dYZJlO2O9+5BvyIFMIcyLSDzWlYy7m
JEtxsQuAuyymIe4HROvv0CDqnUdLsk2y4GtguNDEFGd782y4t2XBSnDGs3SGdrjSfM7pXvfmCOdB
mmJ1qi67VmJHZvgJJZ9SgUTOjsg34RNEkwi7kca4CT5Jaeo1JQHLPE+pBgQLC5NUBsm/y6TAuTfZ
JPTmQn03lqscwOr2jD0fDCFA0lB9w5+GvttKSHcVVEFLEeMOxOcV4AdgYTc0fsbS+JVBqFHOXluN
vwFQSwMECgAAAAAAUZvzSAAAAAAAAAAAAAAAAAwAHABmYXN0L3BhcnNlci9VVAkAA1nhjlcT4o5X
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALKb80gm1c+1OEUAAMZHAQAtABwAZmFzdC9wYXJzZXIv
cGFyc2VyLXlpZWxkLXRpbWluZy1jcmFzaC1sb2cudHh0VVQJAAMQ4o5XWeGOV3V4CwABBPUBAAAE
FAAAAOxdbXOjxrL+fPkVfDi1R95d7TIMrypfp2S9JN74rSzbm0pqixpgsDlGoADy2vfX354ZJCEk
2Z5d7zk5KVypRIGh++menu5+YJDO8yygRdFT1/+G8+nsgqYhzS9zStU/bGya6ItyTsrb5lD4+3id
JfMpLT5enx1fnYw+vv24fr1yFNK0jKOY5r3dWpRrmhdxljYV/PTTT8ogC6l6+Tij6yd/c6yuZaid
U1LG93QP8OWgSD1vGHX+WN5mKbcCOV+UC1rMsrSI/WRNXHGr/qEb1hflqqC5ejRs4jA1pChDUtKP
l/G0AUTXkNXV7C5yVeT2dLOnux9Mx1XhmKYpZxN1m20nJFDh1G8q0j7AP6baQcYYOZqzBxBnWV5u
XIWQ0k+z9HGazQv16qqGcYiRhcxDrWubfbeLhtaga1nI7Q4s+9AeD+3+oTlUFIUhV/tfyR1VJ3Ea
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
adtsl+om35XAbx1f0fwuTm/OMr6JEN53J4jAIz+eDkeJ8MFVIjq5Q90PshELz+jQD+k+T4t4HWd+
C8Fck0mpZ9pkOYXhdRFvxMPk/vJJGCcaPnoB74PX5j8NwnBQl3xabz7Glq86bLn/+PtrVoyT8hl9
W3Vcdft+cvyIlyBnmW611/QMrD7oTN/+hbrPdf+ZiBH+J78/8TeyRwWDDlZMfIF3629n6tZfbElq
ZluyiC0aQYrz9sdFbJKx2/JLMJ/ZepVMrzN/teWTr4mYrfehWxpdsQ89H9c164p7GXr7/f42T76W
JTc+dL55t0vT238LAEJiiLx/X/RLAiOk2d+6p3V6f2JW97NOP17/+4IAVIwb6Lr45P6EAL6Tk5P7
49HlwBN3m9pv9bd9/Ym7Ss/ppdU3jp5z5bfvDbX9dgGODPLCO0Ftv0Pgh4Tv7BWzfImFTyklNlp/
pcAPdV/FleCvZTRYK1uzHfElgw3RVX1zdNXYbKptQKoN3YEg1YHJxRL0E0tGMtWWqbZMtWWqLVNt
mWrLVPuVqbZPMQujqZcTUbYKslcwBJXCXpZ3k5ilJf8SLy+zz9SyfIaGI5y7p6hZrW/SUBwa6no0
t+J9Ff2PIIMRyaLZOiP3KVEje72aMA7P6R3jCevhPY0THs6fYfMTtMFpDzJ41Xa472HeVj3nNi53
sm2ubeLPu8l8anvc90C8Zsvc91D1FFXCfxxV0r4XVSLfkSrpG6NKxuaokrlZqmRKqiSpkqRKkipJ
qiSpkqRKkipJqiSpkqRKkipJqrRIlSxJlSRVklRJUiVJlSRVklRJUiVJlSRVklRJUiVJlRapki2p
kqRKkipJqiSpkqRKkipJqiSpkqRKkipJqiSp0iJVciRVklRJUiVJlSRVklRJUiVJlSRVklRJUiVJ
lSRVWqRKWJVcSXIlyZUkV5JcSXIlyZUkV5JcSXIlyZUkV5JcaYkriafG9D7In5uWXElyJcmVJFeS
XElypY1yJQhjKmPVj0JDpHXdVT84PTtbHTimJa2yHEdtS4e0wFJNfaXCKhHo1ZnbLN8hZmsyFOq6
7VQ9GIDQktWWTJ+/Uwmvnwu5g4Jbmtce4tuUp/WPTXMoxqspz8uMmBCbF179YvoS6iR6Dn15Ga5v
kJSXCZRURFKRJ6mINvf0qAD6bcjCmO4V/LH344SFUZywONs0J5l/uNI5V7makziqFTi6BYMG11+m
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
egwtoiPqgDr4EhMijIMSnyr+fXNtN6bqhOTFlt73/N6mY6iXZcxkbiY10Feu62nF0SJDUpvoEpMG
8fvFdLaYfcLqTQ7x2QBH78sZsmLSXFXVaPNv1JrazhdWJn2nnNHT9pf6UkQnA0XI5IaA++eaKIfg
u4QaonwEPTbxfGHqt1cUx5QMNGiP5OAJSLAtntCiPZG4PCzVLlPq+1oHq+aGbWA8engc5CDur7if
XKjkY7oWrnTM9yR/A1BLAwQKAAAAAABLm/NIAAAAAAAAAAAAAAAALwAcAGh0dHAvdGVzdHMvY29u
dGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvVVQJAANN4Y5XE+KOV3V4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABLm/NIm8SaoIQAAADAAAAAWAAcAGh0dHAvdGVzdHMvY29udGVudGRpc3Bv
c2l0aW9uYXR0YWNobWVudHNhbmRib3gvYXQtaW1wb3J0LXN0eWxlc2hlZXRzLWRpc2FibGVkLXN0
ZGVyci50eHRVVAkAA03hjldN4Y5XdXgLAAEE9QEAAAQUAAAAncyxCsIwEMbxvU9xoy5CWmoxiEtd
LAiCg4I4xPSMgeNOkqvi2xtfQfimPx+/YSIwqzJbL21tAN/ZmGZB4h1BUp/wKUkjh0vXtF17hfUW
b1PYWMjI4x5zdgFPUR+9UwySPhZmPBHNq+FvOXLUH3ksehTe8V0snA89eGFGr6WVz8tRHKsvUEsD
BAoAAAAAAJab80gAAAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9tZWRpYS9VVAkAA9vhjlcT4o5X
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJab80gAAAAAAAAAAAAAAAAaABwAaHR0cC90ZXN0cy9t
ZWRpYS9jbGVhcmtleS9VVAkAA9vhjlcT4o5XdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAJab80jv
E/QbzgUAAIgQAAA8ABwAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXktaGxzLWFl
czEyOC1jcmFzaC1sb2cudHh0VVQJAAPb4Y5X2+GOV3V4CwABBPUBAAAEFAAAANVXWXPaSBB+Xv2K
edhygcsBHYCQ1nEV4UjwGpsyJH5IpVyD1IJZxAw1GvnYX789ugDb62wl2eslZTHdX3/99TGTS0EC
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
eAsAAQT1AQAABBQAAADdk8FKA0EMhs/2KXK0l9KphbaDeHB70NKCIEVBPGRn0+nQMVNmsopvb1Y8
6UmXXoS5ZEi+JP9PVm0Es9BnJzNr5kBvxZiLUUwOI2RxmY4pS2D/NJsaM3+GyyXVrb+yUIibDZWC
nh6C7CsU8im/WzjnNsbhYPVncuAgHfJe6SHxLe+Shce7ClxiJif6pzmvGEPTo0sh+Rp/nbzXjGst
OljQwki9wIJZqsS74NuM3bSf+qSXY6QuukFuImULFbo9NTAGYqy1J9ToDqpq6bfVtlDuNFsGJ/YH
W/0ZnH13Z3Ey309Gnoz/Ofk3V/ABUEsDBAoAAAAAAGmb80gAAAAAAAAAAAAAAAAeABwAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvVVQJAAOF4Y5XE+KOV3V4CwABBPUBAAAEFAAAAFBLAwQU
AAIACABcm/NIo1QwEEwBAACXBAAAQgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWFwcGVuZC1idWZmZXItc3RkZXJyLnR4dFVUCQADcOGOV3Dhjld1eAsAAQT1AQAA
BBQAAADNkc1PwkAQxe/+FXNDDqUflIWSeBCRaCIJEfVCiBl2p7Bxu9vMbtX611sTPy7Gq9xeXiYz
v/dmkxbTTExHw0Ge5FsoGfdLtLp0Rj2uGn+YtYE8eL23aAwpIOazKBVJLuD0aaG/hy+ZHT/eW3qt
SQZS11aHOQbsw+mapLMKemVo6x5gcBWQla6xgZhUv3MgXruGJV2gPFB84ZiWpDT+qCgdiWyQ5Um8
Yhdct4h8vHBcYbhCqwyxj5fuWVP8gfQhFl2Qimz44htIMNoSpGKYnGRJKqJkHKUFfMYXA5FPYN5U
9S1ZRXzHRJvxcJSNp5NJPi7EFq731rG2e+jSBHbmTle0Q0/gKcCuBWl0dw92JLHp3POHNVa1oVlT
lsRz7WuD7Q22xPCCHlCprs3gAMG3Vh7YWf1G/DvaKDletOwPtPx/0fLjbU0cL1pxDA99B1BLAwQU
AAIACABgm/NIJtK4vT8BAAB6AwAAUAAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1zdGRlcnIudHh0VVQJAANz4Y5X
c+GOV3V4CwABBPUBAAAEFAAAAOWQzW7CMBCE7zzF3oAD5IeQEKQeChQVqUiotL0ghBZ7A1YdO1o7
bdOnb5Ba+hDcRqPR7nyzi/JpnE7H2TDO0z0UjKc1GlVYLQ+b2p1njScHTp0Mak0SiPluEKVhkkLv
famu4Qdmy4dXQ18VCU9yZZRfoMc+9LYkrJHQLXxTdQG9LYGMsLXxxCT7rQPB1tYsaI7iTMHcMq1J
KvxXg2icxsM4CYMNW2/bQ+SCpeUS/SMaqYldsLYfioJLpYtYtiAlGf/XbyhAK0MQpaOws7tCj6Lw
BqHj8a1Ax2GUDsJsEOXwi58PR2kCi7qsnslI4hcm2mWjcZxNJ5Mky5M9rE7GsjInaGk8W/2iSjqi
I3Dk4diA0Kr9B0cSWLfu/dsWy0rTrC4K4oVylcbmCRti+EQHKGW7preA4BojzmyN+ibu/ABQSwME
FAACAAgAYZvzSECkVy8/AQAAegMAAFIAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1zdGRlcnIudHh0VVQJAAN1
4Y5XdeGOV3V4CwABBPUBAAAEFAAAAOWQzW7CQAyE7zyFb8AB8gNJCFIPBYqKVCRUaC8IIbPrwKqb
3ci7aZs+fcOh5SG4jcYjez7vo3wap9MkHyZhfICC8bxGowqr5XFTu8us8eTAqbNBrUkCMT8MojQc
p9D7WKr/8BOz5eOboe+KhCe5Msov0GMfelsS1kjoFr6puoDelkBG2Np4YpL91oFga2sWNEdxoWBu
mdYkFd7UIErSeBiPw2DD1tt2EblgablE/4xGamIXrO2nouBa6SqWLUhJxv/1GwrQyhBE6Sjs7G/Q
0fgOoePRvUDHYZQOwmwQ5XDFz6ZhNEySDBZ1Wb2SkcQ7Jtpno6SdTSbjLE8PsDoby8qcoaXxbPVO
lXRCR+DIw6kBoVV7D04ksG7dx/ctlpWmWV0UxAvlKo3NCzbE8IUOUMr2m94CgmuMuLA16oe48wtQ
SwMEFAACAAgAZZvzSOBFvLiMAAAAmwAAADkAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1wbGF5LXN0ZGVyci50eHRVVAkAA33hjld94Y5XdXgLAAEE9QEAAAQUAAAA
DcmxDoIwEIDh3ae4F8CAKKVsGhYTJyUuxuFoD2xSruQKMfXpZfvz/Ye8qLJcZYWGQjcH1eR6X5cV
tOs034ktSSdEL1WetlfXR6WrN1xHDuJ4BBN4keA7N1GPkSDSAn0C4x3xVmRw3fT8fOA0e7qsw0DS
ujh7TDdMJPDFCGgtWVgCIMTE5iOB3Y9k9wdQSwMEFAACAAgAZ5vzSKlMJgKnAAAABwMAADsAHABo
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1yZW1vdmUtc3RkZXJyLnR4
dFVUCQADgeGOV4Hhjld1eAsAAQT1AQAABBQAAADNzrEOgjAUBdDdr3g/gKEgtmXTsJg4KXExDqU8
sAm05BVi6tfbD9BZlpube5eTpWyfpDxhEpgsM16yfJsJAdUyThe0LVJNiHeeF/ETMmb6gFNvHRnb
g3Z2JjfUZsRGeQSPMzQB9GDQxoZaLXE93K5qnAY8Ll2HVBk/DSqcVUCCl/Kg2hZbmB0o8MHqJzlr
3kib7BtNpj9oYsdl8V9avl4aXy9NroH2AVBLAwQUAAIACABpm/NIAWXiEKUAAADRAQAARgAcAGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlci1tb2Rl
LXN0ZGVyci50eHRVVAkAA4XhjleF4Y5XdXgLAAEE9QEAAAQUAAAAxdC9DoIwFAXg3ae4L4Ch/BXY
NCwmTkpcjENpL9iktOQWYurTywOoo24n5yxfThKzIop5xCpgVZ3wmvFtkjJolnE6oVVILSFeeZqv
W1lmvMpvcBisI20HkM7O5EyrR+yER/A4QxdAGo12TSjFsra7y1mMk8H90vdIjfaTEeEoAhI8hAeh
FCqYHQjwwco7OaufSJvkLS3/QOMZK/hfaVn85bXiV7QXUEsDBBQAAgAIAGub80jFQKzp7QAAAF8B
AAAtABwAaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1zdGRlcnIudHh0VVQJAAOJ
4Y5XieGOV3V4CwABBPUBAAAEFAAAAIWPT2vDMAzF7/0UOvWWOAkbaQyhlLZjhx1G6E5lBzdWE4P/
zZYH/fZz2NrrpMt7/J6EdK473rS8qcruufmE19PpfcCvhJHgqqbFHpLxL8oK/TG87awc0DjCnZQB
Y+QgfgXUTVtWues8lrOQgoaZyHPGHohvqqpiBqUS7FtJdAXNwRFplIV2QpbjpLZWGOzzSpfCiJFR
vqT08rq+R/tuqTXdPPbCe61GQcpZljOr87/P/Nl9QEF4DMGFvTMGLXFAO7pkCQNKEBZwgRwuN0II
wk4IGu1EMxgVjaBxhgLi7JKWcHmwBlS867bbPK1+AFBLAwQUAAIACABrm/NIQPUmb78AAACSAQAA
LwAcAGh0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy1zdGRlcnIudHh0VVQJAAOK
4Y5XiuGOV3V4CwABBPUBAAAEFAAAAKWQsW4CMQyG595TeISlag4k2ggxcDcAgrFiqBh8iQkRwTkl
PqG+fUPF1E6lkhdL/r9P/jdDAPVWRtczXSuga1Zq8hyiwQBJTKI+JvHsPmZTpV4PMG+pG9xCQybZ
Uc7oaBudKxfLEjprKMFAtto8DhZM0kQ+ejckFB957+XUxEsf6LatkG2gpKFBcyILL0CMXXFCh+ZM
bPN/5CTvmdKaj7H1RvQvtoZR9TT+Yaj/ZGB7L+77LxRyMX0WLg8hjKsvUEsDBBQAAgAIAGyb80h1
INdORwEAAHQCAAAvABwAaHR0cC90ZXN0cy9tZWRpYS90ZXh0LXNlcnZlZC1hcy10ZXh0LXN0ZGVy
ci50eHRVVAkAA4vhjleL4Y5XdXgLAAEE9QEAAAQUAAAAzZBNSwMxEIbv/RVzEj10Pwu1wSplVVQU
Sq0olB7SzXQ3kJ2syUTtvzfF1rNHJ3OYmffNQzIPwUA+iSmKsSgKwE+f52VibC0NOK4d9taxpmY1
HuX5+RournETmksBHkk9ofeywVfNbSUZG+t2Ak4pGHM2ePiHZE2a98jnSNeW7mlrBbzNK6gtEdYc
Z9HzIY1Wg9WBXyZZVq7hbrmcL/A9oGfY6mbfXoeuv9UkzcvicUZqgZ1lnCnlIl2A/CkgL8ZJFk8e
r0UvBGegZe5Fmv5K4jzLsrRDpWX6oRXaIbfOMhtUQ2OlSupGX5HscBqRNrgafcrxJQl/8cnROp3s
44R3PU4ZvzjtjdT0h38c2sph3PSNc9ZVtuuQWABSbQMxOlQgCXAvCtjsGMFJahAMUsMtdNp3kusW
huBbG4yCza9WgPbHejTKysE3UEsDBAoAAAAAAHqb80gAAAAAAAAAAAAAAAAQABwAaHR0cC90ZXN0
cy9taXNjL1VUCQADp+GOVxPijld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAYJvzSF6E9GnmAAAA
YgEAAC0AHABodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRVVAkA
A3Thjld04Y5XdXgLAAEE9QEAAAQUAAAAdY1BS8NAEIXv/RVzkkSkk4qiDCUg2lwUlUTa83YzSVeS
TNidCP57ExtRCjKn99735m3y/CUnyIxruAQVMN4e3AdDGPaegwzeMlTi4aDaE+Lq8maZjLei2yRJ
sHXB4g8X0ErbmxCW7329wK00QzuaD0YNbnYF7nj/6BSLb3hS9+IZGzEle5x30Vb4xLWxn2N+d/SW
tu+j66skBoKgRp2FnKtX9ev5B9FpJYV/IyLr2ShHVrqgsHvLiAr1rqvh7OK3lnnT8uQcsS1blT+D
z1IynKcTELQkqobOqpNuvRdpIJrbcRovvgBQSwMEFAACAAgAYZvzSFR2S07FAAAA/gAAAD8AHABo
dHRwL3Rlc3RzL21pc2MvZGVsZXRlLWZyYW1lLWR1cmluZy1yZWFkeXN0YXRlY2hhbmdlLXN0ZGVy
ci50eHRVVAkAA3Xhjld14Y5XdXgLAAEE9QEAAAQUAAAATY5NS8NAFEX3/RV3qWBlJjUZG8RNY1dB
ih+rUsqQvNaHyUx4eanor3cKCr1wFxcO3JMZW8yNm9sl7LLMXGnsbVbkqKZ+eKHQkrwJ0dYtcpeX
98XCubsdNhIHEv1Gx6OCw8l33OIQ5dzeawlrDK6GS2xE40OIiiYG9Rzw/F7X17PtxWuxw0MK1tVq
s6+5Z6UWjylY8/FvVzx+rnzzQcnhxElv/0r671PiSSRZfAkrhyPilO7OMA7c0Q1UptB4JWjED0mc
/QJQSwMEFAACAAgAYZvzSF4r9tLEAAAA/gAAAFsAHABodHRwL3Rlc3RzL21pc2MvZGVsZXRlLWZy
YW1lLWR1cmluZy1yZWFkeXN0YXRlY2hhbmdlLXdpdGgtZ2MtYWZ0ZXItdmlkZW8tcmVtb3ZhbC1z
dGRlcnIudHh0VVQJAAN14Y5XdeGOV3V4CwABBPUBAAAEFAAAAE2OTUvDQBRF9/0Vd6lgZaY1HTuI
m8aughQ/VqWUIXmtD5OZ8PJS0V/vFBR64S4uHLhnZuxiatzULmGXfua8sbe2KFCOXf9CsSF5E6Kt
mxeu8PeLuXN3O2wk9ST6jZYHBcdTaLnBIcm5XVAPawyu+ktsQB1iTIo6RQ0c8fxeVdeT7eXrDg85
WJerzb7ijpUaPOZgzce/XfLwuQr1B2WHE2e9/Svpv4/Hk0i2+BJWjkekMd+dYRy4pRuojLEOStCE
H5I0+QVQSwMEFAACAAgAepvzSBU1NZJ6AAAAvAAAACoAHABodHRwL3Rlc3RzL21pc2MveHNsdC1i
YWQtaW1wb3J0LXN0ZGVyci50eHRVVAkAA6fhjlen4Y5XdXgLAAEE9QEAAAQUAAAAjY5BDsMgDATv
eYU/QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScjqYCqohE+xAinWYveb4/XGma2+A4h+EI9
e8UuQzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0niXSHCqGmfGhNgScd/uip95PO6lywxLz9Q
SwMECgAAAAAAdZvzSAAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUCQADneGO
VxPijld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAYJvzSM8c0ULLAAAA3QEAAFUAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1yZW1vdGUtdmlkZW8tYmxvY2tlZC1uby1j
cm9zc29yaWdpbi1zdGRlcnIudHh0VVQJAANz4Y5Xc+GOV3V4CwABBPUBAAAEFAAAAKWQvW7DMAyE
5/opOCaLUcdIf4QgQ5yhDZqx6FB0oCVGEcJQgUSj6NtHbrt1KgxwIYH7jne7gaF5LGMWd2b5APSZ
m6atOVpkSGoTXWLSIP79vl0u2g9YPcshrg1w9L6cISsmzXVdV7t/o7bUD76wMumeckZPLz/UTRGd
DBQhk5sCHp/rohyCHxJqiPIW9NjF84Vp3J5QHFMy0KE9koNbIMG+eEKP9kTi8rRUr5nS2Nc2WDV/
2AZm1c18koO43+K+c6GSj+mrcGVgnldXUEsDBBQAAgAIAGCb80hm64y22wAAAKwCAABIABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLWxvY2FsaG9z
dC1zdGRlcnIudHh0VVQJAANz4Y5Xc+GOV3V4CwABBPUBAAAEFAAAAM2RwUoDQQyGz/YpcrQXcbtU
6VB6cHuwRUEQUZAesrPpdOiYlJms4tubFW8eF0HIJSH58ufPtk9QLSzc7MrNF0AfparqiyQeE2T1
mU6SNXJ4va7ns3oHyzW1fVg5KMTdPZWCgZ6jHhpUCpI/HZxzn9J0sv2H5MhRB+Sj0aPwhvfi4OWh
AS/M5NVq1vOOKXaj9OuP/DsJwTpubOjowAYTjQIrZm2E9zH0GQe13/7I2ynRkN0id4mygwb9gTq4
BGJsbSe06I/mahl31VOhPHi2jl7dL7b9Z3L2l3//AlBLAwQUAAIACABgm/NIT/zPMSMBAAAVAwAA
RwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1y
ZWRpcmVjdC1zdGRlcnIudHh0VVQJAAN04Y5XdOGOV3V4CwABBPUBAAAEFAAAAM2STWvDMAyGz+uv
0HE7rDQpTVMzCmt62MoGpaVsEHpwHMUx9eRiO/v69VPKdtm1DCZ8sZGfV3qlVWchmfERaSYmM8C3
kCTjoXVKWvBReTw6Hw3pcjqepOM93Cyx6vRcQECqHzEEqfHJxLaQEbXzHwIuqbP2arD6h2RDJvbI
LdONo3tqnIDndQHKEaGK/MY5r9KaelD+8Id5ljKDA4rN7WILcw5obBfaNVfKOhu0KANuMQooR+/T
Js+mOWZZNhntYcF1HWAErQxAjq4/0Tvw2LBmRxGSs4yK3z49OK0546QlgD9arM8BR+lj4agxuvOy
t+U0CPdytNjf7iTVFr2AQqoWa+4OSVasCZVUBzYlnNfVLqDvh7M0ii39zeZFGFz85YJ9AVBLAwQK
AAAAAABvm/NIAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L1VUCQADkeGOVxPijld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAYJvzSIc7RG/X
AAAA+AEAAEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hdWRp
by1yZWRpcmVjdC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA3Phjldz4Y5XdXgLAAEE9QEAAAQUAAAA
pZAxSwRBDIVr91ek1EZuXU65QSzcK/RQEEQUxCI7k5sbLibHTFbx3zsrdnYupAm89z3e24wM7aqe
Ozt3yxXQZ2nb7pTVI0M2n+mg2ZLE14tuueje4HJNwxivHBSyeyoFI91pjFVxXU17B9XIFJrN/8GG
2XqVbYpjRksqz8l2vb4fmKbvBiUwZQc9+h0FWAAJDjUTBvR7klDmhJM9Fcq3stV18ub+sB0cN0cn
sxIk/A730wuNouavypWReQ45SbIJ+Vjpdaepg4OXhx68ipCftquaD+QUmm9QSwMEFAACAAgAXZvz
SHSBmAA0AQAA0QIAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9hdWRpby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQJAANy4Y5XcuGOV3V4CwABBPUB
AAAEFAAAAKWS0UvDMBDGn91fcY8KUlpLOw11yDpEZaI4REF8SNNbFpYlI7kq+++9bj4ovtkQAvn4
7ne5j1RVVcG10dMd4YICyg1MeP2WFiQpzr1+cPiEshXww81HC34JOTQsRriCcpymRQnk/RrSpMzH
+biEiCphCZTfbC0SnkK2L40wuWRXsTeM7joL2QVvcVaK4hzwM2ZZnlivpIVAKuDWBzJOv43zIs3f
obp1Sz8RYL3WLEMkGSgmyX9QM2w6zayIdI8xSo3zA3XKRWsBXGixHQLuH1d7tzS6C5KMdy+GVvUh
Eb7dSNdaDAJqqVbYQgroZMM9oZFqja6Nw6Z6jhj6vGZGkfjDFnA8OjoZ1MG138Ht55KE2ocdc11n
7RCycYZ65ILpnFM/g4DXx5p/k3Oo+uzY8yGtaUdfUEsDBBQAAgAIAGCb80jCNsHhpwAAAIoBAABY
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmwtZG9l
cy1ub3QtbWF0Y2gtc291cmNlLXNlbGYtc3RkZXJyLnR4dFVUCQADc+GOV3Phjld1eAsAAQT1AQAA
BBQAAADdj7EOgjAURXe/oiMOUKkCQuKgRBMHIwkjMeRZXrBaKXmtJvy9GAf9Brdzp3NuFaaZiLMo
DcIkPjHl8A526GRdoivI9EhuYFa1HWiNDUOilR+KZBkx77ZT7QYsHs9XlG5LZKjed0/QqgGHzZR5
6neBY7w0D5KYg7wgzw3hARsFX/LDKBaBWMz4qHbGDT1aXmgYkPgo+1C9fvcFkmnVIRMinU+qfzjx
AlBLAwQKAAAAAABkm/NIAAAAAAAAAAAAAAAARAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvVVQJAAN74Y5XE+KOV3V4
CwABBPUBAAAEFAAAAFBLAwQUAAIACABkm/NITALEpOgAAAAmAwAAeQAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBn
cmFkZS1pbnNlY3VyZS1hdWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAA3vh
jld74Y5XdXgLAAEE9QEAAAQUAAAAzVE7T8MwEN75FTfCQGKnVgPeqhTEwICiMlUMxrkWi/gc/GDg
13MtFWJAIDEA8nLn+17St5bnumm1aCspZndwtVrd9PhUMGXYuO2HtYtoMl7EGGIXvEfKGpBsKJQx
4gCGAHdHDYUi2rAl98LfDzlPEDFNgRKCEuJo/bUj4w/r0g09WnTP2B/4nRnHe2MfNSvuD5/ow/E+
BpzKZj5vT2DD8w6k61o2bSX4SX2m1KxmVijRYqozu1V+Ut9l43VZ/HTpyIy3/fWCOKAPGRfDwGJJ
g3kb4N2JaYyFEsefhVC/Xon6x5Wov6rkFVBLAwQKAAAAAABmm/NIAAAAAAAAAAAAAAAAPQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RP
TS9VVAkAA4DhjlcT4o5XdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGWb80hfxualNQEAANECAABT
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hh
ZG93RE9NL2FsbG93LWF1ZGlvLXN0ZGVyci50eHRVVAkAA33hjld94Y5XdXgLAAEE9QEAAAQUAAAA
pZLRS8MwEMaf3V9xjwpSWse6NdQh6xCVieIQBfEhTW9ZWJaM5Krsv/e6+aD4ZkMI5OO73+U+UpZl
CddGz/aESwootzDl9VtakqS48PrB4RPKRsAPNx8N+BUMoWYxwhXk4zQd5UDebyBNikmeT3KIqBKW
QPntziLhOWSH0gjTS3aNDobBXWshK3iLi7FIC8DPmGXDxHolLQRSAXc+kHH6bTwsRpN3KG/dyk8F
WK81yxBJBopJ8h/UHOtWMysi3WOMUuPiSJ1x0UYAF1ps+oC7x1XerYxugyTj3YuhdXVMhG830jUW
g4BKqjU2kAI6WXNPqKXaoGtiv6meI4Yur7lRJP6wBZwOTs56dXDNd3CHuSSh9mHPXNda24dsnKEO
uWQ659TNIOD1seLf5ByqLjv2fEhrmsEXUEsDBBQAAgAIAGab80hB7UwouwAAAJIBAABTABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9N
L2FsbG93LXZpZGVvLXN0ZGVyci50eHRVVAkAA3/hjld/4Y5XdXgLAAEE9QEAAAQUAAAApZCxigIx
EIbr26eYUpvjohyeQSzcLTzRUizEYjYZY9g4kWQW8e2NYnfdCdMMzP99zL/qA6hpGT2aaKWArlmp
8WeIBgMkMYkuMYlnt5+Mp98/B5g11PZuriGTbChndLSOzpWLRQl1GkowkK1W/wcLJqkjH73rE4qP
vPNyquP5EuixLZFtoKShRnMiC19AjG1xQoumI7b5HTnJNlP65WNsvBH9h61hUH0M3zKwfRX3/AuF
XEy3wuU+hGF1B1BLAwQUAAIACABmm/NIm1c/lIQAAADAAAAAawAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1v
YmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAOA4Y5XgOGOV3V4CwABBPUBAAAE
FAAAAJ3MsQrCMBDG8b1PcaMuQlqkNohLXSwIgoOCOMT0jAfHRZKr4tsbX0H4pj8fv2FiMF2ZrVtr
asB3NqZZcPSOIalP+IxJScKlbbrl6grrLd6msLGQUcY95uwCnkgfvVMMMX0szGRinlfD3zIJ6Y88
Fp2i7OQeLZwPPfgogl5LK5+XYxqrL1BLAwQUAAIACABtm/NIVStNLd4AAABSAgAASwAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXJlZGlyZWN0LWFsbG93
ZWQtc3RkZXJyLnR4dFVUCQADjuGOV47hjld1eAsAAQT1AQAABBQAAAClkcFKA0EMhs/2KXJsL9Lt
osVBeuj2UIuCIKIgHrKz6XRozJSZrOLbmxVvggcXcklIvj/5s+sZqisLt1i6xSXQR6mq+pyTR4as
PtMpZY0SXpb1xbx+hesNtX1YOSgk3R2VgoGeoh4aVAopfzqYSs88m+z+TY4SdUA+GD0muZF9cvB8
34BPIuTVatbzjhy7ESqF9Gf92xSCdaxt6OjABplGgRWzNkn2MfQZh22//UlvJ6Yh26J0TNlBg/5A
HcyBBFvThBb90Vwt4656LJQHzzbRq/vFtv9MzmajFP7++xdQSwMEFAACAAgAbZvzSJZXpBq7AAAA
kgEAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby1y
ZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQJAAOO4Y5XjuGOV3V4CwABBPUBAAAEFAAAAKWQ
sYoCMRCGa/cpptTmcF1UDMcV7hYqWsoVYjGbjDFsnEgyi/j2xuM6O4VpBub/Pubf9B7KRR41mavJ
DOiWyrL68kGjhyg60jVEcWwP82o6ro7w3VDb2x8FiWRHKaGlbbA2XyxzqFOQg55MsXkfLBilDnxy
to8oLvCvk3MdLldPz22FbDxFBTXqMxkYAzG22Qkt6o7YpE/kJPtEcc2n0Dgt6oWtYFgMRh8Z2PwX
9/cXCtkQ75nLvfej4gFQSwMEFAACAAgAbZvzSFUrTS3eAAAAUgIAAGYAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWh0dHAtdXJsLWFsbG93ZWQt
YnktY3NwLW1lZGlhLXNyYy1zdGFyLXN0ZGVyci50eHRVVAkAA47hjleO4Y5XdXgLAAEE9QEAAAQU
AAAApZHBSgNBDIbP9ilybC/S7aLFQXro9lCLgiCiIB6ys+l0aMyUmazi25sVb4IHF3JJSL4/+bPr
GaorC7dYusUl0Eepqvqck0eGrD7TKWWNEl6W9cW8foXrDbV9WDkoJN0dlYKBnqIeGlQKKX86mErP
PJvs/k2OEnVAPhg9JrmRfXLwfN+ATyLk1WrW844cuxEqhfRn/dsUgnWsbejowAaZRoEVszZJ9jH0
GYdtv/1JbyemIduidEzZQYP+QB3MgQRb04QW/dFcLeOueiyUB8820av7xbb/TM5moxT+/vsXUEsD
BBQAAgAIAG2b80gbWuZxhAAAAMAAAABZABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvd29ya2VyLWJsb2ItaW5oZXJpdHMtY3NwLWJsb2Nrcy1ldmFsLXN0ZGVyci50
eHRVVAkAA47hjleO4Y5XdXgLAAEE9QEAAAQUAAAAncy7CgIxEIXhfp9iSm3EbNDFIDZr44IgWCiI
RcyOcSDMSC6Kb298BeFUP4dvKAHUqs60nWmXgO+klJ4FcTZAzC7iU2Im9pdOL+b6Cust3orfGEjI
4x5Tsh5PlB+9zeglfgxMuIQwbYa/ZWLKP/JYdRLe8V0MnA89OGFGl2urn5cNNDZfUEsDBBQAAgAI
AG+b80hjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADkeGOV5Hhjld1eAsAAQT1AQAABBQAAAAt
jUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d
48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY5
0o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAG+b80hjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3Jj
LTItc3RkZXJyLnR4dFVUCQADkeGOV5Hhjld1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k
+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VU
f/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+
UEsDBBQAAgAIAGCb80gkqnIzhAAAAMAAAAA1ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb3JzLXBv
c3QtcmVkaXJlY3QtMzAxLXN0ZGVyci50eHRVVAkAA3Thjld04Y5XdXgLAAEE9QEAAAQUAAAAncy7
CgIxEIXhfp9iSm1ks0EWg9isjQuCYKEgFjE7xoFhIrkovr3xFYRT/Ry+sTCoVZ3petO2gO+klF5w
cJYhZhfxGWIm8ZdeLzt9hfUWb8VvDCSUaY8pWY8nyo/BZvQhfgzMpDDPm/FvmYTyjzxWnYLs5B4M
nA8DuCCCLtdWPy/LNDVfUEsDBBQAAgAIAGeb80irePuhtQAAANwBAAA6ABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADgeGOV4Hh
jld1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3FZ18
BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2NNyq9
FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9UhbqkuU
tnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIAGeb80je/brprwAAAO4AAAAyABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLXN0ZGVyci50eHRVVAkAA4Hh
jleB4Y5XdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv
06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYb
lTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11
NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACABpm/NIYpzSDbkAAACSAQAAPQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291cmNlLWZyb20tcmVtb3RlLXN0ZGVyci50
eHRVVAkAA4XhjleF4Y5XdXgLAAEE9QEAAAQUAAAApZAxywIxDIZn71dk1EU8Dzks8g3fOajoKA7i
kGtjLdZU2hziv7eKm5tClkDe5yHvqvNQTvOoca3KGuiWyrIa+qDRQxQd6RqiOLb7upqMqwPM5tR2
9k9BItlQSmhpHazNF/85dFaQg55MsfoeLBilCXx0tosoLvDOyakJl6un57ZANp6iggb1iQyMgBjb
7IQW9ZnYpF/kJNtEccnHMHda1AdbQb/oDX4ysHkX9/oLhWyI98zlzvtB8QBQSwMEFAACAAgAaZvz
SH8cIBuEAAAAwAAAADoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9t
LXJlbW90ZS1zdGRlcnIudHh0VVQJAAOG4Y5XhuGOV3V4CwABBPUBAAAEFAAAAJ3MMQoCMRCF4X5P
MaU2QjbIahCbtXFBECwUxCJmZ2NgmEgyUby98QrCq34e31AI1LrOtJ1RK8B3VkovKDpLkMQlfMYk
gf2108tW32Czw3vxWwMZeTxgztbjOcijt4I+po+BGReieTP8LQcO8iNPVQ+R9zxFA5djDy4yo5Pa
6udlKYzNF1BLAwQKAAAAAABom/NIAAAAAAAAAAAAAAAAIQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L1VUCQADhOGOVxPijld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAaJvzSLe1
gbHuAAAAiQQAAE4AHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1h
dWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAA4ThjleE4Y5XdXgLAAEE9QEA
AAQUAAAA7dLBSgMxEAbgs32KOeplcV2xGsSD24MWBUFEoXiYTaZp6Dgpyazi25uoN09SwUshl4TM
l8yfzEeG9qwMczQ17QnQW27bruFokSGpTbSJSYP4xbQ7Pu2e4fxalvHCAEfvyzJkxaS5aZrJ/NfU
jIbRFyuT3lLO6OnmS70sRWsDpZDJbQPXy/VRlsGPCTVEeQy66uPLhqnOrlAcUzLQo12Rg0MgwaGc
CQPaNYnL23X1kCnVvGbBqvlhG9if7B3scvuH3MR9B/fZFyr5mN6LKyPzTv4rOUjQSt4Xvfya+qIG
nu56sFGEbP1JZc8rcnCTD1BLAwQUAAIACABom/NI6JoBIYQAAADAAAAAQgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJhbWUtc3RkZXJyLnR4dFVU
CQADhOGOV4Thjld1eAsAAQT1AQAABBQAAACdzLsKAjEQheF+n2JKbYQYcTWIzdq4IAgWCmIRs7Nx
IMxILopvb3wF4VQ/h68vAdS6zsxbo5aA76SUngVxNkDMLuJTYib211YvVvoGmx3ei98aSMjDAVOy
Hs+UH53N6CV+DEy4hDBt+r9lYso/8lR1Et7zKAYuxw6cMKPLtdXPywYami9QSwMEFAACAAgAcJvz
SN79uumvAAAA7gAAAD8AHABodHRwL3Rlc3RzL3NlY3VyaXR5L3N0b3JhZ2UtYmxvY2tpbmctbG9v
c2VuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAkAA5PhjleT4Y5XdXgLAAEE9QEAAAQUAAAAZc5BC4JA
EAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoO
SN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc
8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBL
AwQUAAIACABwm/NI3v266a8AAADuAAAAQwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvc3RvcmFnZS1i
bG9ja2luZy1zdHJlbmd0aGVuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAkAA5ThjleU4Y5XdXgLAAEE
9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmU
Gi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLi
nHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N
4qk5H7SuvPR0gziN3lBLAwQUAAIACABxm/NILTq91+IAAACYBAAAOQAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWNhY2hpbmctc3RkZXJyLnR4dFVUCQADleGOV5Xhjld1
eAsAAQT1AQAABBQAAADtkkFLA0EMhc/2V+RoL+J2KMVBPLg9aGlBEFEQD9mZdDo0ZspMVvHfOyve
vLknsZBLIPkeeS+rnqG5qGVnC2sM0HtpGnPGySFDVpfpkLJGCc8LM5+ZF7hcUteHKwuFdEOlYKB1
CqFOXNelvYW6yOQnq9+DFbO2SbYx9Bk1JnmMumvT64Fp6G5QPFO20KLbkYdzIMGuakKHbk/iyxhx
0odC+Va2aRmd2h9sC6eTk+koBfHfxn3dhUoh5Y/KlZ75v5GjRB2Q95Vesx18t/B014JLIuSGvOvM
G3L041I9/uqf+qhPUEsDBBQAAgAIAHGb80jKE/F8EgEAAOcBAAA/ABwAaHR0cC90ZXN0cy9zZWN1
cml0eS92aWRlby1wb3N0ZXItY3Jvc3Mtb3JpZ2luLWNyYXNoMi1zdGRlcnIudHh0VVQJAAOV4Y5X
leGOV3V4CwABBPUBAAAEFAAAAJ2OTU8CMRCG7/yKOcLB/cQAjTEhEINEE7JiNCEeSndYGst07QeG
f++QRa9GM3OYt/PO03cZDeQTblGMRFkCfvo8LxNjlTTggnLYWhc0NZtReV2Ub3Azx21sbgV4pPoR
vZcNvuiwn8mAjXUnAX2Kxgx6y3+TNelwRj4xXVu6p50V8LqagbJEqAK/secoja57m29+MsmYsViv
VxV+RPQBdrpZhNBe5FzXFSrUR6zQt5Y8zqQxW6neBbhuUcOe/ay6PQyzIfTROevgKi8m5XgAO57P
JpGmeTFKMq5cjLMsSz2q6HQ4pWQJfVT75NAOf4vHch4P7Z0maZ6rhylxxoMNOK1rTuEFyG6An8/4
jL0QnflTji9QSwMEFAACAAgAdZvzSGBLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA53h
jled4Y5XdXgLAAEE9QEAAAQUAAAA7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYd
q7++r/dC3kqkSWNOgMyZPSyREFbV4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB
8RlTu28EFBNCD0j4IUD0IJQVUZvz6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQK
AAAAAABqm/NIAAAAAAAAAAAAAAAAEwAcAGh0dHAvdGVzdHMvc3RvcmFnZS9VVAkAA4fhjlcT4o5X
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGqb80je/brprwAAAO4AAABFABwAaHR0cC90ZXN0cy9z
dG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJlY3QtY29udGV4dC1zdGRlcnIudHh0
VVQJAAOH4Y5Xh+GOV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqF
sM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqma
XRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPK
lWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMECgAAAAAAjJvzSAAAAAAAAAAAAAAA
ABUAHABodHRwL3Rlc3RzL3dlYnNvY2tldC9VVAkAA8jhjlcT4o5XdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAIyb80gAAAAAAAAAAAAAAAAbABwAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvVVQJ
AAPI4Y5XE+KOV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACMm/NIAAAAAAAAAAAAAAAAIAAcAGh0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvVVQJAAPI4Y5XE+KOV3V4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAACMm/NIAAAAAAAAAAAAAAAAKAAcAGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvd29ya2Vycy9VVAkAA8jhjlcT4o5XdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALKb80gI
t9rEJ1UAAPPwAQBLABwAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL2Ns
b3NlLWNvZGUtYW5kLXJlYXNvbi1jcmFzaC1sb2cudHh0VVQJAAMQ4o5XyOGOV3V4CwABBPUBAAAE
FAAAAOydW3PbOLKAn1e/Ag9bWTmxHIJ3snyckiUr46xvYznO1E5NsUAStLimSA1J+bK//jRASqIo
+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
rHB/SjnPkogL7TiiEvm6bKAzYpChv2egFrnEUE2XHGyBy6vcD8d8txf57JIvsAi1ex/5RiJIM4QF
kcmHmJKJkAuSJvhMkAD3acQo4Duj0R3s0SDsX0aL0228FBvguPHkDOd+8+Jx750Haym4SJM5tkNb
84VgB9VbIJwHSYLRZXE5tRInNOknlHxKBT7f9D0RLrJPEE1DrEYS4Sb4LKVRU/pgmZcpswHBafPw
AVG88pTEuTfdxvgswHz9BVBLAwQKAAAAAACYm/NIAAAAAAAAAAAAAAAADQAcAGltcG9ydGVkL3cz
Yy9VVAkAA9/hjlcT4o5XdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJib80gAAAAAAAAAAAAAAAAg
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAA9/hjlcT4o5XdXgLAAEE9QEA
AAQUAAAAUEsDBAoAAAAAAJib80gAAAAAAAAAAAAAAAArABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb21wYXJzaW5nL1VUCQAD3+GOVxPijld1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAmJvzSLnqQ16EAAAAwAAAAFQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bXBhcnNpbmcvRE9NUGFyc2VyLXBhcnNlRnJvbVN0cmluZy1odG1sLXN0ZGVyci50eHRVVAkAA9/h
jlff4Y5XdXgLAAEE9QEAAAQUAAAAncwxCgIxEIXhfk8xpTZCzMpqEJu1cUEQLBTEImbHOBAmkkwU
b2+8gvCqn8c3lABqVWfmS9N2gO+slJ6F6GyAJC7hMyYh9peuXWh9hfUWb8VvDGTkcY85W48nkkdv
BX1MHwMTLiFMm+FvmZjkRx6rTpF3fI8GzoceXGRGJ7XVz8sGGpsvUEsDBBQAAgAIAHyb80iDY+36
ZwIAAKIVAAAaABwAcHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAkAA6zhjleB4I5XdXgLAAEE
9QEAAAQUAAAA7ZhbT9swFIDf+yuOeKHVQpwLTZq87VK2aRObWgQPVWW5yQm16sSZ7dJ1v35uKCMI
2MMEaEhRIkW+6Xw+x/4eMgs8Pzry4iM/AT9JgzgNIsdLjucwG08m3yZzoLRkvKLUvcDFVGYrNFNU
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
fw6+xXE0l0JzyPVlFRVRYJNB/utjDr6evz9cjy+vbEoVtAo3hA23Wx/n28e7aRwblmU/tza7VC/c
Q8OxPmnKaAewnrRjspERujCCw4t6KJzYNYQnXqpUB7gh9izDB5j275XtnZgdQZFlDOsIta/pCBux
a4A6TMEEWNoHWK4Pke1L9PE+xxEOGvLdVclwfdgTfMc8HIzVI2SAtnguhRF8NbpK3atkUzWZwwjS
1S633L0x+eY6mn51LY1O09fpVNu//v5+uL/av/2//5z/9pMd81f/4NMP/nXTn827Tb/+54//+Okv
f/3pr3/59cd//OWvv/7wy19/+tMv//jp11/+v3/+9f9ahk6vUlunHYPdSeOvnT/evkzX/2mfvBfH
gWaymPiOZm2nO/04/X7/9Ycf/+ef/vbDX379+Zc//fLXX//600/yyG3adxhm+OPP89iX09fp+qt7
rvFH83isyev9508//DrHb8b1kEZuqmwvYjvwX03/W7O3v07ub9Ovi5b6q0/hScPW2Ci5CuP++XI2
De1N1+BfXw+3f5+sZfi1FgdS2X66yfQe50h13tOwDys3XBpW9+n8FJufY2mKc2xzL1gIQ50/Tid5
pC4/LZSgm32Nl0ti15fH2XN/fv7xT//8+T/+8Uvh/uBhD+Hpu+Kv/ds//vG3v/7pRz56g7cKmJ2/
mCtk8uc3eTuhjT7mbXdcm9/f5FNqkn71Lcjk7/aRxOPl/AfuDPaiBthkqz4uV6s//oiq64giWQTs
fHi/vV7u81m9UYHgstyhVADrwNAd5m0oHZ36lF76f376x4//49e//OPP//n3v/74C9Wltc5L65+W
Tr1uZkYCzmR++NgDYHJFmf/3H376+Zf46Lj4D/BD0DAoqwJB/H7809//+vM///Rna1h+nf0UURVq
cknYSn7+5acf5k3n8rYZvOfyRqTtcn2anRNR3OCXkPLxyX3S8j7VqTw3u37gfPn1x5/lUdu8pv7n
9fJoBji//PrDeVb5H7YxQOnSoKxAy7iSuTyQa6y7/Ds6eIJfLheTfLU26dfnw+kmW6YGd7ENWqEo
bX/ELqmyX1f+rZ2KNfWj1D6jIKupLn4pYdxruahSrsc/uP1/+vH/S20BV1soNmPeJ9h78bmZUeUf
ElfEl7B5oaXjkj/fUiL4YA6xmX5idsTv8UkgC8y18ob+zb4B/cecua4rX5r9HsLj5YPIeFfvMfIb
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
md3tJdHJZRXE317hJJN1Kn3CxLlHC2TZszBL4TuP6qCbi9QifNc66kK67Uw4tKr9LEjsO7hsQCsC
rF0qZeqATc3fAwp5kgD+qIwySOm0O65bNCi218kQfH5UHAJcrh8TGsTsKhujDs5I31OAxr8UzA3d
nEDOxRWuF2PCbz5Yy4kCIL5JE2ytbvMLEN+mveo3l4fD7WnfcusSTrhYhIEcuVN5nYKZB9TpF2aU
KcQdBo89ptJVYvdGGyRZpNHwLc2TCM0TIWT6yCIgVx26THgE04UIJ86hx7yrfH/S3P8HUEsBAh4D
FAACAAgAm5vzSGBmF0tZOwEAUowLAA4AGAAAAAAAAQAAAKSBAAAAAGFjY2Vzc19sb2cudHh0VVQF
AAPm4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAi5vzSAAAAAAAAAAAAAAAAAwAGAAAAAAA
AAAQAO1BoTsBAGNvbXBvc2l0aW5nL1VUBQADxeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AAOb80gAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQec7AQBjb21wb3NpdGluZy9nZW9tZXRyeS9V
VAUAA8bgjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAADm/NIImO7MM5IAABBYAEAOwAYAAAA
AAABAAAApIE2PAEAY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcHBlZC12aWRlby1jb250cm9sbGVy
LWNyYXNoLWxvZy50eHRVVAUAA8bgjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAADm/NIL+wV
5+0DAADACwAAOAAYAAAAAAABAAAApIF5hQEAY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcHBlZC12
aWRlby1jb250cm9sbGVyLXN0ZGVyci50eHRVVAUAA8bgjld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABHm/NISOcjn5sEAACWDAAAYwAYAAAAAAABAAAApIHYiQEAY29tcG9zaXRpbmcvaGlkcGkt
Ym94LXBvc2l0aW9uZWQtb2ZmLWJ5LW9uZS13aGVuLW5vbi1jb21wb3NpdGluZy10cmFuc2Zvcm0t
aXMtcHJlc2VudC1jcmFzaC1sb2cudHh0VVQFAANG4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAR5vzSGspmjlrBAAAVgwAAGAAGAAAAAAAAQAAAKSBEI8BAGNvbXBvc2l0aW5nL2hpZHBpLWJv
eC1wb3NpdGlvbmVkLW9mZi1ieS1vbmUtd2hlbi1ub24tY29tcG9zaXRpbmctdHJhbnNmb3JtLWlz
LXByZXNlbnQtc3RkZXJyLnR4dFVUBQADRuGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKb
80jkNdx74EEAAEvzAABLABgAAAAAAAEAAACkgRWUAQBjb21wb3NpdGluZy9oaWRwaS1jb21wb3Np
dGluZy1sYXllci13aXRoLXplcm8tc2l6ZWQtY29udGFpbmVyLWNyYXNoLWxvZy50eHRVVAUAAxDi
jld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACLm/NIXwF0YGAEAABGDAAASAAYAAAAAAABAAAA
pIF61gEAY29tcG9zaXRpbmcvaGlkcGktY29tcG9zaXRpbmctbGF5ZXItd2l0aC16ZXJvLXNpemVk
LWNvbnRhaW5lci1zdGRlcnIudHh0VVQFAAPF4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
4przSAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BXNsBAGNvbXBvc2l0aW5nL2lmcmFtZXMvVVQF
AAOI4I5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAA4przSFkmhq03AAAANwAAADQAGAAAAAAA
AQAAAKSBqtsBAGNvbXBvc2l0aW5nL2lmcmFtZXMvZGlzcGxheS1ub25lLXN1YmZyYW1lLWFjdHVh
bC50eHRVVAUAA4jgjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADimvNIluBg6rYAAABcAQAA
MgAYAAAAAAABAAAApIFP3AEAY29tcG9zaXRpbmcvaWZyYW1lcy9kaXNwbGF5LW5vbmUtc3ViZnJh
bWUtZGlmZi50eHRVVAUAA4jgjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADimvNIQnJVpiEA
AAAhAAAANgAYAAAAAAABAAAApIFx3QEAY29tcG9zaXRpbmcvaWZyYW1lcy9kaXNwbGF5LW5vbmUt
c3ViZnJhbWUtZXhwZWN0ZWQudHh0VVQFAAOI4I5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
4przSFrfJ4isBwAA5RgAADoAGAAAAAAAAQAAAKSBAt4BAGNvbXBvc2l0aW5nL2lmcmFtZXMvZGlz
cGxheS1ub25lLXN1YmZyYW1lLXByZXR0eS1kaWZmLmh0bWxVVAUAA4jgjld1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADmmvNIAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UEi5gEAY29tcG9zaXRp
bmcvcmVnaW9ucy9VVAUAA4/gjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmmvNILFhS/qwA
AAAUAwAARQAYAAAAAAABAAAApIFw5gEAY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1y
ZW5kZXJlci1sYXllci1jb21wb3NpdGluZy1zdGRlcnIudHh0VVQFAAOP4I5XdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA5JrzSAAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1Bm+cBAGNvbXBvc2l0
aW5nL3ZpZGVvL1VUBQADjOCOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOSa80g3rzkMwQAA
APIGAAAyABgAAAAAAAEAAACkgefnAQBjb21wb3NpdGluZy92aWRlby92aWRlby1jbGlwLWNoYW5n
ZS1zcmMtc3RkZXJyLnR4dFVUBQADjOCOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEmb80gA
AAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQRTpAQBjc3NvbS9VVAUAA0nhjld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABJm/NIlkWp5q4EAAC4DAAAPwAYAAAAAAABAAAApIFU6QEAY3Nzb20vc3Vi
cGl4ZWwtb2Zmc2V0bGVmdC10b3Atd2lkdGgtaGVpZ2h0LXZhbHVlcy1jcmFzaC1sb2cudHh0VVQF
AANJ4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASZvzSGcABfJ/BAAAeAwAADwAGAAAAAAA
AQAAAKSBe+4BAGNzc29tL3N1YnBpeGVsLW9mZnNldGxlZnQtdG9wLXdpZHRoLWhlaWdodC12YWx1
ZXMtc3RkZXJyLnR4dFVUBQADSeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOya80gAAAAA
AAAAAAAAAAANABgAAAAAAAAAEADtQXDzAQBkaXNwbGF5bGlzdHMvVVQFAAOc4I5XdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA7JrzSKNX/ehQAAAAjgAAADIAGAAAAAAAAQAAAKSBt/MBAGRpc3Bs
YXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQFAAOc4I5XdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7JrzSPKWldVHAAAASQAAACkAGAAAAAAAAQAAAKSBc/QB
AGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQFAAOc4I5XdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAspvzSPmI2PUAQAAAs+AAACIAGAAAAAAAAQAAAKSBHfUBAER1
bXBSZW5kZXJUcmVlLTczNTYwLWNyYXNoLWxvZy50eHRVVAUAAxDijld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACym/NIxVvHJCNBAACA5QAAIgAYAAAAAAABAAAApIF5NQIARHVtcFJlbmRlclRy
ZWUtNzM1NzItY3Jhc2gtbG9nLnR4dFVUBQADEOKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ALKb80guPirTG0EAADblAAAiABgAAAAAAAEAAACkgfh2AgBEdW1wUmVuZGVyVHJlZS03NDExNS1j
cmFzaC1sb2cudHh0VVQFAAMQ4o5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAspvzSMfmu82x
QQAAJOYAACIAGAAAAAAAAQAAAKSBb7gCAER1bXBSZW5kZXJUcmVlLTc0NDI4LWNyYXNoLWxvZy50
eHRVVAUAAxDijld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACym/NIcQsckqFAAAD64wAAIgAY
AAAAAAABAAAApIF8+gIARHVtcFJlbmRlclRyZWUtNzQ1MjItY3Jhc2gtbG9nLnR4dFVUBQADEOKO
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKb80ho23WmVUoAAOFtAQAiABgAAAAAAAEAAACk
gXk7AwBEdW1wUmVuZGVyVHJlZS03NDUyNi1jcmFzaC1sb2cudHh0VVQFAAMQ4o5XdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAspvzSAdzprOnQAAAz+0AACIAGAAAAAAAAQAAAKSBKoYDAER1bXBS
ZW5kZXJUcmVlLTc0NTMwLWNyYXNoLWxvZy50eHRVVAUAAxDijld1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAjm/NIAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UEtxwMAZWRpdGluZy9VVAUAAwLh
jld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAANm/NIAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA
7UFvxwMAZWRpdGluZy9wYXN0ZWJvYXJkL1VUBQAD2eCOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAACb80h+qfEg6QAAAIIBAAAwABgAAAAAAAEAAACkgbzHAwBlZGl0aW5nL3Bhc3RlYm9hcmQv
Y29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRVVAUAA8Dgjld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAMm/NIVxgTSdoAAABQAQAALAAYAAAAAAABAAAApIEPyQMAZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLW5vcGx1Z2luLXN0ZGVyci50eHRVVAUAA9jgjld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAMm/NIVxgTSdoAAABQAQAAMgAYAAAAAAABAAAApIFPygMAZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLW5vcGx1Z2luLXhodG1sLXN0ZGVyci50eHRVVAUAA9jgjld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAANm/NId02LHeMAAAB3AQAALAAYAAAAAAABAAAApIGVywMAZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLW5vc2NyaXB0LXN0ZGVyci50eHRVVAUAA9ngjld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAMm/NISi4+MOIAAAB7AQAAMgAYAAAAAAABAAAApIHezAMAZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLW5vc2NyaXB0LXhodG1sLXN0ZGVyci50eHRVVAUAA9jgjld1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAAjm/NIAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UEszgMAZWRp
dGluZy9zZWxlY3Rpb24vVVQFAAMC4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAspvzSIqe
YXBMUgAASn0BADYAGAAAAAAAAQAAAKSBeM4DAGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWF0LWJp
ZGktYm91bmRhcnktY3Jhc2gtbG9nLnR4dFVUBQADEOKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACOb80j1xWoOTwQAABoMAAAzABgAAAAAAAEAAACkgTQhBABlZGl0aW5nL3NlbGVjdGlvbi9j
YXJldC1hdC1iaWRpLWJvdW5kYXJ5LXN0ZGVyci50eHRVVAUAAwLhjld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACbm/NINUaFjXQJAADGNgAADQAYAAAAAAABAAAApIHwJQQAZXJyb3JfbG9nLnR4
dFVUBQAD5uGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHub80gAAAAAAAAAAAAAAAAFABgA
AAAAAAAAEADtQasvBABmYXN0L1VUBQADquGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAC+b
80gAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQeovBABmYXN0L2JvcmRlcnMvVVQFAAMZ4Y5XdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAspvzSGtiNZxJQwAAUz8BAEcAGAAAAAAAAQAAAKSBMTAE
AGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLW9uLXN1YnBpeGVsLXBvc2l0aW9uLW5vbi1oaWRw
aS1jcmFzaC1sb2cudHh0VVQFAAMQ4o5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAL5vzSGmD
iQpqBAAAVgwAAEQAGAAAAAAAAQAAAKSB+3MEAGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLW9u
LXN1YnBpeGVsLXBvc2l0aW9uLW5vbi1oaWRwaS1zdGRlcnIudHh0VVQFAAMZ4Y5XdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAK5vzSAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B43gEAGZhc3Qv
Y2FudmFzL1VUBQADEuGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABSb80hXXs4jrgAAAN4D
AABMABgAAAAAAAEAAACkgSl5BABmYXN0L2NhbnZhcy9jYW52YXMtY3NzLXNpemUtYWZ0ZXItaGVp
Z2h0LWNoYW5nZS13aXRoLWRpc3BsYXktZmxleC1zdGRlcnIudHh0VVQFAAPo4I5XdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAGZvzSM9MiE+FAAAAGgEAACYAGAAAAAAAAQAAAKSBXXoEAGZhc3Qv
Y2FudmFzL2NhbnZhcy1saW5lRGFzaC1zdGRlcnIudHh0VVQFAAPx4I5XdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAi5vzSAAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BQnsEAGZhc3QvY2FudmFz
L3dlYmdsL1VUBQADxeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKb80hX3OcTC0gAAORO
AQAwABgAAAAAAAEAAACkgY57BABmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWNy
YXNoLWxvZy50eHRVVAUAAxDijld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArm/NIJmz3xE4E
AAC3CwAALQAYAAAAAAABAAAApIEDxAQAZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0
cy1zdGRlcnIudHh0VVQFAAMS4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAepvzSAqUopMZ
BAAAAAwAAEEAGAAAAAAAAQAAAKSBuMgEAGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhh
bGYtZmxvYXQtd2l0aC12aWRlby1jcmFzaC1sb2cudHh0VVQFAAOo4Y5XdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAepvzSJgLi0/uAwAAwAsAAD4AGAAAAAAAAQAAAKSBTM0EAGZhc3QvY2FudmFz
L3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby1zdGRlcnIudHh0VVQFAAOo
4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAi5vzSOrqd/WRAAAA+gAAAEwAGAAAAAAAAQAA
AKSBstEEAGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
dmlkZW8tcmdiNTY1LWNyYXNoLWxvZy50eHRVVAUAA8Xhjld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACLm/NIOId/Ku4DAADACwAASQAYAAAAAAABAAAApIHJ0gQAZmFzdC9jYW52YXMvd2ViZ2wv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUtc3RkZXJyLnR4dFVU
BQADxeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFqb80gAAAAAAAAAAAAAAAAJABgAAAAA
AAAAEADtQTrXBABmYXN0L2Nzcy9VVAUAA2vhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABa
m/NIDGe9AbEAAADOAQAANgAYAAAAAAABAAAApIF91wQAZmFzdC9jc3MvcGVyc3BlY3RpdmUtb3Jp
Z2luLWluaXRpYWwtaW5oZXJpdC1zdGRlcnIudHh0VVQFAANr4Y5XdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAB5vzSAAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BntgEAGZhc3QvY3NzLWdyaWQt
bGF5b3V0L1VUBQADzuCOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAeb80gAAAAAAAAAAAAA
AAAdABgAAAAAAAAAEADtQe3YBABmYXN0L2Nzcy1ncmlkLWxheW91dC9tb3ppbGxhL1VUBQADzuCO
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAeb80hH+duyrAAAABQDAABFABgAAAAAAAEAAACk
gUTZBABmYXN0L2Nzcy1ncmlkLWxheW91dC9tb3ppbGxhL2dyaWQtcmVwZWF0LWF1dG8tZmlsbC1m
aXQtMDAxLXN0ZGVyci50eHRVVAUAA87gjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB7m/NI
AAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFv2gQAZmFzdC9kb20vVVQFAAOq4Y5XdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAspvzSNLb63iGRgAAsXIBABsAGAAAAAAAAQAAAKSBstoEAGZhc3Qv
ZG9tL2djLTEtY3Jhc2gtbG9nLnR4dFVUBQADEOKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AEOb80g2ZuNGFAQAALwLAAAYABgAAAAAAAEAAACkgY0hBQBmYXN0L2RvbS9nYy0xLXN0ZGVyci50
eHRVVAUAAz3hjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABam/NIR9iHRZEAAAD6AAAAGwAY
AAAAAAABAAAApIHzJQUAZmFzdC9kb20vZ2MtMi1jcmFzaC1sb2cudHh0VVQFAANs4Y5XdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAWpvzSNZuW5z+AwAAigsAABgAGAAAAAAAAQAAAKSB2SYFAGZh
c3QvZG9tL2djLTItc3RkZXJyLnR4dFVUBQADbOGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ALKb80ia/GxMi0AAACXjAAAbABgAAAAAAAEAAACkgSkrBQBmYXN0L2RvbS9nYy0zLWNyYXNoLWxv
Zy50eHRVVAUAAxDijld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB7m/NISBxrWv4DAACKCwAA
GAAYAAAAAAABAAAApIEJbAUAZmFzdC9kb20vZ2MtMy1zdGRlcnIudHh0VVQFAAOq4Y5XdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAFJvzSAAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BWXAFAGZh
c3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvVVQFAAPn4I5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAFJvzSN79uumvAAAA7gAAAD8AGAAAAAAAAQAAAKSBrXAFAGZhc3QvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnktc3RkZXJyLnR4dFVUBQAD5+COV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAJub80gAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQdVxBQBm
YXN0L2Zvcm1zL1VUBQAD5eGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKb80iaeLL8vk0A
AGnFAQA0ABgAAAAAAAEAAACkgRpyBQBmYXN0L2Zvcm1zL2lucHV0LWltcGxpY2l0LWxlbmd0aC1s
aW1pdC1jcmFzaC1sb2cudHh0VVQFAAMQ4o5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWpvz
SFFFcqZRBAAAHgwAADEAGAAAAAAAAQAAAKSBRsAFAGZhc3QvZm9ybXMvaW5wdXQtaW1wbGljaXQt
bGVuZ3RoLWxpbWl0LXN0ZGVyci50eHRVVAUAA2vhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACbm/NIlMARTXsEAABeDAAAKAAYAAAAAAABAAAApIECxQUAZmFzdC9mb3Jtcy9pbnB1dC1tYXhs
ZW5ndGgtY3Jhc2gtbG9nLnR4dFVUBQAD5eGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJub
80jiCftNTgQAAB4MAAAlABgAAAAAAAEAAACkgd/JBQBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0
aC1zdGRlcnIudHh0VVQFAAPl4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGpvzSC5f2O97
AQAA+DkAADMAGAAAAAAAAQAAAKSBjM4FAGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1wYXR0ZXJu
TWlzbWF0Y2gtc3RkZXJyLnR4dFVUBQAD9OCOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFWb
80gAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQXTQBQBmYXN0L2ZyYW1lcy9VVAUAA2Hhjld1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABBm/NIAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UG60AUA
ZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9VVAUAAznhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACym/NIcdBLg+JFAAAyRgEASQAYAAAAAAABAAAApIEL0QUAZmFzdC9mcmFtZXMvZmxhdHRlbmlu
Zy9pZnJhbWUtZmxhdHRlbmluZy1yZXNpemUtZXZlbnQtY291bnQtY3Jhc2gtbG9nLnR4dFVUBQAD
EOKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEGb80iUfnzOOAQAAA8MAABGABgAAAAAAAEA
AACkgXAXBgBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLXJlc2l6ZS1l
dmVudC1jb3VudC1zdGRlcnIudHh0VVQFAAM54Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
VZvzSN79uumvAAAA7gAAAC8AGAAAAAAAAQAAAKSBKBwGAGZhc3QvZnJhbWVzL3NhbmRib3hlZC1p
ZnJhbWUtc3RvcmFnZS1zdGRlcnIudHh0VVQFAANh4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAIZvzSAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BQB0GAGZhc3QvaGlzdG9yeS9VVAUAA/7g
jld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhm/NI3v266a8AAADuAAAAQAAYAAAAAAABAAAA
pIGHHQYAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24t
ZGItc3RkZXJyLnR4dFVUBQAD/uCOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGmb80gAAAAA
AAAAAAAAAAAMABgAAAAAAAAAEADtQbAeBgBmYXN0L2ltYWdlcy9VVAUAA4Xhjld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAnm/NIIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIH2HgYAZmFzdC9p
bWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAAwrhjld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABpm/NIqQU5J10EAAAEDQAANgAYAAAAAAABAAAApIGOHwYAZmFzdC9p
bWFnZXMvc2V0LW5lZWRzLWxheW91dC1pbi1wYWludGluZy1jcmFzaC1sb2cudHh0VVQFAAOF4Y5X
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAaZvzSGQ0JxszBAAAxAwAADMAGAAAAAAAAQAAAKSB
WyQGAGZhc3QvaW1hZ2VzL3NldC1uZWVkcy1sYXlvdXQtaW4tcGFpbnRpbmctc3RkZXJyLnR4dFVU
BQADheGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJSb80gAAAAAAAAAAAAAAAAMABgAAAAA
AAAAEADtQfsoBgBmYXN0L2xheWVycy9VVAUAA9fhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABRm/NIiHgly5EAAAD6AAAAUwAYAAAAAAABAAAApIFBKQYAZmFzdC9sYXllcnMvaGlkcGktYm94
LXBvc2l0aW9uZWQtb2ZmLWJ5LW9uZS13aGVuLXRyYW5zZm9ybS1pcy1wcmVzZW50LWNyYXNoLWxv
Zy50eHRVVAUAA1nhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABRm/NI4EOcGmgEAABWDAAA
UAAYAAAAAAABAAAApIFfKgYAZmFzdC9sYXllcnMvaGlkcGktYm94LXBvc2l0aW9uZWQtb2ZmLWJ5
LW9uZS13aGVuLXRyYW5zZm9ybS1pcy1wcmVzZW50LXN0ZGVyci50eHRVVAUAA1nhjld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACym/NIVqmjR69BAAAa5gAAXwAYAAAAAAABAAAApIFRLwYAZmFz
dC9sYXllcnMvaGlkcGktZmxvb3ItbmVnYXRpdmUtY29vcmRpbmF0ZS12YWx1ZXMtdG8tbWFpbnRh
aW4tcm91bmRpbmctZGlyZWN0aW9uLWNyYXNoLWxvZy50eHRVVAUAAxDijld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACUm/NIDJkRi2IEAABGDAAAXAAYAAAAAAABAAAApIGZcQYAZmFzdC9sYXll
cnMvaGlkcGktZmxvb3ItbmVnYXRpdmUtY29vcmRpbmF0ZS12YWx1ZXMtdG8tbWFpbnRhaW4tcm91
bmRpbmctZGlyZWN0aW9uLXN0ZGVyci50eHRVVAUAA9fhjld1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABRm/NIAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGRdgYAZmFzdC9wYXJzZXIvVVQFAANZ
4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAspvzSCbVz7U4RQAAxkcBAC0AGAAAAAAAAQAA
AKSB13YGAGZhc3QvcGFyc2VyL3BhcnNlci15aWVsZC10aW1pbmctY3Jhc2gtbG9nLnR4dFVUBQAD
EOKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFGb80jOVzaSUAQAAB4MAAAqABgAAAAAAAEA
AACkgXa8BgBmYXN0L3BhcnNlci9wYXJzZXIteWllbGQtdGltaW5nLXN0ZGVyci50eHRVVAUAA1nh
jld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABim/NIAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UEqwQYAZmFzdC9yZWdleC9VVAUAA3jhjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABim/NI
AAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UFvwQYAZmFzdC9yZWdleC9kb20vVVQFAAN44Y5XdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYpvzSHhKw5WRAAAA+gAAADMAGAAAAAAAAQAAAKSBuMEG
AGZhc3QvcmVnZXgvZG9tL3VuaWNvZGVDYXNlSW5zZW5zaXRpdmUtY3Jhc2gtbG9nLnR4dFVUBQAD
eOGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGKb80ghjoMDFQQAADwLAAAwABgAAAAAAAEA
AACkgbbCBgBmYXN0L3JlZ2V4L2RvbS91bmljb2RlQ2FzZUluc2Vuc2l0aXZlLXN0ZGVyci50eHRV
VAUAA3jhjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB7m/NIAAAAAAAAAAAAAAAADQAYAAAA
AAAAABAA7UE1xwYAZmFzdC9yZXBhaW50L1VUBQADquGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAHub80jFevdnrAQAALgMAABCABgAAAAAAAEAAACkgXzHBgBmYXN0L3JlcGFpbnQvaGlkcGkt
dHJhbnNmb3JtLW9uLXN1YnBpeGVsLXJlcGFpbnRyZWN0LWNyYXNoLWxvZy50eHRVVAUAA6rhjld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB7m/NIf3+yP34EAAB4DAAAPwAYAAAAAAABAAAApIGk
zAYAZmFzdC9yZXBhaW50L2hpZHBpLXRyYW5zZm9ybS1vbi1zdWJwaXhlbC1yZXBhaW50cmVjdC1z
dGRlcnIudHh0VVQFAAOq4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAR5vzSAAAAAAAAAAA
AAAAABgAGAAAAAAAAAAQAO1Bm9EGAGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL1VUBQADRuGOV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEeb80gnQeV1kQAAAPoAAAA5ABgAAAAAAAEAAACkge3R
BgBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW1lZGlhLWVsZW1lbnRzLWNyYXNoLWxvZy50
eHRVVAUAA0bhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABHm/NIW+Obke4DAADACwAANgAY
AAAAAAABAAAApIHx0gYAZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1tZWRpYS1lbGVtZW50
cy1zdGRlcnIudHh0VVQFAANG4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAYpvzSAAAAAAA
AAAAAAAAAA8AGAAAAAAAAAAQAO1BT9cGAGZhc3Qvc3ViLXBpeGVsL1VUBQADeOGOV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGKb80hoTZ9+kQAAAPoAAABEABgAAAAAAAEAAACkgZjXBgBmYXN0
L3N1Yi1waXhlbC9jb21wb3NpdGluZy1sYXllcnMtb24tc3VicGl4ZWwtcG9zaXRpb24tY3Jhc2gt
bG9nLnR4dFVUBQADeOGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGKb80hT5pcCUAQAAB4M
AABBABgAAAAAAAEAAACkgafYBgBmYXN0L3N1Yi1waXhlbC9jb21wb3NpdGluZy1sYXllcnMtb24t
c3VicGl4ZWwtcG9zaXRpb24tc3RkZXJyLnR4dFVUBQADeOGOV3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAEmb80gAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQXLdBgBmYXN0L3hzbC9VVAUAA0nh
jld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABIm/NIcv1l8oUAAADpAAAAJQAYAAAAAAABAAAA
pIG13QYAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUBQADR+GOV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAEib80jOCSgCjQAAAPAAAAAnABgAAAAAAAEAAACkgZneBgBm
YXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAA0fhjld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABIm/NIz49mDlAAAACgAAAAJAAYAAAAAAABAAAApIGH3wYAZmFzdC94
c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAANH4Y5XdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgASZvzSIFKd61LAAAArAAAADQAGAAAAAAAAQAAAKSBNeAGAGZhc3QveHNsL3hzbHQt
dHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUAA0nhjld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACym/NIQDU240wEAACZEQAAEQAYAAAAAAABAAAApIHu4AYAZnVsbF9y
ZXN1bHRzLmpzb25VVAUAAxDijld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABLm/NIAAAAAAAA
AAAAAAAABQAYAAAAAAAAABAA7UGF5QYAaHR0cC9VVAUAA03hjld1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACMm/NIAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHE5QYAaHR0cC90ZXN0cy9VVAUA
A8jhjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABpm/NIAAAAAAAAAAAAAAAAEQAYAAAAAAAA
ABAA7UEJ5gYAaHR0cC90ZXN0cy9jYWNoZS9VVAUAA4Xhjld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABNm/NIXInedu0AAACJBAAAMAAYAAAAAAABAAAApIFU5gYAaHR0cC90ZXN0cy9jYWNoZS9t
ZW1vcnktY2FjaGUtcHJ1bmluZy1zdGRlcnIudHh0VVQFAANS4Y5XdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgATpvzSLazIJiGAAAAwAAAAD0AGAAAAAAAAQAAAKSBq+cGAGh0dHAvdGVzdHMvY2Fj
aGUvbmV0d29yay1lcnJvci1kdXJpbmctcmV2YWxpZGF0aW9uLXN0ZGVyci50eHRVVAUAA1Thjld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACym/NISjBz6ypOAAAplAEAPQAYAAAAAAABAAAApIGo
6AYAaHR0cC90ZXN0cy9jYWNoZS9zdWJyZXNvdXJjZS1tdWx0aXBsZS1pbnN0YW5jZXMtY3Jhc2gt
bG9nLnR4dFVUBQADEOKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGmb80gcXcoWnAMAAM8K
AAA6ABgAAAAAAAEAAACkgUk3BwBodHRwL3Rlc3RzL2NhY2hlL3N1YnJlc291cmNlLW11bHRpcGxl
LWluc3RhbmNlcy1zdGRlcnIudHh0VVQFAAOF4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
S5vzSAAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BWTsHAGh0dHAvdGVzdHMvY2FudmFzL1VUBQAD
TeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEub80gAAAAAAAAAAAAAAAAYABgAAAAAAAAA
EADtQaU7BwBodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9VVAUAA03hjld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABLm/NIsN2ZTcwAAAA3AgAAOwAYAAAAAAABAAAApIH3OwcAaHR0cC90ZXN0cy9j
YW52YXMvd2ViZ2wvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLXN0ZGVyci50eHRVVAUAA03hjld1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABLm/NIAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UE4
PQcAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9VVAUAA03h
jld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABLm/NIm8SaoIQAAADAAAAAWAAYAAAAAAABAAAA
pIGhPQcAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9hdC1p
bXBvcnQtc3R5bGVzaGVldHMtZGlzYWJsZWQtc3RkZXJyLnR4dFVUBQADTeGOV3V4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAJab80gAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQbc+BwBodHRwL3Rl
c3RzL21lZGlhL1VUBQAD2+GOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJab80gAAAAAAAAA
AAAAAAAaABgAAAAAAAAAEADtQQI/BwBodHRwL3Rlc3RzL21lZGlhL2NsZWFya2V5L1VUBQAD2+GO
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJab80jvE/QbzgUAAIgQAAA8ABgAAAAAAAEAAACk
gVY/BwBodHRwL3Rlc3RzL21lZGlhL2NsZWFya2V5L2NsZWFyLWtleS1obHMtYWVzMTI4LWNyYXNo
LWxvZy50eHRVVAUAA9vhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACWm/NIv8gH4yUFAABi
DwAAOQAYAAAAAAABAAAApIGaRQcAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXkt
aGxzLWFlczEyOC1zdGRlcnIudHh0VVQFAAPb4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
mJvzSAAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BMksHAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VU
BQAD3+GOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFWb80hLojybuwEAANAEAABAABgAAAAA
AAEAAACkgYFLBwBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYWNjZXNzaWJsaXR5LWRlc2NyaWJl
cy12aWRlby1zdGRlcnIudHh0VVQFAANi4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVpvz
SEm671HHAQAARQUAADoAGAAAAAAAAQAAAKSBtk0HAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1h
dWRpby10cmFja3MtaGFzLWF1ZGlvLXN0ZGVyci50eHRVVAUAA2Phjld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABWm/NICxltpMkBAACfBQAAQQAYAAAAAAABAAAApIHxTwcAaHR0cC90ZXN0cy9t
ZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLXN0ZGVyci50eHRVVAUA
A2Phjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABWm/NIUyOvl84BAABFBQAAMAAYAAAAAAAB
AAAApIE1UgcAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1zdGRlcnIudHh0
VVQFAANk4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAV5vzSOriV6AjAQAA3gMAACwAGAAA
AAAAAQAAAKSBbVQHAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1wcm9ncmVzcy1zdGRlcnIudHh0
VVQFAANl4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAl5vzSF1SzPiWBQAAmBIAADMAGAAA
AAAAAQAAAKSB9lUHAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy12aWRlby1yZXNpemUtY3Jhc2gt
bG9nLnR4dFVUBQAD3eGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJeb80h292T79QQAAEQP
AAAwABgAAAAAAAEAAACkgflbBwBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtdmlkZW8tcmVzaXpl
LXN0ZGVyci50eHRVVAUAA93hjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACYm/NIngGa3WkB
AAC1BQAAOgAYAAAAAAABAAAApIFYYQcAaHR0cC90ZXN0cy9tZWRpYS9obHMvdmlkZW8tY29udHJv
bHMtbGl2ZS1zdHJlYW0tc3RkZXJyLnR4dFVUBQAD3+GOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAGmb80jZ0CPokQAAAPoAAAA1ABgAAAAAAAEAAACkgTVjBwBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLWRvY3VtZW50LXJlZmVyZXItY3Jhc2gtbG9nLnR4dFVUBQADheGOV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAGmb80gxbv8emwQAAPcNAAAyABgAAAAAAAEAAACkgTVkBwBodHRwL3Rlc3Rz
L21lZGlhL21lZGlhLWRvY3VtZW50LXJlZmVyZXItc3RkZXJyLnR4dFVUBQADheGOV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGmb80ihRjYXywAAADcCAAAqABgAAAAAAAEAAACkgTxpBwBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA4bhjld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABqm/NI0xBEmusAAADGAwAAOQAYAAAAAAABAAAApIFragcAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1wbGF5LXN0cmVhbS1jaHVua2VkLWljeS1zdGRlcnIudHh0VVQFAAOI
4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAaZvzSAAAAAAAAAAAAAAAAB4AGAAAAAAAAAAQ
AO1ByWsHAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL1VUBQADheGOV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFyb80ijVDAQTAEAAJcEAABCABgAAAAAAAEAAACkgSFsBwBodHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hcHBlbmQtYnVmZmVyLXN0ZGVyci50
eHRVVAUAA3Dhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABgm/NIJtK4vT8BAAB6AwAAUAAY
AAAAAAABAAAApIHpbQcAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLXN0ZGVyci50eHRVVAUAA3Phjld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABhm/NIQKRXLz8BAAB6AwAAUgAYAAAAAAABAAAApIGybwcAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1m
cmFtZXJhdGUtc3RkZXJyLnR4dFVUBQADdeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGWb
80jgRby4jAAAAJsAAAA5ABgAAAAAAAEAAACkgX1xBwBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1wbGF5LXN0ZGVyci50eHRVVAUAA33hjld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABnm/NIqUwmAqcAAAAHAwAAOwAYAAAAAAABAAAApIF8cgcAaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcmVtb3ZlLXN0ZGVyci50eHRVVAUAA4Hhjld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpm/NIAWXiEKUAAADRAQAARgAYAAAAAAABAAAApIGY
cwcAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVy
LW1vZGUtc3RkZXJyLnR4dFVUBQADheGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGub80jF
QKzp7QAAAF8BAAAtABgAAAAAAAEAAACkgb10BwBodHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQt
YXMtcGRmLXN0ZGVyci50eHRVVAUAA4nhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABrm/NI
QPUmb78AAACSAQAALwAYAAAAAAABAAAApIERdgcAaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0
ZXItZGlhbG9nLXN0ZGVyci50eHRVVAUAA4rhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABs
m/NIdSDXTkcBAAB0AgAALwAYAAAAAAABAAAApIE5dwcAaHR0cC90ZXN0cy9tZWRpYS90ZXh0LXNl
cnZlZC1hcy10ZXh0LXN0ZGVyci50eHRVVAUAA4vhjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAB6m/NIAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UHpeAcAaHR0cC90ZXN0cy9taXNjL1VUBQAD
p+GOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGCb80hehPRp5gAAAGIBAAAtABgAAAAAAAEA
AACkgTN5BwBodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRVVAUA
A3Thjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABhm/NIVHZLTsUAAAD+AAAAPwAYAAAAAAAB
AAAApIGAegcAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVhZHlzdGF0ZWNo
YW5nZS1zdGRlcnIudHh0VVQFAAN14Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYZvzSF4r
9tLEAAAA/gAAAFsAGAAAAAAAAQAAAKSBvnsHAGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJhbWUt
ZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1vdmFsLXN0ZGVy
ci50eHRVVAUAA3Xhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB6m/NIFTU1knoAAAC8AAAA
KgAYAAAAAAABAAAApIEXfQcAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIu
dHh0VVQFAAOn4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAdZvzSAAAAAAAAAAAAAAAABQA
GAAAAAAAAAAQAO1B9X0HAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAOd4Y5XdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAYJvzSM8c0ULLAAAA3QEAAFUAGAAAAAAAAQAAAKSBQ34HAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1ibG9ja2VkLW5vLWNy
b3Nzb3JpZ2luLXN0ZGVyci50eHRVVAUAA3Phjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABg
m/NIZuuMttsAAACsAgAASAAYAAAAAAABAAAApIGdfwcAaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52
YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLWxvY2FsaG9zdC1zdGRlcnIudHh0VVQFAANz4Y5X
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYJvzSE/8zzEjAQAAFQMAAEcAGAAAAAAAAQAAAKSB
+oAHAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1y
ZWRpcmVjdC1zdGRlcnIudHh0VVQFAAN04Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAb5vz
SAAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BnoIHAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L1VUBQADkeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGCb80iH
O0Rv1wAAAPgBAABLABgAAAAAAAEAAACkgQKDBwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9hdWRpby1yZWRpcmVjdC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA3Phjld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABdm/NIdIGYADQBAADRAgAATAAYAAAAAAABAAAApIFe
hAcAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYXVkaW8tcmVkaXJl
Y3QtYWxsb3dlZDItc3RkZXJyLnR4dFVUBQADcuGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AGCb80jCNsHhpwAAAIoBAABYABgAAAAAAAEAAACkgRiGBwBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybC1kb2VzLW5vdC1tYXRjaC1zb3VyY2Utc2VsZi1z
dGRlcnIudHh0VVQFAANz4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAZJvzSAAAAAAAAAAA
AAAAAEQAGAAAAAAAAAAQAO1BUYcHAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvVVQFAAN74Y5XdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAZJvzSEwCxKToAAAAJgMAAHkAGAAAAAAAAQAAAKSBz4cHAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMv
dXBncmFkZS1pbnNlY3VyZS1hdWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUA
A3vhjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABmm/NIAAAAAAAAAAAAAAAAPQAYAAAAAAAA
ABAA7UFqiQcAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFn
ZW50U2hhZG93RE9NL1VUBQADgOGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGWb80hfxual
NQEAANECAABTABgAAAAAAAEAAACkgeGJBwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vYWxsb3ctYXVkaW8tc3RkZXJyLnR4dFVUBQAD
feGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGab80hB7UwouwAAAJIBAABTABgAAAAAAAEA
AACkgaOLBwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdl
bnRTaGFkb3dET00vYWxsb3ctdmlkZW8tc3RkZXJyLnR4dFVUBQADf+GOV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAGab80ibVz+UhAAAAMAAAABrABgAAAAAAAEAAACkgeuMBwBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVs
dC1zcmMtb2JqZWN0LWRhdGEtdXJsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADgOGOV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAG2b80hVK00t3gAAAFICAABLABgAAAAAAAEAAACkgRSOBwBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxv
d2VkLXN0ZGVyci50eHRVVAUAA47hjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABtm/NIllek
GrsAAACSAQAATAAYAAAAAAABAAAApIF3jwcAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdmlkZW8tcmVkaXJlY3QtYWxsb3dlZDItc3RkZXJyLnR4dFVUBQADjuGOV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG2b80hVK00t3gAAAFICAABmABgAAAAAAAEAAACkgbiQ
BwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWh0
dHAtdXJsLWFsbG93ZWQtYnktY3NwLW1lZGlhLXNyYy1zdGFyLXN0ZGVyci50eHRVVAUAA47hjld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABtm/NIG1rmcYQAAADAAAAAWQAYAAAAAAABAAAApIE2
kgcAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLWJsb2It
aW5oZXJpdHMtY3NwLWJsb2Nrcy1ldmFsLXN0ZGVyci50eHRVVAUAA47hjld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABvm/NIY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIFNkwcAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVU
BQADkeGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG+b80hjqqxsggAAAKgAAABSABgAAAAA
AAEAAACkgUmUBwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wt
dW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAOR4Y5XdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAYJvzSCSqcjOEAAAAwAAAADUAGAAAAAAAAQAAAKSBV5UHAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwMS1zdGRlcnIudHh0VVQFAAN04Y5XdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZ5vzSKt4+6G1AAAA3AEAADoAGAAAAAAAAQAAAKSBSpYH
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdlYnNxbC1hbGxvd2VkLXN0ZGVyci50
eHRVVAUAA4Hhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABnm/NI3v266a8AAADuAAAAMgAY
AAAAAAABAAAApIFzlwcAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLXN0
ZGVyci50eHRVVAUAA4Hhjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpm/NIYpzSDbkAAACS
AQAAPQAYAAAAAAABAAAApIGOmAcAaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC12aWRlby1zb3Vy
Y2UtZnJvbS1yZW1vdGUtc3RkZXJyLnR4dFVUBQADheGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAGmb80h/HCAbhAAAAMAAAAA6ABgAAAAAAAEAAACkgb6ZBwBodHRwL3Rlc3RzL3NlY3VyaXR5
L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS1zdGRlcnIudHh0VVQFAAOG4Y5XdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAaJvzSAAAAAAAAAAAAAAAACEAGAAAAAAAAAAQAO1BtpoHAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L1VUBQADhOGOV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGib80i3tYGx7gAAAIkEAABOABgAAAAAAAEAAACkgRGbBwBodHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1hdWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0ZGVy
ci50eHRVVAUAA4Thjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABom/NI6JoBIYQAAADAAAAA
QgAYAAAAAAABAAAApIGHnAcAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtY3NzLWluLWlmcmFtZS1zdGRlcnIudHh0VVQFAAOE4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAcJvzSN79uumvAAAA7gAAAD8AGAAAAAAAAQAAAKSBh50HAGh0dHAvdGVzdHMvc2VjdXJp
dHkvc3RvcmFnZS1ibG9ja2luZy1sb29zZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUBQADk+GOV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHCb80je/brprwAAAO4AAABDABgAAAAAAAEAAACkga+e
BwBodHRwL3Rlc3RzL3NlY3VyaXR5L3N0b3JhZ2UtYmxvY2tpbmctc3RyZW5ndGhlbmVkLXdlYnNx
bC1zdGRlcnIudHh0VVQFAAOU4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcZvzSC06vdfi
AAAAmAQAADkAGAAAAAAAAQAAAKSB258HAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mt
b3JpZ2luLWNhY2hpbmctc3RkZXJyLnR4dFVUBQADleGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAHGb80jKE/F8EgEAAOcBAAA/ABgAAAAAAAEAAACkgTChBwBodHRwL3Rlc3RzL3NlY3VyaXR5
L3ZpZGVvLXBvc3Rlci1jcm9zcy1vcmlnaW4tY3Jhc2gyLXN0ZGVyci50eHRVVAUAA5Xhjld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAB1m/NIYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIG7ogcA
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdp
bi1zdGRlcnIudHh0VVQFAAOd4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAapvzSAAAAAAA
AAAAAAAAABMAGAAAAAAAAAAQAO1By6MHAGh0dHAvdGVzdHMvc3RvcmFnZS9VVAUAA4fhjld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABqm/NI3v266a8AAADuAAAARQAYAAAAAAABAAAApIEYpAcA
aHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJlY3QtY29udGV4
dC1zdGRlcnIudHh0VVQFAAOH4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAjJvzSAAAAAAA
AAAAAAAAABUAGAAAAAAAAAAQAO1BRqUHAGh0dHAvdGVzdHMvd2Vic29ja2V0L1VUBQADyOGOV3V4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIyb80gAAAAAAAAAAAAAAAAbABgAAAAAAAAAEADtQZWl
BwBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9VVAUAA8jhjld1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACMm/NIAAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA7UHqpQcAaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9VVAUAA8jhjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACMm/NI
AAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UFEpgcAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS93b3JrZXJzL1VUBQADyOGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKb80gIt9rE
J1UAAPPwAQBLABgAAAAAAAEAAACkgaamBwBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3dvcmtlcnMvY2xvc2UtY29kZS1hbmQtcmVhc29uLWNyYXNoLWxvZy50eHRVVAUAAxDijld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACMm/NIBcKd8WcEAAAzDgAASAAYAAAAAAABAAAApIFS/AcA
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL2Nsb3NlLWNvZGUtYW5kLXJl
YXNvbi1zdGRlcnIudHh0VVQFAAPI4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3JrzSDUT
xpqZBQAAERAAAAoAGAAAAAAAAQAAAKSBOwEIAGh0dHBkLmNvbmZVVAUAA4Dgjld1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACYm/NIAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEYBwgAaW1wb3J0
ZWQvVVQFAAPf4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAl5vzSAAAAAAAAAAAAAAAAA8A
GAAAAAAAAAAQAO1BWwcIAGltcG9ydGVkL2JsaW5rL1VUBQAD3eGOV3V4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAJeb80gAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQaQHCABpbXBvcnRlZC9ibGlu
ay9lZGl0aW5nL1VUBQAD3eGOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJeb80gAAAAAAAAA
AAAAAAAhABgAAAAAAAAAEADtQfUHCABpbXBvcnRlZC9ibGluay9lZGl0aW5nL3NlbGVjdGlvbi9V
VAUAA93hjld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACym/NIIVq3lItMAACYdgEAUAAYAAAA
AAABAAAApIFQCAgAaW1wb3J0ZWQvYmxpbmsvZWRpdGluZy9zZWxlY3Rpb24vb2Zmc2V0LWZyb20t
cG9pbnQtY29tcGxleC1zY3JpcHRzLWNyYXNoLWxvZy50eHRVVAUAAxDijld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACXm/NI2nFpW08EAAAeDAAATQAYAAAAAAABAAAApIFlVQgAaW1wb3J0ZWQv
YmxpbmsvZWRpdGluZy9zZWxlY3Rpb24vb2Zmc2V0LWZyb20tcG9pbnQtY29tcGxleC1zY3JpcHRz
LXN0ZGVyci50eHRVVAUAA93hjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACYm/NIAAAAAAAA
AAAAAAAADQAYAAAAAAAAABAA7UE7WggAaW1wb3J0ZWQvdzNjL1VUBQAD3+GOV3V4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAJib80gAAAAAAAAAAAAAAAAgABgAAAAAAAAAEADtQYJaCABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQAD3+GOV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAJib80gAAAAAAAAAAAAAAAArABgAAAAAAAAAEADtQdxaCABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvVVQFAAPf4Y5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAmJvzSLnqQ16EAAAAwAAAAFQAGAAAAAAAAQAAAKSBQVsIAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tcGFyc2luZy9ET01QYXJzZXItcGFyc2VGcm9tU3RyaW5nLWh0bWwtc3Rk
ZXJyLnR4dFVUBQAD3+GOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHyb80iDY+36ZwIAAKIV
AAAaABgAAAAAAAEAAACkgVNcCABweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUBQADrOGOV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHyb80jLgkTcBwEAAI8CAAAaABgAAAAAAAEAAACkgQ5f
CABweXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADrOGOV3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAN2a80gAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgWlgCABweXdlYnNvY2tldC53c3Mu
bG9nLWVyci50eHRVVAUAA4Lgjld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADdmvNIAAAAAAAA
AAAAAAAAGwAYAAAAAAAAAAAApIG+YAgAcHl3ZWJzb2NrZXQud3NzLmxvZy1vdXQudHh0VVQFAAOC
4I5XdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAs5vzSL56j7JOJwAAx6kAAAwAGAAAAAAAAQAA
AKSBE2EIAHJlc3VsdHMuaHRtbFVUBQADEeKOV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKb
80hpyzwMcEoFAFr8GwAKABgAAAAAAAEAAACkgaeICABzdGF0cy5qc29uVVQFAAMQ4o5XdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgArZvzSF7tL8TANwAApyUFABkAGAAAAAAAAQAAAKSBW9MNAHdw
dHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAAwbijld1eAsAAQT1AQAABBQAAABQSwUGAAAAANkA
2QARYwAAbgsOAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>284082</attachid>
            <date>2016-07-19 20:35:12 -0700</date>
            <delta_ts>2016-07-19 20:35:12 -0700</delta_ts>
            <desc>performance</desc>
            <filename>scratch</filename>
            <type>application/octet-stream</type>
            <size>75545</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">Vk1zIHRlc3RlZDoKIm9nIiBhdCAvVm9sdW1lcy9EYXRhL1dLL2IvT3BlblNvdXJjZS9XZWJLaXRC
dWlsZC9SZWxlYXNlL2pzYyAocjIwMzM1MSkKImNoYW5nZSIgYXQgL1ZvbHVtZXMvRGF0YS9XSy9h
L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9qc2MgKHIyMDMzNTEpCgpDb2xsZWN0ZWQg
OCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggOCBWTSBpbnZvY2F0aW9ucyBwZXIgYmVu
Y2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4gc2FtcGxlCm1lYXN1cmVtZW50
cy4gVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRpb24gZm9yIHdhcm0t
dXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvCmdldCBt
aWNyb3NlY29uZC1sZXZlbCB0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRp
bWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4KCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZyAgICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IApPY3RhbmU6CiAgIGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MTUxNDErLTAuMDAxMzEgICAgPyAgICAgMC4xNTIwNystMC4wMDIxOSAgICAgICA/CiAgIGRlY3J5
cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTc1NzkrLTAuMDIxMzAgICAg
PyAgICAgMi41NzcwNystMC4wMzY2NyAgICAgICA/CiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAg
ICAgICAgICAgIHgyICAgICAgIDAuMTI3ODYrLTAuMDAxNTcgICAgICAgICAgMC4xMjcwMistMC4w
MDEyNSAgICAgICAKICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4yNzQzNistMC4wMDI3OCAgICAgICAgICAwLjI3NDEyKy0wLjAwMjY1ICAgICAgIAogICBib3ll
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYyMDc5Ky0wLjEyODUzICAg
ID8gICAgIDQuNjg0NTMrLTAuMTQ3ODkgICAgICAgPyBtaWdodCBiZSAxLjAxMzh4IHNsb3dlcgog
ICBuYXZpZXItc3Rva2VzICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA0LjcwNDYwKy0wLjAy
OTY4ICAgID8gICAgIDQuNzExNTgrLTAuMDIzMjQgICAgICAgPwogICByYXl0cmFjZSAgICAgICAg
ICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjc3NDA1Ky0wLjAwNjYxICAgICAgICAgIDAuNzcx
NzcrLTAuMDA0OTUgICAgICAgCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgIHgy
ICAgICAgIDAuMDc5NTMrLTAuMDAxMzIgICAgICAgICAgMC4wNzg3MSstMC4wMDA2NyAgICAgICAg
IG1pZ2h0IGJlIDEuMDEwNHggZmFzdGVyCiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyICAgICAgIDAuMzI3ODArLTAuMDAyMDIgICAgPyAgICAgMC4zMzE2MSstMC4wMDU1OSAg
ICAgICA/IG1pZ2h0IGJlIDEuMDExNnggc2xvd2VyCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHgyICAgICAgMTUuMTE1ODQrLTAuMTI4NzkgICAgICAgICAxNC45NDQyNCstMC4x
OTIwNCAgICAgICAgIG1pZ2h0IGJlIDEuMDExNXggZmFzdGVyCiAgIHBkZmpzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHgyICAgICAgMzYuODQxNjArLTAuNjQxNTggICAgPyAgICAzNy4wNzYx
NCstMC40NzExNyAgICAgICA/CiAgIG1hbmRyZWVsICAgICAgICAgICAgICAgICAgICAgICAgIHgy
ICAgICAgNDAuNjM2NzcrLTAuMTg4ODcgICAgICAgICA0MC4zNDk0MSstMC4xODY1NSAgICAgICAK
ICAgZ2JlbXUgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAyOC4wODQwNistMC4x
MTQ4NCAgICAhICAgIDI4LjUzMzcxKy0wLjMxOTM0ICAgICAgICEgZGVmaW5pdGVseSAxLjAxNjB4
IHNsb3dlcgogICBjbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ3
Mjk0Ky0wLjAwMTMzICAgICAgICAgIDAuNDcxNjcrLTAuMDAxMzggICAgICAgCiAgIGpxdWVyeSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzcyMTIrLTAuMDYyMTcgICAgPyAg
ICAgNi40MzMzNSstMC4wNTI0MCAgICAgICA/CiAgIGJveDJkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHgyICAgICAgIDguODc3MjMrLTAuMDQ1NDMgICAgPyAgICAgOS4yOTM2NCstMC44NDY1
MiAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2OXggc2xvd2VyCiAgIHpsaWIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICAzNTAuMzMxNTQrLTEuODI3MjkgICAgICAgIDM0OS45MjAxMist
Mi45NjIxNSAgICAgICAKICAgdHlwZXNjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgeDIgICAg
IDU5MC4xNzYyNCstNy42OTg0MSAgICAgICAgNTg5LjUyMDM5Ky01Ljk1MDc5ICAgICAgIAoKICAg
PGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44MTM3MCstMC4wMTQ3
MiAgICA/ICAgICA0LjgyOTE5Ky0wLjAyNDgyICAgICAgID8gbWlnaHQgYmUgMS4wMDMyeCBzbG93
ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
ZyAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIApLcmFrZW46CiAgIGFpLWFzdGFyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4NC4wNjIrLTIuMTA3ICAgICAgPyAgICAgIDg1LjExOCstMi40NjggICAgICAgICA/
IG1pZ2h0IGJlIDEuMDEyNnggc2xvd2VyCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAg
ICAgICAgICAgICAgICAzNi4wMTYrLTAuNDMwICAgICAgPyAgICAgIDM4LjAyOCstNC41MjggICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDU1OXggc2xvd2VyCiAgIGF1ZGlvLWRmdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5Ni4xNjYrLTEuNjUwICAgICAgPyAgICAgIDk2Ljk3NSstMS43
MzAgICAgICAgICA/CiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyOC4wMTArLTAuMjM2ICAgICAgPyAgICAgIDI5LjkxNSstNC42MzAgICAgICAgICA/IG1pZ2h0
IGJlIDEuMDY4MHggc2xvd2VyCiAgIGF1ZGlvLW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0Ni42NzIrLTAuNTAzICAgICAgPyAgICAgIDQ3LjA3OCstMS4yNzkgICAgICAgICA/
CiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAgICAgICA1Ny40OTcrLTAu
MDgzICAgICAgPyAgICAgIDU4LjIzOCstMS4yMjUgICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyOXgg
c2xvd2VyCiAgIGltYWdpbmctZGVzYXR1cmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICA0My45
MjIrLTIuNDk0ICAgICAgICAgICAgIDQzLjE0MistMS45NzEgICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE4MXggZmFzdGVyCiAgIGltYWdpbmctZ2F1c3NpYW4tYmx1ciAgICAgICAgICAgICAgICAgICAg
ICA1OC4xOTYrLTIuMzAyICAgICAgICAgICAgIDU3LjQxMystMS41MDggICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEzNnggZmFzdGVyCiAgIGpzb24tcGFyc2UtZmluYW5jaWFsICAgICAgICAgICAgICAg
ICAgICAgICAzMi4yNTErLTAuNjgwICAgICAgPyAgICAgIDMyLjYyMSstMC40MDYgICAgICAgICA/
IG1pZ2h0IGJlIDEuMDExNXggc2xvd2VyCiAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAg
ICAgICAgICAgICAgICAyMS41MjQrLTAuODU3ICAgICAgISAgICAgIDI0LjIyMCstMS40MzkgICAg
ICAgICAhIGRlZmluaXRlbHkgMS4xMjUyeCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLWFlcyAg
ICAgICAgICAgICAgICAgICAgICAgIDM1LjU5OCstMC41MDIgICAgICA/ICAgICAgMzYuMDMxKy0x
LjQ2NiAgICAgICAgID8gbWlnaHQgYmUgMS4wMTIxeCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRv
LWNjbSAgICAgICAgICAgICAgICAgICAgICAgIDMyLjA5NSstMS43OTcgICAgICA/ICAgICAgMzIu
MjM3Ky0xLjczNCAgICAgICAgID8KICAgc3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAg
ICAgICAgICAgIDg5LjQ2OSstMi4zNDggICAgICAgICAgICAgODguNDQyKy0xLjU1OSAgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTE2eCBmYXN0ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVy
YXRpdmUgICAgICAgICAgIDI5LjkyNystMS4zNDkgICAgICAgICAgICAgMjguODkyKy0wLjQzNCAg
ICAgICAgICAgbWlnaHQgYmUgMS4wMzU4eCBmYXN0ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0OS4zODYrLTAuMjQwICAgICAgPyAgICAgIDQ5Ljg4Mist
MC40NzYgICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMHggc2xvd2VyCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2cgICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQXNtQmVuY2g6
CiAgIGJpZ2ZpYi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDEyLjgzNTErLTYu
NDQyOSAgICAgICAgICA0MTEuNTk2MCstNy41MTM0ICAgICAgICAKICAgY3JheS5jICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzNjkuOTI1MSstMy45MTc4ICAgICA/ICAgIDM3Mi4z
NzkzKy05Ljg0NjUgICAgICAgID8KICAgZHJ5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0MzIuMzM5NCstNjEuNDA1MyAgICAgICAgIDQxMS41MzkzKy0yLjkxMjYgICAgICAg
ICAgbWlnaHQgYmUgMS4wNTA1eCBmYXN0ZXIKICAgRmxvYXRNTS5jICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2ODMuNDM5MCstNC41MDAwICAgICAgICAgIDY4MS45NTY3Ky02LjI4MzMg
ICAgICAgIAogICBnY2MtbG9vcHMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQ4Mi44
OTIzKy00OS4xMTczICAgICAgICAzNDUxLjU0MjIrLTI4LjcyMjAgICAgICAgCiAgIG4tYm9keS5j
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzY4LjA2NjYrLTQuNTA5NCAgICAgICAg
ICA3NjUuNDcwNSstNC43MDA4ICAgICAgICAKICAgUXVpY2tzb3J0LmMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzODEuNDg1NystMS42Mzg2ICAgICAgICAgIDM3OC4zMzY3Ky0zLjA5MjAg
ICAgICAgIAogICBzdGVwYW5vdl9jb250YWluZXIuY3BwICAgICAgICAgICAgICAgICAgMzI0Ny4x
NzI3Ky0yNS45ODIyICAgICAgICAzMjQyLjY0NTArLTMzLjAwMjkgICAgICAgCiAgIFRvd2Vycy5j
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU0LjMwNzcrLTIuNDY1OSAgICAgXiAg
ICAyNTEuNDI1NCstMC4zOTkzICAgICAgICBeIGRlZmluaXRlbHkgMS4wMTE1eCBmYXN0ZXIKCiAg
IDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjk0LjY1NTgrLTEwLjQ0
NDAgICAgICAgICA2ODkuMDc0MistMi4zMTI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDA4MXggZmFz
dGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b2cgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKR2VvbWVhbiBvZiBwcmVmZXJyZWQgbWVhbnM6CiAgIDxzY2FsZWQtcmVzdWx0
PiAgICAgICAgICAgICAgICAgICAgICAgICAgIDU0Ljg2MjArLTAuMzQyOCAgICAgPyAgICAgNTQu
OTU2NSstMC4xNTkxICAgICAgICA/IG1pZ2h0IGJlIDEuMDAxN3ggc2xvd2VyCgotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQoKQmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyIG9uIFNhYW1zLU1hY0Jv
b2stUHJvIChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoib2ciIGF0IC9Wb2x1bWVzL0Rh
dGEvV0svYi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMjAzMzUxKQoiY2hh
bmdlIiBhdCAvVm9sdW1lcy9EYXRhL1dLL2EvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNl
L2pzYyAocjIwMzM1MSkKCkNvbGxlY3RlZCA1MCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdp
dGggNTAgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1pdHRlZCBhIGNhbGwgdG8gZ2Mo
KQpiZXR3ZWVuIHNhbXBsZSBtZWFzdXJlbWVudHMuIFVzZWQgMSBiZW5jaG1hcmsgaXRlcmF0aW9u
IHBlciBWTSBpbnZvY2F0aW9uIGZvciB3YXJtLXVwLiBVc2VkIHRoZQpqc2Mtc3BlY2lmaWMgcHJl
Y2lzZVRpbWUoKSBmdW5jdGlvbiB0byBnZXQgbWljcm9zZWNvbmQtbGV2ZWwgdGltaW5nLiBSZXBv
cnRpbmcgYmVuY2htYXJrIGV4ZWN1dGlvbiB0aW1lcwp3aXRoIDk1JSBjb25maWRlbmNlIGludGVy
dmFscyBpbiBtaWxsaXNlY29uZHMuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9nICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCgozZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjcxNyst
MC4wOTY3ICAgICA/ICAgICAgNC44MDc1Ky0wLjE2MTggICAgICAgID8gbWlnaHQgYmUgMS4wMjkx
eCBzbG93ZXIKM2QtbW9ycGggICAgICAgICAgICAgICAgICAgICAgICA0LjkzOTYrLTAuMTEwOCAg
ICAgICAgICAgIDQuOTA4OCstMC4xNDczICAgICAgICAKM2QtcmF5dHJhY2UgICAgICAgICAgICAg
ICAgICAgICA0Ljg0MTkrLTAuMTE2MSAgICAgPyAgICAgIDQuOTE1NystMC4xNjc3ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE1Mnggc2xvd2VyCmFjY2Vzcy1iaW5hcnktdHJlZXMgICAgICAgICAgICAg
MS45MTU2Ky0wLjA1MzEgICAgICAgICAgICAxLjkwNzcrLTAuMDY4MiAgICAgICAgCmFjY2Vzcy1m
YW5ua3VjaCAgICAgICAgICAgICAgICAgNS40NDU4Ky0wLjE2OTggICAgICAgICAgICA1LjMyMDAr
LTAuMDg0NyAgICAgICAgICBtaWdodCBiZSAxLjAyMzd4IGZhc3RlcgphY2Nlc3MtbmJvZHkgICAg
ICAgICAgICAgICAgICAgIDIuNTgyMystMC4xMzY2ICAgICAgICAgICAgMi41MDkxKy0wLjExNzYg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjkyeCBmYXN0ZXIKYWNjZXNzLW5zaWV2ZSAgICAgICAgICAg
ICAgICAgICAzLjA4OTgrLTAuMDczMSAgICAgPyAgICAgIDMuMTg1MistMC4xMTQyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDMwOXggc2xvd2VyCmJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAg
MS4wMDE1Ky0wLjAxNDkgICAgID8gICAgICAxLjAzMDQrLTAuMDM3MCAgICAgICAgPyBtaWdodCBi
ZSAxLjAyODl4IHNsb3dlcgpiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgIDIuNTE1NCst
MC4wNzg2ICAgICAgICAgICAgMi40NzgwKy0wLjA2ODQgICAgICAgICAgbWlnaHQgYmUgMS4wMTUx
eCBmYXN0ZXIKYml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAxLjkyOTArLTAuMDUzMSAg
ICAgICAgICAgIDEuOTI3MCstMC4wMzc4ICAgICAgICAKYml0b3BzLW5zaWV2ZS1iaXRzICAgICAg
ICAgICAgICAyLjkyMjIrLTAuMDM0OSAgICAgPyAgICAgIDMuMDE1OSstMC4wODczICAgICAgICA/
IG1pZ2h0IGJlIDEuMDMyMXggc2xvd2VyCmNvbnRyb2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAg
Mi4yMjA2Ky0wLjA3NDMgICAgID8gICAgICAyLjI1OTkrLTAuMDk3NyAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNzd4IHNsb3dlcgpjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgIDQuMzcyMSst
MC4xNzAwICAgICA/ICAgICAgNC4zODk3Ky0wLjE3MTkgICAgICAgID8KY3J5cHRvLW1kNSAgICAg
ICAgICAgICAgICAgICAgICAyLjY0MzkrLTAuMDk1MCAgICAgPyAgICAgIDIuNjUxNistMC4xMDYx
ICAgICAgICA/CmNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgMi43MjYzKy0wLjExMzcg
ICAgICAgICAgICAyLjY3ODUrLTAuMDY4MiAgICAgICAgICBtaWdodCBiZSAxLjAxNzh4IGZhc3Rl
cgpkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAgICAgIDYuMjEwNystMC4xMTgzICAgICA/ICAg
ICAgNi4zMDIyKy0wLjIzMDggICAgICAgID8gbWlnaHQgYmUgMS4wMTQ3eCBzbG93ZXIKZGF0ZS1m
b3JtYXQteHBhcmIgICAgICAgICAgICAgICA0LjU3NDgrLTAuMDk4NyAgICAgPyAgICAgIDQuNjU0
NSstMC4xMjgzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3NHggc2xvd2VyCm1hdGgtY29yZGljICAg
ICAgICAgICAgICAgICAgICAgMi42NjUzKy0wLjA5ODQgICAgID8gICAgICAyLjcwMDErLTAuMDkw
MyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzF4IHNsb3dlcgptYXRoLXBhcnRpYWwtc3VtcyAgICAg
ICAgICAgICAgIDMuOTE3NCstMC4xMDU1ICAgICA/ICAgICAgNC4wMDEwKy0wLjEyMTMgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjEzeCBzbG93ZXIKbWF0aC1zcGVjdHJhbC1ub3JtICAgICAgICAgICAg
ICAxLjk1MTArLTAuMTAxOSAgICAgICAgICAgIDEuOTQ3MystMC4wODIyICAgICAgICAKcmVnZXhw
LWRuYSAgICAgICAgICAgICAgICAgICAgICA2LjQ3NzErLTAuMTQ4OSAgICAgICAgICAgIDYuNDA4
NSstMC4xNTc2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwN3ggZmFzdGVyCnN0cmluZy1iYXNlNjQg
ICAgICAgICAgICAgICAgICAgNC4wODIwKy0wLjE0NDUgICAgICAgICAgICAzLjkzNzQrLTAuMTM1
NCAgICAgICAgICBtaWdodCBiZSAxLjAzNjd4IGZhc3RlcgpzdHJpbmctZmFzdGEgICAgICAgICAg
ICAgICAgICAgIDUuMjc2NistMC4xNjgzICAgICA/ICAgICAgNS40MTA5Ky0wLjE5NDYgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjU0eCBzbG93ZXIKc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAg
ICA4LjMzMzUrLTAuMzU1NCAgICAgICAgICAgIDguMjI2NCstMC4yOTY1ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEzMHggZmFzdGVyCnN0cmluZy11bnBhY2stY29kZSAgICAgICAgICAgICAxNy45NjYy
Ky0wLjI5NTUgICAgID8gICAgIDE3Ljk5MDMrLTAuNTUxNyAgICAgICAgPwpzdHJpbmctdmFsaWRh
dGUtaW5wdXQgICAgICAgICAgIDQuMDg4NistMC4xNjYxICAgICAgICAgICAgNC4wMTczKy0wLjE5
MzQgICAgICAgICAgbWlnaHQgYmUgMS4wMTc3eCBmYXN0ZXIKCjxhcml0aG1ldGljPiAgICAgICAg
ICAgICAgICAgICAgNC4zNjAwKy0wLjAyNjAgICAgID8gICAgICA0LjM2ODUrLTAuMDMwNiAgICAg
ICAgPyBtaWdodCBiZSAxLjAwMTl4IHNsb3dlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQmVuY2htYXJrIHJlcG9ydCBmb3IgS3Jha2VuIG9u
IFNhYW1zLU1hY0Jvb2stUHJvIChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoib2ciIGF0
IC9Wb2x1bWVzL0RhdGEvV0svYi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIChy
MjAzMzUxKQoiY2hhbmdlIiBhdCAvVm9sdW1lcy9EYXRhL1dLL2EvT3BlblNvdXJjZS9XZWJLaXRC
dWlsZC9SZWxlYXNlL2pzYyAocjIwMzM1MSkKCkNvbGxlY3RlZCAxNiBzYW1wbGVzIHBlciBiZW5j
aG1hcmsvVk0sIHdpdGggMTYgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1pdHRlZCBh
IGNhbGwgdG8gZ2MoKSBiZXR3ZWVuIHNhbXBsZQptZWFzdXJlbWVudHMuIFVzZWQgMSBiZW5jaG1h
cmsgaXRlcmF0aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZvciB3YXJtLXVwLiBVc2VkIHRoZSBqc2Mt
c3BlY2lmaWMgcHJlY2lzZVRpbWUoKQpmdW5jdGlvbiB0byBnZXQgbWljcm9zZWNvbmQtbGV2ZWwg
dGltaW5nLiBSZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1dGlvbiB0aW1lcyB3aXRoIDk1JSBjb25m
aWRlbmNlIGludGVydmFscyBpbgptaWxsaXNlY29uZHMuCgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2cgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCmFpLWFzdGFyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4NC45NDcrLTEuNDA3ICAgICAgICAgICAgIDgzLjk2NCstMS4z
MDYgICAgICAgICAgIG1pZ2h0IGJlIDEuMDExN3ggZmFzdGVyCmF1ZGlvLWJlYXQtZGV0ZWN0aW9u
ICAgICAgICAgICAgICAgICAgICAzNy43NDkrLTIuNzczICAgICAgICAgICAgIDM2LjkwNystMS45
ODEgICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyOHggZmFzdGVyCmF1ZGlvLWRmdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5Ni4zNTMrLTAuOTM5ICAgICAgICAgICAgIDk2LjI3OCstMC43
MjIgICAgICAgICAKYXVkaW8tZmZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2Ljc2
OCstNC4yOTggICAgICAgICAgICAgMzEuMTA4Ky0zLjU1MSAgICAgICAgICAgbWlnaHQgYmUgMS4x
ODE5eCBmYXN0ZXIKYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAgICAgICAgICAgICAgIDQ2Ljcz
MistMC4zMjUgICAgICA/ICAgICAgNDcuMzc5Ky0wLjgwMCAgICAgICAgID8gbWlnaHQgYmUgMS4w
MTM5eCBzbG93ZXIKaW1hZ2luZy1kYXJrcm9vbSAgICAgICAgICAgICAgICAgICAgICAgIDU5LjU1
NCstMi4zNjkgICAgICAgICAgICAgNTcuODc1Ky0wLjQzMyAgICAgICAgICAgbWlnaHQgYmUgMS4w
MjkweCBmYXN0ZXIKaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgIDQyLjYz
NCstMC44NjAgICAgICA/ICAgICAgNDMuNjg0Ky0xLjUzMyAgICAgICAgID8gbWlnaHQgYmUgMS4w
MjQ2eCBzbG93ZXIKaW1hZ2luZy1nYXVzc2lhbi1ibHVyICAgICAgICAgICAgICAgICAgIDU2Ljk3
NCstMS40MjMgICAgICA/ICAgICAgNTcuMTA1Ky0xLjE1OSAgICAgICAgID8KanNvbi1wYXJzZS1m
aW5hbmNpYWwgICAgICAgICAgICAgICAgICAgIDMyLjM5NCstMC42NTcgICAgICA/ICAgICAgMzMu
NDc3Ky0wLjkzNyAgICAgICAgID8gbWlnaHQgYmUgMS4wMzM0eCBzbG93ZXIKanNvbi1zdHJpbmdp
ZnktdGluZGVyYm94ICAgICAgICAgICAgICAgIDIxLjU2NystMC44MjYgICAgICAhICAgICAgMjMu
MTQ2Ky0wLjczMyAgICAgICAgICEgZGVmaW5pdGVseSAxLjA3MzJ4IHNsb3dlcgpzdGFuZm9yZC1j
cnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgMzUuNTUyKy0wLjUzOSAgICAgICAgICAgICAz
NS4yMTUrLTAuMjU1ICAgICAgICAgCnN0YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAgICAg
ICAgICAzMy4wMDMrLTAuNzEzICAgICAgICAgICAgIDMyLjE0NistMS4wNzggICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI2N3ggZmFzdGVyCnN0YW5mb3JkLWNyeXB0by1wYmtkZjIgICAgICAgICAgICAg
ICAgICA4OC42MjArLTAuNzgyICAgICAgICAgICAgIDg4LjM2MCstMC42ODkgICAgICAgICAKc3Rh
bmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUgICAgICAgIDI4Ljk3NSstMC40NjggICAgICAg
ICAgICAgMjguOTAwKy0wLjMwMiAgICAgICAgIAoKPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUwLjEzMCstMC4zOTEgICAgICAgICAgICAgNDkuNjgyKy0wLjI3NSAgICAg
ICAgICAgbWlnaHQgYmUgMS4wMDkweCBmYXN0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQmVuY2htYXJrIHJlcG9ydCBmb3IgSlNSZWdyZXNz
IG9uIFNhYW1zLU1hY0Jvb2stUHJvIChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoib2ci
IGF0IC9Wb2x1bWVzL0RhdGEvV0svYi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNj
IChyMjAzMzUxKQoiY2hhbmdlIiBhdCAvVm9sdW1lcy9EYXRhL1dLL2EvT3BlblNvdXJjZS9XZWJL
aXRCdWlsZC9SZWxlYXNlL2pzYyAocjIwMzM1MSkKCkNvbGxlY3RlZCA2IHNhbXBsZXMgcGVyIGJl
bmNobWFyay9WTSwgd2l0aCA2IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQg
YSBjYWxsIHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUKbWVhc3VyZW1lbnRzLiBVc2VkIDEgYmVuY2ht
YXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNj
LXNwZWNpZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8KZ2V0IG1pY3Jvc2Vjb25kLWxldmVs
IHRpbWluZy4gUmVwb3J0aW5nIGJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29u
ZmlkZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2cgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCmFiYy1mb3J3YXJk
LWxvb3AtZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAgMjQuMTIyNCstMC45MTAyICAgICAg
ICAgICAyMy4xMjA4Ky0wLjg2NTQgICAgICAgICAgbWlnaHQgYmUgMS4wNDMzeCBmYXN0ZXIKYWJj
LXBvc3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAyOC43NTMyKy0wLjU4
NjYgICAgID8gICAgIDI5LjQ2MDMrLTEuNDU1OCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDZ4IHNs
b3dlcgphYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAgICAgICAgICAgICAgICAgICAgIDIzLjgx
NjArLTEuNzMxNyAgICAgPyAgICAgMjMuODM3NSstMS4xNjM2ICAgICAgICA/CmFiYy1zaW1wbGUt
Zm9yd2FyZC1sb29wICAgICAgICAgICAgICAgICAgICAgICAgMjMuNDQ0MistMS45MTg0ICAgICA/
ICAgICAyMy40NzAwKy0xLjAxNDkgICAgICAgID8KYWJjLXNraXBweS1sb29wICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxOS44MTYwKy0wLjg0MDIgICAgID8gICAgIDIwLjY5MjgrLTEu
NDM3MiAgICAgICAgPyBtaWdodCBiZSAxLjA0NDJ4IHNsb3dlcgphYnMtYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjE1NzcrLTAuMDczMyAgICAgPyAgICAgIDIu
Mjg4MCstMC40NDk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDYwNHggc2xvd2VyCmFkYXB0LXRvLWRv
dWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTMuOTk1MistMC42NTI1ICAgICAg
ICAgICAxMy44NDc0Ky0wLjMzNjcgICAgICAgICAgbWlnaHQgYmUgMS4wMTA3eCBmYXN0ZXIKYWxp
YXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgMS4xNTYwKy0wLjMy
NzAgICAgICAgICAgICAxLjAyODErLTAuMDY2NiAgICAgICAgICBtaWdodCBiZSAxLjEyNDR4IGZh
c3RlcgphbGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjUw
MDkrLTAuNTI3MSAgICAgICAgICAgIDIuMzgwNCstMC4xOTg0ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDUwNnggZmFzdGVyCmFyZ3VtZW50cy1uYW1lZC1hbmQtcmVmbGVjdGl2ZSAgICAgICAgICAgICAg
ICAgIDcuODMyOCstMC40NzgzICAgICA/ICAgICAgNy45MTgxKy0wLjcyMjEgICAgICAgID8gbWln
aHQgYmUgMS4wMTA5eCBzbG93ZXIKYXJndW1lbnRzLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAg
ICAgICAgICAgICAgOS4yNTYxKy0wLjA2MjAgICAgID8gICAgICA5LjQ3NjgrLTAuNTIwOSAgICAg
ICAgPyBtaWdodCBiZSAxLjAyMzh4IHNsb3dlcgphcmd1bWVudHMtc3RyaWN0LW1vZGUgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE1LjMwOTUrLTAuNzA3NCAgICAgPyAgICAgMTUuMzY1NCstMC44
OTUwICAgICAgICA/CmFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuMjM4MSstMC4xNTk3ICAgICAgICAgICAgNi4xMjM3Ky0wLjA1NDggICAgICAgICAgbWln
aHQgYmUgMS4wMTg3eCBmYXN0ZXIKYXJpdHktbWlzbWF0Y2gtaW5saW5pbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgMC43OTQ0Ky0wLjA2MDAgICAgICAgICAgICAwLjc3NjIrLTAuMDQyMiAgICAg
ICAgICBtaWdodCBiZSAxLjAyMzV4IGZhc3RlcgphcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3Ry
dWN0dXJlICAgICAgICAgICAgICAzLjUzMzIrLTAuMTA3MyAgICAgPyAgICAgIDMuNTgyNCstMC4w
NzIxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzOXggc2xvd2VyCmFycmF5LW5vbmFycmF5LXBvbHlt
b3JocGljLWFjY2VzcyAgICAgICAgICAgICAgMTkuNjIwMistMS4yMDI3ICAgICA/ICAgICAyMC41
NDQ0Ky0wLjg4OTYgICAgICAgID8gbWlnaHQgYmUgMS4wNDcxeCBzbG93ZXIKYXJyYXktcHJvdG90
eXBlLWV2ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICA2NS45NDYyKy0wLjU3ODAgICAgID8g
ICAgIDY2Ljg2NzQrLTIuMDI2MyAgICAgICAgPyBtaWdodCBiZSAxLjAxNDB4IHNsb3dlcgphcnJh
eS1wcm90b3R5cGUtZm9yRWFjaCAgICAgICAgICAgICAgICAgICAgICAgIDY1LjUxODgrLTAuNDI2
MCAgICAgPyAgICAgNjUuNzY1OCstMC42OTExICAgICAgICA/CmFycmF5LXByb3RvdHlwZS1tYXAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjguNjQ5OSstMC44MDUyICAgICA/ICAgICA2OS43
MjQzKy0xLjY1MzIgICAgICAgID8gbWlnaHQgYmUgMS4wMTU3eCBzbG93ZXIKYXJyYXktcHJvdG90
eXBlLXJlZHVjZSAgICAgICAgICAgICAgICAgICAgICAgICA2NC40MTAzKy0wLjYwNTMgICAgID8g
ICAgIDY0LjkxMTQrLTAuOTQzNyAgICAgICAgPwphcnJheS1wcm90b3R5cGUtcmVkdWNlUmlnaHQg
ICAgICAgICAgICAgICAgICAgIDg4LjM5ODgrLTMuNjIxMSAgICAgPyAgICAgODkuMjkwNSstMS40
OTcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMXggc2xvd2VyCmFycmF5LXByb3RvdHlwZS1zb21l
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjYuMjkwOSstMi4wNDgwICAgICA/ICAgICA2Ny4x
MDU1Ky0xLjc2ODEgICAgICAgID8gbWlnaHQgYmUgMS4wMTIzeCBzbG93ZXIKYXJyYXktc3BsaWNl
LWNvbnRpZ3VvdXMgICAgICAgICAgICAgICAgICAgICAgICAyMS41NzIwKy0wLjc2ODYgICAgICAg
ICAgIDIwLjA3NzUrLTEuMTQ0MSAgICAgICAgICBtaWdodCBiZSAxLjA3NDR4IGZhc3RlcgphcnJh
eS13aXRoLWRvdWJsZS1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ1MDUrLTEuMDQ5
MCAgICAgICAgICAgIDMuMDMyOCstMC4xMzI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTM3N3ggZmFz
dGVyCmFycmF5LXdpdGgtZG91YmxlLWluY3JlbWVudCAgICAgICAgICAgICAgICAgICAgIDIuNjA0
MistMC4xNzE1ICAgICA/ICAgICAgMi42MTA0Ky0wLjE1MjcgICAgICAgID8KYXJyYXktd2l0aC1k
b3VibGUtbXVsLWFkZCAgICAgICAgICAgICAgICAgICAgICAgMy4zNDEyKy0wLjA3NTIgICAgID8g
ICAgICAzLjQyNTMrLTAuMTYzNiAgICAgICAgPyBtaWdodCBiZSAxLjAyNTJ4IHNsb3dlcgphcnJh
eS13aXRoLWRvdWJsZS1zdW0gICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc0NTYrLTAuNTA4
MiAgICAgICAgICAgIDIuNTE1NystMC4wNzE2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkxNHggZmFz
dGVyCmFycmF5LXdpdGgtaW50MzItYWRkLXN1YiAgICAgICAgICAgICAgICAgICAgICAgIDQuNTU4
MistMC4xODg5ICAgICAgICAgICAgNC40NDM4Ky0wLjEwNjUgICAgICAgICAgbWlnaHQgYmUgMS4w
MjU3eCBmYXN0ZXIKYXJyYXktd2l0aC1pbnQzMi1vci1kb3VibGUtc3VtICAgICAgICAgICAgICAg
ICAgMi42NTI0Ky0wLjEwMjMgICAgID8gICAgICAyLjcwNzYrLTAuMDk4OCAgICAgICAgPyBtaWdo
dCBiZSAxLjAyMDh4IHNsb3dlcgpBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25n
LWxpdmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYu
ODkyNSstMC4zOTE0ICAgICA/ICAgICAzNi45MjAzKy0wLjcxODkgICAgICAgID8KQXJyYXlCdWZm
ZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAxNS4wMjI3Ky0zLjAyMTIgICAg
ICAgICAgIDE0LjIyODcrLTAuNjY3NiAgICAgICAgICBtaWdodCBiZSAxLjA1NTh4IGZhc3RlcgpB
cnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQgICAgICAgICAgICAgICAzLjU0MjQrLTAu
MjI1NSAgICAgPyAgICAgIDQuMTU1OCstMC44MTk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTczMngg
c2xvd2VyCkFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcuNDMxMistMC41ODk2
ICAgICA/ICAgICAzNy41NzQzKy0xLjUwNzIgICAgICAgID8KQXJyYXlCdWZmZXItSW50OEFycmF5
LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTkuMDc3NSstMC4xMzMyICAgICA/ICAgICAxOS45NjQ1Ky0xLjk1MzYg
ICAgICAgID8gbWlnaHQgYmUgMS4wNDY1eCBzbG93ZXIKQXJyYXlCdWZmZXItSW50OEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQgICAgICAgICAxMy4yOTYyKy0wLjM0MDIgICAgID8gICAgIDEzLjM1MTkr
LTAuMjI5NiAgICAgICAgPwpBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MgICAgICAgICAgICAg
ICAgICAgIDEyLjY4MzgrLTEuNjE3MiAgICAgICAgICAgMTEuODQ3NSstMC40NjAwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDcwNnggZmFzdGVyCmFycm93ZnVuY3Rpb24tY2FsbC1pbi1jbGFzcy1jb25z
dHJ1Y3RvciAgICAgICAgNjUuNDk2NystMC40OTYxICAgICA/ICAgICA2Ni44NjI5Ky0xLjc2ODkg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjA5eCBzbG93ZXIKYXJyb3dmdW5jdGlvbi1jYWxsLWluLWNs
YXNzLW1ldGhvZCAgICAgICAgICAgICAxNS45MjI2Ky0wLjU4MTUgICAgID8gICAgIDE2LjY4NDIr
LTAuOTMwOCAgICAgICAgPyBtaWdodCBiZSAxLjA0Nzh4IHNsb3dlcgphcnJvd2Z1bmN0aW9uLWNh
bGwtaW4tZnVuY3Rpb24gICAgICAgICAgICAgICAgIDExLjU1MjcrLTAuNzA2MyAgICAgPyAgICAg
MTEuODU5MCstMC42NjMyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2NXggc2xvd2VyCmFycm93ZnVu
Y3Rpb24tY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMTY3NCstMC42MTkyICAg
ICA/ICAgICAgOS4yNzAxKy0wLjQzMjUgICAgICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIK
YXNtanNfYm9vbF9idWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4yODcyKy0w
LjQwMjggICAgICAgICAgICA3LjE3MjIrLTAuMDc4MCAgICAgICAgICBtaWdodCBiZSAxLjAxNjB4
IGZhc3Rlcgphc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAy
LjUxMjkrLTAuMTMwMyAgICAgPyAgICAgIDIuNjAxNystMC40MDEyICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM1M3ggc2xvd2VyCmFzc2lnbi1jdXN0b20tc2V0dGVyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuNzM5MystMC4wNTAwICAgICAgICAgICAgMy42OTE4Ky0wLjA3NjMgICAgICAgICAg
bWlnaHQgYmUgMS4wMTI5eCBmYXN0ZXIKYmFzaWMtc2V0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi42MjQzKy0wLjI2NjggICAgID8gICAgICA3LjE5OTIrLTAuNDA0MyAg
ICAgICAgPyBtaWdodCBiZSAxLjA4Njh4IHNsb3dlcgpiaWctaW50LW11bCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjA0MDIrLTAuMzU4MCAgICAgICAgICAgIDIuOTA0NSst
MC4wNDg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2N3ggZmFzdGVyCmJvb2xlYW4tdGVzdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjQzOCstMC4wNzg2ICAgICA/ICAgICAg
Mi43OTEzKy0wLjI2NTkgICAgICAgID8gbWlnaHQgYmUgMS4wNTU4eCBzbG93ZXIKYm91bmQtZnVu
Y3Rpb24tY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS44MDU4Ky0wLjgyMTUgICAg
ID8gICAgIDEwLjA1MTgrLTEuMTE5NyAgICAgICAgPyBtaWdodCBiZSAxLjAyNTF4IHNsb3dlcgpi
cmFuY2gtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ1ODkrLTAu
MDMzMSAgICAgPyAgICAgIDMuNTQzMistMC4xOTY2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0NHgg
c2xvd2VyCmJyYW5jaC1vbi1zdHJpbmctYXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgMTAu
MTU1NSstMC40MTAwICAgICA/ICAgICAxMC4yNDc0Ky0wLjkyMDQgICAgICAgID8KYnVnLTE1MzQz
MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wMzEwKy0wLjQ4MzEgICAg
ID8gICAgICAzLjQ0NzYrLTAuOTM1MCAgICAgICAgPyBtaWdodCBiZSAxLjEzNzV4IHNsb3dlcgpi
dWlsZC1sYXJnZS1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjEzNzArLTAu
MDYxNSAgICAgPyAgICAgMjkuODE1MCstMS4zNDgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzM3gg
c2xvd2VyCmJ5LXZhbC1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQu
MDAzOCstMC4xMjg1ICAgICA/ICAgICAgNC4wMTkyKy0wLjE1MDQgICAgICAgID8KY2FsbC1zcHJl
YWQtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi43ODE2Ky0wLjgwNzAgICAg
ICAgICAgIDIyLjExMzIrLTAuNDU4NyAgICAgICAgICBtaWdodCBiZSAxLjAzMDJ4IGZhc3Rlcgpj
YWxsLXNwcmVhZC1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI3Ljc2NDQrLTUu
OTQwNSAgICAgICAgICAgMjUuNTI4MSstMC4zODM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg3Nngg
ZmFzdGVyCmNhcHR1cmVkLWFzc2lnbm1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MzA0MCstMC4wMTc2ICAgICAgICAgICAgMC4zMDI1Ky0wLjAyNzkgICAgICAgIApjYXN0LWludC10
by1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYzODgrLTAuMTYzMyAgICAg
PyAgICAgIDQuOTgyNystMC41MzQ3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDc0MXggc2xvd2VyCmNl
bGwtYXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODA1MystMC40
MzE2ICAgICA/ICAgICAgMi44MTQwKy0wLjUzNDUgICAgICAgID8KY2ZnLXNpbXBsaWZ5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43MzQzKy0wLjI0NTAgICAgID8gICAgICAy
Ljc4OTYrLTAuMzc1OSAgICAgICAgPyBtaWdodCBiZSAxLjAyMDJ4IHNsb3dlcgpjaGFpbi1nZXR0
ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjMxNzkrLTAuMzY3NiAgICAg
ICAgICAgMTAuMzAxNistMC4xOTY5ICAgICAgICAKY21wZXEtb2JqLXRvLW9iai1vdGhlciAgICAg
ICAgICAgICAgICAgICAgICAgICAgNy44NDIwKy0wLjE4MTQgICAgICAgICAgICA3Ljc3MjMrLTAu
MDkwOCAgICAgICAgCmNvbmNhdC1hcHBlbmQtb25lICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuODU0NistMC41NjQ4ICAgICAgICAgICAgNi42ODAyKy0wLjQxNzMgICAgICAgICAgbWln
aHQgYmUgMS4wMjYxeCBmYXN0ZXIKY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC41NjQ3Ky0wLjM4NzEgICAgICAgICAgICA0LjM0ODcrLTAuMDYwOCAgICAg
ICAgICBtaWdodCBiZSAxLjA0OTd4IGZhc3RlcgpjcmVhdGUtbG90cy1vZi1mdW5jdGlvbnMgICAg
ICAgICAgICAgICAgICAgICAgICA4LjYwNTQrLTAuNDQ1MiAgICAgICAgICAgIDguMzAzOCstMC4z
NzYyICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2M3ggZmFzdGVyCmNzZS1uZXctYXJyYXktYnVmZmVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTYyMystMC4zNjIzICAgICAgICAgICAgMi4w
ODQ3Ky0wLjExNTMgICAgICAgICAgbWlnaHQgYmUgMS4wMzcyeCBmYXN0ZXIKY3NlLW5ldy1hcnJh
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yODgwKy0wLjQ2NjMgICAgICAg
ICAgICAyLjA2MzkrLTAuMDg4OSAgICAgICAgICBtaWdodCBiZSAxLjEwODZ4IGZhc3RlcgpjdXN0
b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkICAgICAgICAgICAwLjM5MDYrLTAuMDMz
MCAgICAgICAgICAgIDAuMzgzMSstMC4wMTk3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5OHggZmFz
dGVyCkRhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgNDMuMDI1
NistMy42NDQ2ICAgICAgICAgICA0Mi41MTc3Ky0zLjg4MzMgICAgICAgICAgbWlnaHQgYmUgMS4w
MTE5eCBmYXN0ZXIKZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0cmljdG1vZGUgICAgICAgICAg
ICAgMy45MDkwKy0wLjM2MTUgICAgICAgICAgICAzLjkwNzIrLTAuMzczMSAgICAgICAgCmRlbHRh
Ymx1ZS1mb3Itb2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEuMDgwNSstMy42NTE1
ICAgICAgICAgICAyOS4yNDI0Ky0wLjMwMzEgICAgICAgICAgbWlnaHQgYmUgMS4wNjI5eCBmYXN0
ZXIKZGVsdGFibHVlLXZhcmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNy44NzQ3
Ky0zLjAxMzcgICAgICAgICAgIDI2Ljg0NjgrLTAuOTk0NiAgICAgICAgICBtaWdodCBiZSAxLjAz
ODN4IGZhc3RlcgpkZXN0cnVjdHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAg
IDUyLjE0NzUrLTEuNDUwMyAgICAgPyAgICAgNTIuOTUyNystMC42MzAzICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE1NHggc2xvd2VyCmRlc3RydWN0dXJpbmctcGFyYW1ldGVycy1vdmVycmlkZGVuLWJ5
LWZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMzg1MistMC4xMTQ1ICAgICAgICAgICAgMC4zNDI4Ky0wLjAwOTUgICAgICAgICAgbWlnaHQg
YmUgMS4xMjM3eCBmYXN0ZXIKZGVzdHJ1Y3R1cmluZy1zd2FwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC45NzY2Ky0xLjIzMzUgICAgICAgICAgICA0LjMxOTUrLTAuMTMyNSAgICAgICAg
ICBtaWdodCBiZSAxLjE1MjF4IGZhc3RlcgpkaXJlY3QtYXJndW1lbnRzLWdldGJ5dmFsICAgICAg
ICAgICAgICAgICAgICAgICAxLjAyMDArLTAuMDY5MyAgICAgPyAgICAgIDEuMDgzMCstMC4wOTcx
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDYxOHggc2xvd2VyCmRpcmVjdC1hcmd1bWVudHMtbGVuZ3Ro
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuMTg2MSstMC4zMzIxICAgICA/ICAgICAgNi40MDQz
Ky0wLjMxMTcgICAgICAgID8gbWlnaHQgYmUgMS4wMzUzeCBzbG93ZXIKZGlyZWN0LWFyZ3VtZW50
cy1vdmVycmlkZGVuLWxlbmd0aCAgICAgICAgICAgICAgNi42NTA0Ky0wLjQzODcgICAgICAgICAg
ICA2LjQ0NzArLTAuMzMzMiAgICAgICAgICBtaWdodCBiZSAxLjAzMTZ4IGZhc3RlcgpkaXJlY3Qt
YXJndW1lbnRzLXBvc3NpYmx5LW92ZXJyaWRkZW4tbGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNTE5MistMC4wNjE4ICAgICA/ICAgICAgNi42
MTQ0Ky0wLjI2NzggICAgICAgID8gbWlnaHQgYmUgMS4wMTQ2eCBzbG93ZXIKZGl2LWJvb2xlYW4t
ZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44NzkwKy0wLjA5NDEgICAgIF4g
ICAgICAzLjY1NjArLTAuMDg3OCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDYxMHggZmFzdGVyCmRp
di1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDIyNystMC4w
ODUzICAgICA/ICAgICAgNy4wMjc4Ky0wLjQxODcgICAgICAgID8KZG91YmxlLWdldC1ieS12YWwt
b3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgMy45NTc0Ky0wLjE0MDYgICAgID8gICAgICA0
LjE0MDYrLTAuMjUxMCAgICAgICAgPyBtaWdodCBiZSAxLjA0NjN4IHNsb3dlcgpkb3VibGUtcG9s
bHV0aW9uLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICA4LjAyMjcrLTAuNjU3OCAgICAg
XiAgICAgIDYuNzU2NistMC4wNzIxICAgICAgICBeIGRlZmluaXRlbHkgMS4xODc0eCBmYXN0ZXIK
ZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldCAgICAgICAgICAgICAgICAgICAgMy4yMjgwKy0w
LjEwNTYgICAgID8gICAgICAzLjIzODUrLTAuMDQzNCAgICAgICAgPwpkb3VibGUtcmVhbC11c2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjkwMDgrLTMuMDk5MCAgICAgPyAgICAg
MjUuNDk0MistNC4yMTQxICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzOHggc2xvd2VyCmRvdWJsZS10
by1pbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgIDIuMzA2OCstMC40MjQwICAg
ICAgICAgICAgMi4xNjI1Ky0wLjEyMDcgICAgICAgICAgbWlnaHQgYmUgMS4wNjY3eCBmYXN0ZXIK
ZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgMi4xNjE0Ky0w
LjM3NTggICAgICAgICAgICAyLjAzNjMrLTAuMDkwMCAgICAgICAgICBtaWdodCBiZSAxLjA2MTR4
IGZhc3Rlcgpkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAy
LjIyNDUrLTAuMDM4MyAgICAgPyAgICAgIDIuMjU2NistMC4xNjAxICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE0NHggc2xvd2VyCmRvdWJsZS10by11aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAg
ICAgICAgIDIuMTYxMystMC4wODUyICAgICAgICAgICAgMi4xNDM2Ky0wLjA5MjEgICAgICAgIApl
bGlkYWJsZS1uZXctb2JqZWN0LWRhZyAgICAgICAgICAgICAgICAgICAgICAgIDE5LjU0NDUrLTEu
MDk0MyAgICAgPyAgICAgMjAuNDIxMystMS4yNTExICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ0OXgg
c2xvd2VyCmVsaWRhYmxlLW5ldy1vYmplY3Qtcm9mbGNvcHRlciAgICAgICAgICAgICAgICAgMTku
NzQ0MystMS4yNzQ1ICAgICAgICAgICAxOS4xOTQ4Ky0wLjA3NTYgICAgICAgICAgbWlnaHQgYmUg
MS4wMjg2eCBmYXN0ZXIKZWxpZGFibGUtbmV3LW9iamVjdC10aGVuLWNhbGwgICAgICAgICAgICAg
ICAgICAxNy44NDg1Ky0wLjk1NTIgICAgICAgICAgIDE3LjcyMzkrLTEuMDk4NCAgICAgICAgCmVs
aWRhYmxlLW5ldy1vYmplY3QtdHJlZSAgICAgICAgICAgICAgICAgICAgICAgMTkuMzk4NistMC42
NTQxICAgICA/ICAgICAxOS44OTIzKy0xLjA1OTYgICAgICAgID8gbWlnaHQgYmUgMS4wMjU0eCBz
bG93ZXIKZW1wdHktc3RyaW5nLXBsdXMtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42
Mjg2Ky0wLjMyODEgICAgICAgICAgICA0LjQ4MjQrLTAuMjY5NiAgICAgICAgICBtaWdodCBiZSAx
LjAzMjZ4IGZhc3RlcgplbXNjcmlwdGVuLWN1YmUyaGFzaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIyLjQ0OTMrLTAuNDg0NCAgICAgXiAgICAgMjEuNzY1MCstMC4xOTA0ICAgICAgICBeIGRl
ZmluaXRlbHkgMS4wMzE0eCBmYXN0ZXIKZXhpdC1sZW5ndGgtb24tcGxhaW4tb2JqZWN0ICAgICAg
ICAgICAgICAgICAgICAgOC40MjI2Ky0wLjUyNjggICAgICAgICAgICA4LjI2MTIrLTAuNTMwOSAg
ICAgICAgICBtaWdodCBiZSAxLjAxOTV4IGZhc3RlcgpleHRlcm5hbC1hcmd1bWVudHMtZ2V0Ynl2
YWwgICAgICAgICAgICAgICAgICAgICAxLjExMzErLTAuMTM4NCAgICAgPyAgICAgIDEuMjM3Nist
MC4zNjU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTExOXggc2xvd2VyCmV4dGVybmFsLWFyZ3VtZW50
cy1wdXRieXZhbCAgICAgICAgICAgICAgICAgICAgIDIuMTE5OSstMC4wNjkyICAgICA/ICAgICAg
Mi4xNDI3Ky0wLjA3OTUgICAgICAgID8gbWlnaHQgYmUgMS4wMTA4eCBzbG93ZXIKZml4ZWQtdHlw
ZWQtYXJyYXktc3RvcmFnZS12YXItaW5kZXggICAgICAgICAgICAgMS41NzQ4Ky0wLjU2MjcgICAg
ICAgICAgICAxLjM1MDUrLTAuMDc4NCAgICAgICAgICBtaWdodCBiZSAxLjE2NjF4IGZhc3Rlcgpm
aXhlZC10eXBlZC1hcnJheS1zdG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAxLjA3OTErLTAu
MDg4OCAgICAgPyAgICAgIDEuMTEwOCstMC4wOTUxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5NHgg
c2xvd2VyCkZsb2F0MzJBcnJheS1tYXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAgIDUu
MDQzMCstMC42MDY0ICAgICAgICAgICAgNC44NjkzKy0wLjI2OTQgICAgICAgICAgbWlnaHQgYmUg
MS4wMzU3eCBmYXN0ZXIKRmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAg
ICAgICAzNi42NjczKy0xLjQ0NTggICAgID8gICAgIDM3LjI1MjUrLTEuODgzMyAgICAgICAgPyBt
aWdodCBiZSAxLjAxNjB4IHNsb3dlcgpGbG9hdDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgIDQ5Ljk4OTUrLTAuNDYyNCAgICAgPyAgICAgNTEuMjY1NistMy4yMjcyICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI1NXggc2xvd2VyCkZsb2F0NjRBcnJheS10by1JbnQxNkFycmF5
LXNldCAgICAgICAgICAgICAgICAgNDQuMTQ5NSstMS4wNzgyICAgICAgICAgICA0NC4wNzI4Ky0w
LjU0MTQgICAgICAgIApmb2xkLWRvdWJsZS10by1pbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEyLjM1NjcrLTAuODIxNCAgICAgICAgICAgMTIuMzQwMSstMC44NTg1ICAgICAgICAKZm9s
ZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9mZnNldC1yYXJlLWludAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjU3ODArLTEuNzg1NyAgICAgICAg
ICAgIDguNTEyMystMS4wNjMwICAgICAgICAKZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5
LW9mZnNldCAgICAgICAgICAgNi4xNDg2Ky0wLjUxNzUgICAgID8gICAgICA2LjcyNDQrLTEuODQ0
MSAgICAgICAgPyBtaWdodCBiZSAxLjA5MzZ4IHNsb3dlcgpmb2xkLW11bHRpLWdldC1ieS1vZmZz
ZXQtdG8tZ2V0LWJ5LW9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjk4NzErLTAuMDc1NiAgICAgPyAgICAgIDQuMjE5NystMC4zODc0ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDU4M3ggc2xvd2VyCmZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1w
b2x5LWdldC1ieS1vZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4xNjAyKy0wLjI1MzAgICAgICAgICAgICA0LjExMjErLTAuMTkyMiAgICAgICAg
ICBtaWdodCBiZSAxLjAxMTd4IGZhc3Rlcgpmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcG9s
eS1wdXQtYnktb2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuMDM5MSstMC4wMzU5ICAgICA/ICAgICAgNC44NjkyKy0xLjYwMTEgICAgICAgID8g
bWlnaHQgYmUgMS4yMDU1eCBzbG93ZXIKZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXB1dC1i
eS1vZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My43NjQ5Ky0xLjQ3MDAgICAgID8gICAgICAzLjc5NjUrLTEuMTM2NSAgICAgICAgPwpmb2xkLW11
bHRpLXB1dC1ieS1vZmZzZXQtdG8tcmVwbGFjZS1vci10cmFuc2l0aW9uLXB1dC1ieS1vZmZzZXQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy43NzE5Ky0x
LjczNzMgICAgICAgICAgICA2LjM4MjcrLTAuMjQ1NiAgICAgICAgICBtaWdodCBiZSAxLjIxNzZ4
IGZhc3Rlcgpmb2xkLXB1dC1ieS1pZC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgICAgICAgICA4
LjQwNTArLTIuMTEwNCAgICAgPyAgICAgIDkuNDQ1NSstMS42OTE0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMTIzOHggc2xvd2VyCmZvbGQtcHV0LWJ5LXZhbC13aXRoLXN0cmluZy10by1tdWx0aS1wdXQt
Ynktb2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuNjE2MystMC4xMjQ1ICAgICA/ICAgICAgNi44NDgxKy0wLjQ3NTcgICAgICAgID8gbWlnaHQg
YmUgMS4wMzUweCBzbG93ZXIKZm9sZC1wdXQtYnktdmFsLXdpdGgtc3ltYm9sLXRvLW11bHRpLXB1
dC1ieS1vZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNi44MzAzKy0wLjM0MTggICAgID8gICAgICA3LjA3MTArLTEuMjYwMSAgICAgICAgPyBtaWdo
dCBiZSAxLjAzNTJ4IHNsb3dlcgpmb2xkLXB1dC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjIxNTcrLTAuMTQzOSAgICAgPyAgICAgIDMuODYwMSstMS40MDYwICAgICAg
ICA/IG1pZ2h0IGJlIDEuMjAwNHggc2xvd2VyCmZvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMg
ICAgICAgICAgICAgICAgICAgIDguOTc5NSstMC45Nzg0ICAgICAgICAgICAgOC44MTA4Ky0wLjIy
MzIgICAgICAgICAgbWlnaHQgYmUgMS4wMTkxeCBmYXN0ZXIKZm9yLW9mLWl0ZXJhdGUtYXJyYXkt
a2V5cyAgICAgICAgICAgICAgICAgICAgICAgNC41MTkyKy0xLjMwODggICAgICAgICAgICA0LjMy
NzQrLTAuNzAxNiAgICAgICAgICBtaWdodCBiZSAxLjA0NDN4IGZhc3Rlcgpmb3Itb2YtaXRlcmF0
ZS1hcnJheS12YWx1ZXMgICAgICAgICAgICAgICAgICAgICAzLjk4NzcrLTAuMzY3MyAgICAgICAg
ICAgIDMuOTY2MistMC4yMDE0ICAgICAgICAKZnJvdW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS42NDgwKy0wLjQzMDMgICAgICAgICAgICA5LjQyNTArLTAuMTQ2
MyAgICAgICAgICBtaWdodCBiZSAxLjAyMzd4IGZhc3RlcgpmdGwtbGlicmFyeS1pbmxpbmluZy1k
YXRhdmlldyAgICAgICAgICAgICAgICAgIDY0LjIzMzkrLTEzLjkyOTYgICAgICAgICAgNTcuMDcx
MCstMC4yMjkxICAgICAgICAgIG1pZ2h0IGJlIDEuMTI1NXggZmFzdGVyCmZ0bC1saWJyYXJ5LWlu
bGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuMzE1MystMS4xNTQ5ICAgICAgICAg
ICAyMi42OTE4Ky0xLjM1MDIgICAgICAgICAgbWlnaHQgYmUgMS4wMjc1eCBmYXN0ZXIKZnRsLXBv
bHltb3JwaGljLWJpdGFuZCAgICAgICAgICAgICAgICAgICAgICAgIDEyOS44NzQyKy0yLjEwMjUg
ICAgICAgICAgMTI5LjQ0MzArLTAuNzI3NSAgICAgICAgCmZ0bC1wb2x5bW9ycGhpYy1iaXRvciAg
ICAgICAgICAgICAgICAgICAgICAgICAxMjkuNzE3OSstMS44NjAwICAgICA/ICAgIDEzMC40NTY5
Ky0xLjc3MzQgICAgICAgID8KZnRsLXBvbHltb3JwaGljLWJpdHhvciAgICAgICAgICAgICAgICAg
ICAgICAgIDEzMC42OTUwKy0yLjQ4NjEgICAgID8gICAgMTMxLjYzMzgrLTEuODcxNiAgICAgICAg
PwpmdGwtcG9seW1vcnBoaWMtZGl2ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ5LjA4MTUr
LTMuMjE1MCAgICAgICAgICA0NDguNDAzOCstMy4wODM0ICAgICAgICAKZnRsLXBvbHltb3JwaGlj
LWxzaGlmdCAgICAgICAgICAgICAgICAgICAgICAgIDE1Ny45MzkxKy0yLjU4MDcgICAgID8gICAg
MTYwLjA0MzMrLTIuMTg4MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMzN4IHNsb3dlcgpmdGwtcG9s
eW1vcnBoaWMtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMzLjY1MzcrLTQuNTc3NSAg
ICAgICAgICAyMzEuMTQyOSstMS41MDcyICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOXggZmFzdGVy
CmZ0bC1wb2x5bW9ycGhpYy1yc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAxNTYuODIyOCst
My4yMDg2ICAgICAgICAgIDE1NS45MTEyKy0xLjY4NzkgICAgICAgIApmdGwtcG9seW1vcnBoaWMt
U3RyaW5nRnJvbUNoYXJDb2RlICAgICAgICAgICAgIDQwLjkyODYrLTAuMzI3MSAgICAgPyAgICAg
NDEuMTk3OCstMC40Nzk5ICAgICAgICA/CmZ0bC1wb2x5bW9ycGhpYy1zdWIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNTMuMjc0NSstMi40MjcwICAgICA/ICAgIDE1NC4wMjAwKy00LjMzMzIg
ICAgICAgID8KZnRsLXBvbHltb3JwaGljLXVyc2hpZnQgICAgICAgICAgICAgICAgICAgICAgIDE2
OC40Nzg4Ky0yLjAxMTUgICAgICAgICAgMTY3LjgxODErLTEuNjM4MCAgICAgICAgCmZ1bmN0aW9u
LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNjg0NSstMC4zMjA3ICAg
ICA/ICAgICAxMC43ODQ5Ky0wLjc0NjIgICAgICAgID8KZnVuY3Rpb24tZG90LWFwcGx5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi4wMDIxKy0wLjM4NTIgICAgICAgICAgICAxLjg0NDIr
LTAuMDc5OCAgICAgICAgICBtaWdodCBiZSAxLjA4NTd4IGZhc3RlcgpmdW5jdGlvbi10ZXN0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQ0MzMrLTAuMDkxNyAgICAgICAgICAg
IDIuMzk5MCstMC4wNTcyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NHggZmFzdGVyCmZ1bmN0aW9u
LXdpdGgtZXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODMuNTA5NSstNC4wNTI5ICAg
ICA/ICAgICA4NC43MDA3Ky0yLjQyOTcgICAgICAgID8gbWlnaHQgYmUgMS4wMTQzeCBzbG93ZXIK
Z2NzZS1wb2x5LWdldC1sZXNzLW9idmlvdXMgICAgICAgICAgICAgICAgICAgICAxNC42NTE4Ky0w
Ljc3MTggICAgICAgICAgIDE0LjM5NTYrLTAuMjM0MyAgICAgICAgICBtaWdodCBiZSAxLjAxNzh4
IGZhc3RlcgpnY3NlLXBvbHktZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1
LjMyNzQrLTEuMDY1NyAgICAgPyAgICAgMTUuNjY2MystMS40OTk5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIyMXggc2xvd2VyCmdjc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuMzYzNCstMC40MzMwICAgICAgICAgICAgMy4yNDAwKy0wLjA1MTggICAgICAgICAg
bWlnaHQgYmUgMS4wMzgxeCBmYXN0ZXIKZ2VuZXJhdG9yLWNyZWF0ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC42NjIwKy0wLjA1MTMgICAgID8gICAgICAwLjczMTkrLTAuMDY3MyAg
ICAgICAgPyBtaWdodCBiZSAxLjEwNTd4IHNsb3dlcgpnZW5lcmF0b3ItZmliICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTAyLjAwNDcrLTYuMDE0NyAgICAgICAgICAgOTYuNTgxOSst
My42NTg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU2MXggZmFzdGVyCmdlbmVyYXRvci1mdW5jdGlv
bi1jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgIDMuMzk2NSstMC4yMzY1ICAgICA/ICAgICAg
My40OTYxKy0wLjQ0OTkgICAgICAgID8gbWlnaHQgYmUgMS4wMjkzeCBzbG93ZXIKZ2VuZXJhdG9y
LXN1bnNwaWRlci1hY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgNS43Mjk5Ky0wLjM5NTkgICAg
ICAgICAgICA1LjQ0NTErLTAuMDU5MiAgICAgICAgICBtaWdodCBiZSAxLjA1MjN4IGZhc3Rlcgpn
ZW5lcmF0b3Itd2l0aC1zZXZlcmFsLXR5cGVzICAgICAgICAgICAgICAgICAgMzA4LjI5MjgrLTcu
MTk1MyAgICAgPyAgICAzMTYuMTQyMistNS41Njk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1NXgg
c2xvd2VyCmdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjMy
NjErLTAuMzM4MCAgICAgICAgICAgIDIuMTk3NistMC4wNzE0ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDU4NXggZmFzdGVyCmdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTM3
NystMC4wMjY0ICAgICA/ICAgICAgNC43NDE5Ky0xLjUxMDYgICAgICAgID8gbWlnaHQgYmUgMS4x
NDYweCBzbG93ZXIKZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgICAgICAgICAgICAg
ICAgMS44NDAyKy0wLjA4ODEgICAgICAgICAgICAxLjgzNTkrLTAuMDU2MyAgICAgICAgCmdldC1i
eS1pZC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAgICAgICAgIDMuMjQzMSstMC43OTkx
ICAgICAgICAgICAgMi43NTMxKy0wLjA3MDEgICAgICAgICAgbWlnaHQgYmUgMS4xNzgweCBmYXN0
ZXIKZ2V0LWJ5LWlkLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgICAgICAgICAgICAgOS42ODUz
Ky0wLjMyMTMgICAgID8gICAgICA5LjcyMzErLTAuNDQ2NiAgICAgICAgPwpnZXQtYnktaWQtcXVh
ZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjYwODArLTAuMDgwOCAgICAgPyAg
ICAgIDIuNjIwOCstMC4wNTM0ICAgICAgICA/CmdldC1ieS1pZC1zZWxmLW9yLXByb3RvICAgICAg
ICAgICAgICAgICAgICAgICAgIDkuOTA4OSstMC4zOTk4ICAgICAgICAgICAgOS4yNjQ1Ky0wLjYw
NDYgICAgICAgICAgbWlnaHQgYmUgMS4wNjk2eCBmYXN0ZXIKZ2V0LWJ5LXZhbC1vdXQtb2YtYm91
bmRzICAgICAgICAgICAgICAgICAgICAgICAgNC4xNDgzKy0wLjU2NzUgICAgICAgICAgICA0LjEx
MTcrLTAuMzU0NyAgICAgICAgCmdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi45MzkzKy0wLjA0MjIgICAgICAgICAgICAyLjkyMDUrLTAu
MDcxMCAgICAgICAgCmdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA2LjcyODUrLTEuODIyMiAgICAgICAgICAgIDUuOTU3NistMC40MjE1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMTI5NHggZmFzdGVyCmdldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJv
bS10cnktYmxvY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMS45MjkwKy0wLjExODMgICAgICAgICAgICAxLjg1MzQrLTAuMDM1NyAgICAgICAgICBtaWdo
dCBiZSAxLjA0MDh4IGZhc3RlcgpnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1Ljc0MzArLTAuNTM3OCAgICAgICAgICAgIDUuNjQ1MystMC4zMjY2ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE3M3ggZmFzdGVyCmdldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2Vs
ZiAgICAgICAgICAgIDguOTQxNCstMC43OTYyICAgICAgICAgICAgOC42MzcyKy0wLjc3MjggICAg
ICAgICAgbWlnaHQgYmUgMS4wMzUyeCBmYXN0ZXIKZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFk
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzI1MCstMC4xMTc0ICAgICAgICAg
ICAgMy43MjAwKy0wLjA2NzAgICAgICAgIApnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3It
cHJvdG8gICAgICAgICAgICA5LjI0NTYrLTAuNzQzMyAgICAgICAgICAgIDguNzY2MistMC41NzMx
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0N3ggZmFzdGVyCmdldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42NzU5Ky0wLjE2MzEgICAgICAg
ICAgICAyLjYwMzgrLTAuMTI5MCAgICAgICAgICBtaWdodCBiZSAxLjAyNzd4IGZhc3RlcgpnZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC41MTQ4Ky0w
LjA3MTYgICAgID8gICAgICA4LjY2NTArLTAuMjc0OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNzZ4
IHNsb3dlcgpnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODY2MistMC4wNDY2
ICAgICAgICAgICAgMS44NjM3Ky0wLjAzODUgICAgICAgIApnZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2Ljc5ODArLTAuMzkzMiAgICAgPyAgICAgIDcuNzU1NSstMi43
MzMzICAgICAgICA/IG1pZ2h0IGJlIDEuMTQwOHggc2xvd2VyCmdldC1ieS12YWwtd2l0aC1zeW1i
b2wtcHJvdG8tb3Itc2VsZiAgICAgICAgICAgIDkuNDQyOCstMC43MTMwICAgICAgICAgICAgOC43
MzgwKy0wLjgzNTYgICAgICAgICAgbWlnaHQgYmUgMS4wODA3eCBmYXN0ZXIKZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjI4Nyst
MC4wNzM5ICAgICA/ICAgICAgMy4zOTM4Ky0wLjQxNzcgICAgICAgID8gbWlnaHQgYmUgMS4wNTEx
eCBzbG93ZXIKZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvICAgICAgICAgICAg
OS41ODEwKy0xLjM2NDEgICAgICAgICAgICA5LjMwMDUrLTAuOTA0NyAgICAgICAgICBtaWdodCBi
ZSAxLjAzMDJ4IGZhc3RlcgpnZXRfYnlfdmFsLUludDMyQXJyYXkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxLjMyNzcrLTAuMzI4MCAgICAgICAgICAgIDEuMTM5OCstMC4wMjk3ICAgICAgICAg
IG1pZ2h0IGJlIDEuMTY0OXggZmFzdGVyCmdldF9jYWxsZWVfbW9ub21vcnBoaWMgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMDQzNystMC4xODMxICAgICA/ICAgICAgMi41MzE4Ky0wLjYyNTAg
ICAgICAgID8gbWlnaHQgYmUgMS4yMzg4eCBzbG93ZXIKZ2V0X2NhbGxlZV9wb2x5bW9ycGhpYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi45NTkyKy0wLjA5NDcgICAgID8gICAgICAzLjA5Mzgr
LTAuNDM4OCAgICAgICAgPyBtaWdodCBiZSAxLjA0NTV4IHNsb3dlcgpnZXR0ZXItbm8tYWN0aXZh
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc5NTErLTAuMDgyMiAgICAgPyAgICAg
IDIuODY2NystMC4wODU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1Nnggc2xvd2VyCmdldHRlci1w
cm90b3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTc1MystMC4yMTQyICAg
ICAgICAgICAgNC41MTUzKy0wLjA0NjQgICAgICAgICAgbWlnaHQgYmUgMS4wMTMzeCBmYXN0ZXIK
Z2V0dGVyLXJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgIDg4OC4yNzk0Ky0z
Ny40MDY2ICAgID8gICAgODkxLjUyMjkrLTI5LjczNjcgICAgICAgPwpnZXR0ZXItcmljaGFyZHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYxLjMwODgrLTMuNTMyNiAgICAgICAgICAg
NjAuODY5NystNS4yMTkyICAgICAgICAKZ2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy4xNDIxKy0wLjQ3MTIgICAgICAgICAgICAzLjAyMjgrLTAuMDY3MSAg
ICAgICAgICBtaWdodCBiZSAxLjAzOTV4IGZhc3RlcgpnbG9iYWwtaXNOYU4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA5Ljk4NTIrLTAuNDk0MSAgICAgPyAgICAgMTAuNDE5MCst
MC41NDY0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQzNHggc2xvd2VyCmdsb2JhbC1vYmplY3QtYWNj
ZXNzLXdpdGgtbXV0YXRpbmctc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuOTIwMCstMC40MjIxICAgICAgICAgICAgNC44NjY0Ky0wLjU1
MDIgICAgICAgICAgbWlnaHQgYmUgMS4wMTEweCBmYXN0ZXIKZ2xvYmFsLXZhci1jb25zdC1pbmZl
ci1maXJlLWZyb20tb3B0ICAgICAgICAgICAgMC43NTQxKy0wLjA5NjYgICAgID8gICAgICAwLjgy
ODQrLTAuMTIzNiAgICAgICAgPyBtaWdodCBiZSAxLjA5ODV4IHNsb3dlcgpnbG9iYWwtdmFyLWNv
bnN0LWluZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAwLjcyNzgrLTAuMTI0OCAgICAgICAg
ICAgIDAuNjg1OCstMC4xMDk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYxNHggZmFzdGVyCmhhcmQt
b3ZlcmZsb3ctY2hlY2stZXF1YWwgICAgICAgICAgICAgICAgICAgICAgMjIuODU4MSstMC45NzE5
ICAgICA/ICAgICAyMy43MjIzKy0yLjE0MTkgICAgICAgID8gbWlnaHQgYmUgMS4wMzc4eCBzbG93
ZXIKaGFyZC1vdmVyZmxvdy1jaGVjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS43NzE0
Ky0xLjY1MDEgICAgICAgICAgIDIzLjIxMDQrLTIuMDQ5MyAgICAgICAgICBtaWdodCBiZSAxLjEx
MDN4IGZhc3RlcgpIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzICAgICAgICAgICAgICAgICAg
IDIxLjQ1NTIrLTAuNzIzNSAgICAgPyAgICAgMjEuNDc1MystMC43ODM2ICAgICAgICA/Ckhhc2hN
YXAtcHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgMjEuMDIzNystMC42MDQ4
ICAgICA/ICAgICAyMS44MDczKy0xLjIwMDggICAgICAgID8gbWlnaHQgYmUgMS4wMzczeCBzbG93
ZXIKSGFzaE1hcC1zdHJpbmctcHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAyMi45NTc3
Ky0wLjU0ODAgICAgID8gICAgIDIzLjU2MjgrLTEuMjg5NiAgICAgICAgPyBtaWdodCBiZSAxLjAy
NjR4IHNsb3dlcgpob2lzdC1tYWtlLXJvcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjgyMDUrLTAuMzUwOSAgICAgICAgICAgIDMuNTcyMystMC4yMDMzICAgICAgICAgIG1pZ2h0
IGJlIDEuMDY5NXggZmFzdGVyCmhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1s
b29wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTMy
NSstMC40MTQ1ICAgICAgICAgICAgMi45MTA0Ky0wLjI2MzQgICAgICAgIApob2lzdC1wb2x5LWNo
ZWNrLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAyLjAxMTMrLTAuMTQyMSAgICAgPyAg
ICAgIDIuMDYyNSstMC4xNTE5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1NXggc2xvd2VyCmltdWwt
ZG91YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDk4OSstMC4xMDkz
ICAgICA/ICAgICAgMy4xMDcyKy0wLjE0MjQgICAgICAgID8KaW11bC1pbnQtb25seSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4yNzQ3Ky0wLjY0NDQgICAgICAgICAgICA1LjA2
OTArLTAuMTg3MCAgICAgICAgICBtaWdodCBiZSAxLjA0MDZ4IGZhc3RlcgppbXVsLW1peGVkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjAwNDArLTAuMTc2OSAgICAgICAg
ICAgIDIuOTMzMystMC4xMDAzICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MXggZmFzdGVyCmluLWZv
dXItY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuMTk5NistMC43MTY5
ICAgICA/ICAgICAxNi42MzAwKy0yLjQxMTggICAgICAgID8gbWlnaHQgYmUgMS4wMjY2eCBzbG93
ZXIKaW4tb25lLWNhc2UtZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy43OTM0
Ky0wLjQ0ODQgICAgICAgICAgICA3LjY2ODQrLTAuNDI4OSAgICAgICAgICBtaWdodCBiZSAxLjAx
NjN4IGZhc3Rlcgppbi1vbmUtY2FzZS10cnVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA3LjM3NDIrLTAuMTQxNSAgICAgPyAgICAgIDcuNjgyMystMC4zOTQ1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDQxOHggc2xvd2VyCmluLXR3by1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguMTIyMystMS42MzA4ICAgICAgICAgICAgNy44MDcxKy0wLjU5MjggICAgICAg
ICAgbWlnaHQgYmUgMS4wNDA0eCBmYXN0ZXIKaW5kZXhlZC1wcm9wZXJ0aWVzLWluLW9iamVjdHMg
ICAgICAgICAgICAgICAgICAgMi43NzU5Ky0wLjQ3NTYgICAgICAgICAgICAyLjY4NzgrLTAuMzI3
OCAgICAgICAgICBtaWdodCBiZSAxLjAzMjh4IGZhc3RlcgppbmZlci1jbG9zdXJlLWNvbnN0LXRo
ZW4tbW92LW5vLWlubGluZSAgICAgICAgICAzLjEyNDErLTAuMzcwNSAgICAgPyAgICAgIDMuMTM5
OSstMC40NzcxICAgICAgICA/CmluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3YgICAgICAgICAg
ICAgICAgICAgIDYuNjEwNystMC4wOTE0ICAgICA/ICAgICAgNi42MzkxKy0wLjA0NTMgICAgICAg
ID8KaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1zY29wZS1uby1pbmxpbmUKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC41NDU3Ky0wLjkxMDgg
ICAgICAgICAgIDEwLjM3NTcrLTAuNDc5MCAgICAgICAgICBtaWdodCBiZSAxLjAxNjR4IGZhc3Rl
cgppbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlICAgICAgICAgIDIzLjAyMzUr
LTEuNTQwOCAgICAgICAgICAgMjIuOTg2MCstMC43NzQ3ICAgICAgICAKaW5mZXItY2xvc3VyZS1j
b25zdC10aGVuLXJlZW50ZXItbm8taW5saW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNDcuNzI1NystMC45NDAxICAgICAhICAgICA1MC42NTUzKy0xLjg2
NDggICAgICAgICEgZGVmaW5pdGVseSAxLjA2MTR4IHNsb3dlcgppbmZlci1jbG9zdXJlLWNvbnN0
LXRoZW4tcmVlbnRlciAgICAgICAgICAgICAgIDIyLjc5MjIrLTAuOTA5MCAgICAgPyAgICAgMjMu
Nzc1NystMi4wNzQ5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQzMnggc2xvd2VyCmluZmVyLWNvbnN0
YW50LWdsb2JhbC1wcm9wZXJ0eSAgICAgICAgICAgICAgICAgIDIuNjcxNCstMC4zODI2ICAgICAg
ICAgICAgMi41NTEwKy0wLjIwNDQgICAgICAgICAgbWlnaHQgYmUgMS4wNDcyeCBmYXN0ZXIKaW5m
ZXItY29uc3RhbnQtcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgMi4wODM0Ky0wLjIy
OTcgICAgICAgICAgICAyLjAyNDkrLTAuMDY3NyAgICAgICAgICBtaWdodCBiZSAxLjAyODl4IGZh
c3RlcgppbmZlci1vbmUtdGltZS1jbG9zdXJlLXRlbi12YXJzICAgICAgICAgICAgICAgICA2LjIz
OTYrLTAuMTA0MCAgICAgICAgICAgIDYuMjAwNCstMC4wOTcyICAgICAgICAKaW5mZXItb25lLXRp
bWUtY2xvc3VyZS10d28tdmFycyAgICAgICAgICAgICAgICAgNi4xOTM5Ky0wLjY3OTkgICAgICAg
ICAgICA1LjkyNjArLTAuMDgxNSAgICAgICAgICBtaWdodCBiZSAxLjA0NTJ4IGZhc3RlcgppbmZl
ci1vbmUtdGltZS1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICA2LjA3MTUrLTAuNDY0
MCAgICAgPyAgICAgIDYuMTExOCstMC40ODkwICAgICAgICA/CmluZmVyLW9uZS10aW1lLWRlZXAt
Y2xvc3VyZSAgICAgICAgICAgICAgICAgICAgMTEuMTc5NSstMC42Mzg2ICAgICA/ICAgICAxMS40
NTMwKy0wLjc2NjggICAgICAgID8gbWlnaHQgYmUgMS4wMjQ1eCBzbG93ZXIKaW5saW5lLWFyZ3Vt
ZW50cy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgMy4zOTUzKy0wLjIzMTMgICAgID8g
ICAgICAzLjUwMTIrLTAuNTA1MyAgICAgICAgPyBtaWdodCBiZSAxLjAzMTJ4IHNsb3dlcgppbmxp
bmUtYXJndW1lbnRzLWFsaWFzZWQtYWNjZXNzICAgICAgICAgICAgICAgICAzLjM5MDErLTAuMjU4
NSAgICAgICAgICAgIDMuMzE0MCstMC4yMzk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyOXggZmFz
dGVyCmlubGluZS1hcmd1bWVudHMtbG9jYWwtZXNjYXBlICAgICAgICAgICAgICAgICAgIDMuNTE2
MSstMC4yNzExICAgICA/ICAgICAgMy42NDI5Ky0wLjI0NjYgICAgICAgID8gbWlnaHQgYmUgMS4w
MzYxeCBzbG93ZXIKaW5saW5lLWdldC1zY29wZWQtdmFyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi4wODU0Ky0wLjA4NzAgICAgID8gICAgICAyLjIyNDUrLTAuMTQzOSAgICAgICAgPyBtaWdo
dCBiZSAxLjA2Njd4IHNsb3dlcgppbmxpbmVkLXB1dC1ieS1pZC10cmFuc2l0aW9uICAgICAgICAg
ICAgICAgICAgICA3LjExNzMrLTAuNDIyMyAgICAgPyAgICAgIDcuMjgyNystMC40MDYyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIzMnggc2xvd2VyCmlubGluZWQtcHV0LWJ5LXZhbC13aXRoLXN0cmlu
Zy10cmFuc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzcuMDc4MCstMC40OTIwICAgICA/ICAgICAzNy42ODc0Ky0xLjgyMzkgICAgICAgID8gbWln
aHQgYmUgMS4wMTY0eCBzbG93ZXIKaW5saW5lZC1wdXQtYnktdmFsLXdpdGgtc3ltYm9sLXRyYW5z
aXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy4y
NDM4Ky0wLjM5OTUgICAgID8gICAgIDM3Ljc0ODUrLTIuMDA1NCAgICAgICAgPyBtaWdodCBiZSAx
LjAxMzZ4IHNsb3dlcgppbnN0YW5jZW9mLWJvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIwLjgzNTMrLTEuNDcwMyAgICAgICAgICAgMjAuNzQ1OSstMS40MzI5ICAgICAgICAKaW50
LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgNC4wODM3Ky0wLjM0
NjIgICAgICAgICAgICAzLjk1NzkrLTAuMDczOSAgICAgICAgICBtaWdodCBiZSAxLjAzMTh4IGZh
c3RlcgppbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAgIDE1LjYw
OTcrLTEuMTYzMyAgICAgICAgICAgMTQuOTk0NSstMC41NjIxICAgICAgICAgIG1pZ2h0IGJlIDEu
MDQxMHggZmFzdGVyCmludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgIDQuMDE5OSstMC40Mjc4ICAgICAgICAgICAgMy43MzkxKy0wLjA3MzYgICAgICAgICAgbWln
aHQgYmUgMS4wNzUxeCBmYXN0ZXIKaW50LW9yLW90aGVyLWFkZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC40Nzc1Ky0wLjA3MjYgICAgID8gICAgICA0LjUxNzMrLTAuMjAyMSAgICAg
ICAgPwppbnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAzLjI3
NzMrLTAuMDQ4MSAgICAgPyAgICAgIDMuNTA4MystMC40MjA0ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDcwNXggc2xvd2VyCmludC1vci1vdGhlci1tYXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgIDMuODI3MCstMC4zNjc5ICAgICAgICAgICAgMy41NTMwKy0wLjA0NTkgICAgICAgICAgbWln
aHQgYmUgMS4wNzcxeCBmYXN0ZXIKaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12YWwgICAg
ICAgICAgICAgICAgMy40ODg3Ky0wLjMwNDcgICAgICAgICAgICAzLjQ2OTArLTAuMzMzNSAgICAg
ICAgCmludC1vci1vdGhlci1tb2QtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDMuMzc1
NCstMC40NjE0ICAgICAgICAgICAgMy4xNzg4Ky0wLjA0NTEgICAgICAgICAgbWlnaHQgYmUgMS4w
NjE5eCBmYXN0ZXIKaW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAg
ICAgNC45NDUyKy0wLjA0NDggICAgID8gICAgICA1LjIwMjErLTAuMzg4MyAgICAgICAgPyBtaWdo
dCBiZSAxLjA1MTl4IHNsb3dlcgppbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAg
ICAgICAgICAgICAzLjkxMDMrLTAuMTg5OCAgICAgICAgICAgIDMuODI4NystMC4wNjQzICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIxM3ggZmFzdGVyCmludC1vci1vdGhlci1uZWctemVyby10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgMTYuNTIyMystMS4yMDM0ICAgICAgICAgICAxNS43NDI4Ky0xLjAy
MDQgICAgICAgICAgbWlnaHQgYmUgMS4wNDk1eCBmYXN0ZXIKaW50LW9yLW90aGVyLXN1Yi10aGVu
LWdldC1ieS12YWwgICAgICAgICAgICAgICAgNS44ODIyKy0wLjQ5OTggICAgICAgICAgICA1LjY4
NzkrLTAuMTA5NSAgICAgICAgICBtaWdodCBiZSAxLjAzNDJ4IGZhc3RlcgppbnQtb3Itb3RoZXIt
c3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk5ODErLTAuMzYwNyAgICAgICAg
ICAgIDMuOTI3NystMC4yNDI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3OXggZmFzdGVyCmludC1v
dmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzI3MistMC4yOTA0
ICAgICAgICAgICAgMy42Mjg2Ky0wLjA1NzUgICAgICAgICAgbWlnaHQgYmUgMS4wMjcyeCBmYXN0
ZXIKSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAzOC44OTQz
Ky0wLjc1ODAgICAgICAgICAgIDM4LjYxMjYrLTAuMzc0NiAgICAgICAgCkludDE2QXJyYXktYnVi
YmxlLXNvcnQtd2l0aC1ieXRlTGVuZ3RoICAgICAgICAgMTQuNzg2MCstMC44NjE0ICAgICA/ICAg
ICAxNC44OTk0Ky0wLjU0MTggICAgICAgID8KSW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAxNi40NDY3Ky0xLjIzNDkgICAgICAgICAgIDE2LjQzMTkrLTEuMjY5
OSAgICAgICAgCkludDE2QXJyYXktbG9hZC1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAg
IDEuNzQ0MistMC4zNjI2ICAgICAgICAgICAgMS42MDEwKy0wLjA0NTMgICAgICAgICAgbWlnaHQg
YmUgMS4wODk0eCBmYXN0ZXIKSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAgICAgICAg
ICAgICAgICAzNS44MTgyKy0xLjAyODYgICAgICAgICAgIDM1LjM3MTMrLTAuMjgzOSAgICAgICAg
ICBtaWdodCBiZSAxLjAxMjZ4IGZhc3RlcgpJbnQzMkFycmF5LWFsbG9jLWxhcmdlICAgICAgICAg
ICAgICAgICAgICAgICAgIDEyLjQ3NDUrLTAuODMyNiAgICAgICAgICAgMTIuNDA3MSstMC4zNzYx
ICAgICAgICAKSW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICA0
Mi40NjU5Ky0wLjM4NDAgICAgID8gICAgIDQyLjU1NjUrLTAuNDExOCAgICAgICAgPwpJbnQzMkFy
cmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjUwNTQrLTAuMTYxMiAg
ICAgICAgICAgIDIuNDg1OSstMC4xOTcxICAgICAgICAKSW50MzJBcnJheS1JbnQ4QXJyYXktdmll
dy1hbGxvYyAgICAgICAgICAgICAgICAgNi40MzUzKy0wLjU5MjQgICAgICAgICAgICA2LjA3OTkr
LTAuMDY3OCAgICAgICAgICBtaWdodCBiZSAxLjA1ODV4IGZhc3RlcgppbnQ1Mi1zcGlsbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc0MzkrLTAuMzgxNCAgICAgICAgICAg
IDQuNjM2MistMC4wODE1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzMnggZmFzdGVyCkludDhBcnJh
eS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgMzUuMjAxOCstMC40MDUwICAg
ICAgICAgICAzNC45OTAzKy0wLjI5OTAgICAgICAgIApJbnQ4QXJyYXktbG9hZC13aXRoLWJ5dGVM
ZW5ndGggICAgICAgICAgICAgICAgICAzLjMyNjQrLTAuMDUwMCAgICAgPyAgICAgIDMuNDg3Myst
MC4yOTczICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4NHggc2xvd2VyCkludDhBcnJheS1sb2FkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTAyMCstMC40NzY2ICAgICAgICAgICAg
My40NTc4Ky0wLjMzNzIgICAgICAgICAgbWlnaHQgYmUgMS4wMTI4eCBmYXN0ZXIKaW50ZWdlci1k
aXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS45NTgxKy0wLjY4MzUgICAg
ICAgICAgICA5LjY4ODMrLTAuMjY0MiAgICAgICAgICBtaWdodCBiZSAxLjAyNzh4IGZhc3Rlcgpp
bnRlZ2VyLW1vZHVsbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkzMDYrLTAu
MTExOCAgICAgICAgICAgIDEuODUyNystMC4wOTU5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQyMXgg
ZmFzdGVyCmlzLWJvb2xlYW4tZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NjE1MystMC4wNTEwICAgICA/ICAgICAgMi42NjQ0Ky0wLjA4NTggICAgICAgID8gbWlnaHQgYmUg
MS4wMTg4eCBzbG93ZXIKaXMtYm9vbGVhbi1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi4wMDY4Ky0wLjExNzAgICAgICAgICAgICAxLjk3NjkrLTAuMTM3NCAgICAgICAgICBt
aWdodCBiZSAxLjAxNTF4IGZhc3Rlcgppcy1mdW5jdGlvbi1mb2xkLXRyaWNreS1pbnRlcm5hbC1m
dW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
Ljg1MzgrLTAuNTU0OSAgICAgICAgICAgIDkuNTU3MCstMC4zMjk2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDMxMXggZmFzdGVyCmlzLWZ1bmN0aW9uLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuODcxNystMC4wNjk3ICAgICAgICAgICAgMi44NDk1Ky0wLjA0MDYgICAgICAgIApp
cy1mdW5jdGlvbi1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEyOTIrLTAu
MTg2MSAgICAgICAgICAgIDIuMDE5NystMC4wOTA3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0Mngg
ZmFzdGVyCmlzLW51bWJlci1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NzA3MistMC4wNzM0ICAgICA/ICAgICAgMi43NTM2Ky0wLjA5NDUgICAgICAgID8gbWlnaHQgYmUg
MS4wMTcxeCBzbG93ZXIKaXMtbnVtYmVyLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi4wMjY0Ky0wLjE2MjMgICAgICAgICAgICAyLjAxNTArLTAuMTExMCAgICAgICAgCmlz
LW9iamVjdC1vci1udWxsLWZvbGQtZnVuY3Rpb25zICAgICAgICAgICAgICAgIDEuOTkyNCstMC4w
Njk2ICAgICA/ICAgICAgMi4wMDY5Ky0wLjA0MDcgICAgICAgID8KaXMtb2JqZWN0LW9yLW51bGwt
Zm9sZC1sZXNzLXRyaWNreSAgICAgICAgICAgICAgMi43ODEwKy0wLjA5OTEgICAgID8gICAgICAz
LjE1OTgrLTEuMDEwNiAgICAgICAgPyBtaWdodCBiZSAxLjEzNjJ4IHNsb3dlcgppcy1vYmplY3Qt
b3ItbnVsbC1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAzLjE5NjYrLTAuMTMxMSAgICAg
ICAgICAgIDMuMDE5MistMC4wNzA3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU4OHggZmFzdGVyCmlz
LW9iamVjdC1vci1udWxsLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDg1MCstMC4x
MzMzICAgICAgICAgICAgMi4wNDczKy0wLjE5OTcgICAgICAgICAgbWlnaHQgYmUgMS4wMTg0eCBm
YXN0ZXIKaXMtb2JqZWN0LW9yLW51bGwtdHJpY2tpZXItZnVuY3Rpb24gICAgICAgICAgICAgMy4x
NTIyKy0wLjUzMTcgICAgICAgICAgICAyLjc4OTMrLTAuMDUyMiAgICAgICAgICBtaWdodCBiZSAx
LjEzMDF4IGZhc3Rlcgppcy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlv
bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjY1MjIr
LTAuNDA4OCAgICAgICAgICAgIDkuNDc3OSstMC40NTY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4
NHggZmFzdGVyCmlzLW9iamVjdC1vci1udWxsLXRyaWNreS1mdW5jdGlvbiAgICAgICAgICAgICAg
IDIuODM5MistMC4wODE1ICAgICA/ICAgICAgMi45NzcyKy0wLjQ3OTggICAgICAgID8gbWlnaHQg
YmUgMS4wNDg2eCBzbG93ZXIKaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWludGVybmFsLWZ1bmN0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzI3
NystMC4yMDcxICAgICA/ICAgICAgNi41NTcwKy0wLjExMDUgICAgICAgID8gbWlnaHQgYmUgMS4w
MzYyeCBzbG93ZXIKaXMtc3RyaW5nLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi43NDEwKy0wLjA5NjcgICAgICAgICAgICAyLjczNjIrLTAuMTUzOSAgICAgICAgCmlzLXN0
cmluZy1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTg4MystMC4xMDQ2
ICAgICA/ICAgICAgMi4xMzMyKy0wLjM2MDQgICAgICAgID8gbWlnaHQgYmUgMS4wNzI5eCBzbG93
ZXIKaXMtdW5kZWZpbmVkLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgMi42Mjc2
Ky0wLjQ4NTMgICAgICAgICAgICAyLjUxNzArLTAuMjkxNSAgICAgICAgICBtaWdodCBiZSAxLjA0
NDB4IGZhc3Rlcgppcy11bmRlZmluZWQtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjk4OTcrLTAuMDc1NSAgICAgPyAgICAgIDIuMTUzMystMC40NjU0ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDgyMnggc2xvd2VyCkpTT05QLW5lZ2F0aXZlLTAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAuMTg2OCstMC4wMTY1ICAgICAgICAgICAgMC4xODMyKy0wLjAxMDIgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTk4eCBmYXN0ZXIKbGFyZ2UtaW50LWNhcHR1cmVkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy40NTI2Ky0wLjQxMzAgICAgICAgICAgICAzLjQwNTcrLTAuMTg4
NiAgICAgICAgICBtaWdodCBiZSAxLjAxMzh4IGZhc3RlcgpsYXJnZS1pbnQtbmVnICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjg5NTQrLTAuNTYzMCAgICAgPyAgICAgMTIuOTA3
OCstMC40MzUxICAgICAgICA/CmxhcmdlLWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTEuNTQ1MistMC41MDM1ICAgICA/ICAgICAxMi4xNjYyKy0xLjA0MzQgICAgICAg
ID8gbWlnaHQgYmUgMS4wNTM4eCBzbG93ZXIKbGF6eS1hcnJheS1zcGVjaWVzLXdhdGNocG9pbnRz
ICAgICAgICAgICAgICAgICAyMC44MDY3Ky0xLjE1NzkgICAgICAgICAgIDIwLjUyMTQrLTAuNjk3
NSAgICAgICAgICBtaWdodCBiZSAxLjAxMzl4IGZhc3RlcgpsaWNtLWRyYWdvbnMtb3V0LW9mLWJv
dW5kcyAgICAgICAgICAgICAgICAgICAgIDMxLjcyNjQrLTEuNjI0MyAgICAgICAgICAgMzEuMjA1
MCstMC41Nzk5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2N3ggZmFzdGVyCmxpY20tZHJhZ29ucy1v
dmVyZmxvdyAgICAgICAgICAgICAgICAgICAgICAgICAgMTguMTEzNCstMC4zODY5ICAgICA/ICAg
ICAxOS4zMzk4Ky0xLjY1OTkgICAgICAgID8gbWlnaHQgYmUgMS4wNjc3eCBzbG93ZXIKbGljbS1k
cmFnb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNC45ODA5Ky0wLjU2NDcg
ICAgID8gICAgIDM2LjM0NDYrLTIuMjAyMiAgICAgICAgPyBtaWdodCBiZSAxLjAzOTB4IHNsb3dl
cgpsb2FkLXZhcmFyZ3MtZWxpbWluYXRpb24gICAgICAgICAgICAgICAgICAgICAgIDE4LjQxMDAr
LTAuODI1NCAgICAgPyAgICAgMjAuMzI1OCstNC45MjA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTA0
MXggc2xvd2VyCmxvY2FsZS1jb21wYXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjEuOTg1OSstMC45MDc4ICAgICA/ICAgICAyMy4wMzQxKy0xLjgxMDYgICAgICAgID8gbWlnaHQg
YmUgMS4wNDc3eCBzbG93ZXIKbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMgICAgICAgICAgICAgICAg
ICAgICAgICAgMi4zNjM0Ky0wLjA3MDYgICAgID8gICAgICAyLjQ3MTMrLTAuMjM5MCAgICAgICAg
PyBtaWdodCBiZSAxLjA0NTZ4IHNsb3dlcgpsb2dpY2FsLW5vdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjQ0NTgrLTAuMDQxMCAgICAgPyAgICAgIDMuNjE2NSstMC4zMTY0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ5NXggc2xvd2VyCmxvdHMtb2YtZmllbGRzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTk2MystMC4xMjQwICAgICA/ICAgICAgOC4zODkx
Ky0wLjMzMDEgICAgICAgID8gbWlnaHQgYmUgMS4wNDkxeCBzbG93ZXIKbWFrZS1pbmRleGVkLXN0
b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41MTczKy0wLjA0NjYgICAgICAgICAg
ICAyLjQ3ODUrLTAuMjA3NyAgICAgICAgICBtaWdodCBiZSAxLjAxNTd4IGZhc3RlcgptYWtlLXJv
cGUtY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMyMDArLTAuMzMyNCAg
ICAgICAgICAgIDMuMjE4OCstMC4xMTEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxNHggZmFzdGVy
Cm1hbnktZm9yZWFjaC1jYWxscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzc1NSst
MC4xMjc3ICAgICA/ICAgICAgMi40MTg3Ky0wLjA5NzIgICAgICAgID8gbWlnaHQgYmUgMS4wMTgy
eCBzbG93ZXIKbWFueS1yZXBlYXQtc3RvcmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
NS4zMTQxKy0wLjQ4NTYgICAgICAgICAgIDE1LjI4MDkrLTAuMzkwMyAgICAgICAgCm1hcC1mb3It
ZWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzg4NistMC4xMDYwICAg
ICA/ICAgICAgNC41ODM3Ky0wLjM2NjcgICAgICAgID8gbWlnaHQgYmUgMS4wNDQ1eCBzbG93ZXIK
bWFwLWZvci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC42NzY4Ky0w
Ljc1NzIgICAgID8gICAgIDE1LjEyODkrLTEuMDkyMiAgICAgICAgPyBtaWdodCBiZSAxLjAzMDh4
IHNsb3dlcgptYXJzYWdsaWEtbGFyZ2VyLWludHMgICAgICAgICAgICAgICAgICAgICAgICAgIDYz
LjIyNzUrLTEuMzg2NyAgICAgICAgICAgNjIuMzM5NistMC4yNTY2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE0MnggZmFzdGVyCm1hcnNhZ2xpYS1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTcuMDg5MCstMS4zNjk4ICAgICA/ICAgICAxNy4wOTAzKy0xLjMxNTAgICAgICAgID8K
bWF0aC1yYW5kb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy42ODA1Ky0w
LjU4MzkgICAgID8gICAgIDE0LjIzNTQrLTAuNTE4MyAgICAgICAgPyBtaWdodCBiZSAxLjA0MDZ4
IHNsb3dlcgptYXRoLXRydW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
LjQwMTcrLTAuMzYzNyAgICAgICAgICAgIDUuMjc3MystMC4xMzM5ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDIzNnggZmFzdGVyCm1hdGgtd2l0aC1vdXQtb2YtYm91bmRzLWFycmF5LXZhbHVlcyAgICAg
ICAgICAgMjcuMDM2NSstMS40ODAyICAgICA/ICAgICAyNy41NjMzKy0xLjYwNTggICAgICAgID8g
bWlnaHQgYmUgMS4wMTk1eCBzbG93ZXIKbWF4LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi4xNDU0Ky0wLjA4NDEgICAgICAgICAgICAyLjExODgrLTAuMDYzOCAg
ICAgICAgICBtaWdodCBiZSAxLjAxMjZ4IGZhc3RlcgptZWdhbW9ycGhpYy1sb2FkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI4LjcwNjgrLTMuMzA5NyAgICAgPyAgICAgMjkuNDc4NCst
OC42ODEwICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2OXggc2xvd2VyCm1ldGhvZC1vbi1udW1iZXIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuOTg5NSstMS4wOTU5ICAgICA/ICAgICAx
Ni42NDgwKy0xLjQ1ODIgICAgICAgID8gbWlnaHQgYmUgMS4wNDEyeCBzbG93ZXIKbWluLWJvb2xl
YW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wOTc0Ky0wLjA1NTAgICAg
ID8gICAgICAyLjIwMzQrLTAuMTQ2NiAgICAgICAgPyBtaWdodCBiZSAxLjA1MDV4IHNsb3dlcgpt
aW51cy1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjIxMjcrLTAu
MDk2MyAgICAgICAgICAgIDIuMTczMSstMC4xMDg1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4Mngg
ZmFzdGVyCm1pbnVzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEu
ODc5MCstMC4xMTAzICAgICA/ICAgICAgMS45MDkyKy0wLjEzMzUgICAgICAgID8gbWlnaHQgYmUg
MS4wMTYxeCBzbG93ZXIKbWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMCAgICAgICAgICAgICAgICAg
ICAgMzgyNy45NjIyKy0zMi4yNzczICAgICAgICAzODA0LjU0NTgrLTE4Ljg1NjEgICAgICAgCm1p
c2Mtc3RyaWN0LWVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuMDc2OSstMi4w
OTI4ICAgICAgICAgICAxOC44NTEwKy0wLjc4MDYgICAgICAgICAgbWlnaHQgYmUgMS4wNjUweCBm
YXN0ZXIKbW9kLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC43
NTE4Ky0wLjA3MDUgICAgID8gICAgICA5LjAzMTErLTAuMzc4MyAgICAgICAgPyBtaWdodCBiZSAx
LjAzMTl4IHNsb3dlcgptb2QtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjkwODMrLTAuNDQyNCAgICAgICAgICAgIDYuNjY2NistMC4wNjMyICAgICAgICAgIG1p
Z2h0IGJlIDEuMDM2M3ggZmFzdGVyCm11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuNTg2MCstMC4xMDg1ICAgICA/ICAgICAgMi44MTk0Ky0wLjU3MDQgICAg
ICAgID8gbWlnaHQgYmUgMS4wOTAzeCBzbG93ZXIKbXVsLWJvb2xlYW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi4yNDYwKy0wLjA5NzYgICAgID8gICAgICAyLjI1NjMrLTAu
MTI4OCAgICAgICAgPwpuZWctYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjIyODMrLTAuMDY2NCAgICAgPyAgICAgIDIuMzEyOSstMC4xMTg3ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDM4MHggc2xvd2VyCm5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAuMjk0MistMC4wMTY5ICAgICAgICAgICAgMC4yNjk1Ky0wLjAyMDMgICAg
ICAgICAgbWlnaHQgYmUgMS4wOTE2eCBmYXN0ZXIKbmVnYXRpdmUtemVyby1tb2R1bG8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC4zMTQ5Ky0wLjAzNDEgICAgICAgICAgICAwLjMwMjMrLTAu
MDIyMyAgICAgICAgICBtaWdodCBiZSAxLjA0MTd4IGZhc3RlcgpuZWdhdGl2ZS16ZXJvLW5lZ2F0
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI5NjYrLTAuMDE4MSAgICAgICAgICAgIDAu
MjYyMistMC4wMjAwICAgICAgICAgIG1pZ2h0IGJlIDEuMTMxM3ggZmFzdGVyCm5lc3RlZC1mdW5j
dGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgMzEuMDYyNystMC44MjY0ICAgICAg
ICAgICAzMS4wMDM0Ky0wLjc1MTcgICAgICAgIApuZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAg
ICAgICAgICAgICAgICAgICAgIDc0LjI2MzgrLTAuNjY2NyAgICAgICAgICAgNzMuOTc5MistMC45
MjA2ICAgICAgICAKbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC44MDM4Ky0wLjIzMjQgICAgICAgICAgICA0Ljc3NTMrLTAuMDgxOCAgICAgICAgCm5ldy1h
cnJheS1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNTM4MCstMC4zMjgz
ICAgICA/ICAgICAgNi45NTMwKy0wLjYzODcgICAgICAgID8gbWlnaHQgYmUgMS4wNjM1eCBzbG93
ZXIKbmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45OTM2
Ky0wLjEzNjcgICAgICAgICAgICAyLjg3NDYrLTAuMDQ3NCAgICAgICAgICBtaWdodCBiZSAxLjA0
MTR4IGZhc3Rlcgpuby1pbmxpbmUtY29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAg
IDI5LjIxNTIrLTEuNDUzOCAgICAgICAgICAgMjguNzI3NSstMC4yMjA4ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDE3MHggZmFzdGVyCk51bWJlci1pc05hTiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuODYwOSstMC42ODEwICAgICA/ICAgICAxMC4yMzc1Ky0wLjM1ODIgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzgyeCBzbG93ZXIKbnVtYmVyLXRlc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi41OTUwKy0wLjA1MzQgICAgID8gICAgICAyLjc5MzUrLTAuMzMx
MCAgICAgICAgPyBtaWdodCBiZSAxLjA3NjV4IHNsb3dlcgpvYmplY3QtYW5kICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc3NjErLTAuMjgxNCAgICAgICAgICAgIDQuNzE5
OCstMC4wNjY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExOXggZmFzdGVyCm9iamVjdC1jbG9zdXJl
LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzQ4NistMC4xMTEwICAgICA/ICAg
ICAgNC43MTk0Ky0wLjYxMzYgICAgICAgID8gbWlnaHQgYmUgMS4wODUzeCBzbG93ZXIKb2JqZWN0
LWdldC1vd24tcHJvcGVydHktc3ltYm9scy1vbi1sYXJnZS1hcnJheQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjIzODIrLTAuMzI5NSAgICAgICAgICAg
IDEuMDkxNCstMC4wMjI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTM0NXggZmFzdGVyCm9iamVjdC1p
bnQtYWRkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNDA5NCstMC4yMjQ3ICAg
ICA/ICAgICAxMC42NzQwKy0wLjQ0OTMgICAgICAgID8gbWlnaHQgYmUgMS4wMjU0eCBzbG93ZXIK
b2JqZWN0LWludC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi45NDMyKy0w
LjkxNzYgICAgICAgICAgIDEyLjc5ODcrLTAuNTQ5NiAgICAgICAgICBtaWdodCBiZSAxLjAxMTN4
IGZhc3RlcgpvYmplY3QtaW50LWFuZC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEw
LjQwMDQrLTAuMjAzOSAgICAgPyAgICAgMTAuNTk2NCstMC40NzAzICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE4OHggc2xvd2VyCm9iamVjdC1pbnQtbXVsLWFycmF5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDkuMDk3MCstMC42MTEzICAgICAgICAgICAgOC44OTI2Ky0wLjEzNDcgICAgICAgICAg
bWlnaHQgYmUgMS4wMjMweCBmYXN0ZXIKb2JqZWN0LWludC1zdWItYXJyYXkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy45NzIzKy0wLjQ0ODAgICAgICAgICAgICA3LjczMjUrLTAuMTU0MCAg
ICAgICAgICBtaWdodCBiZSAxLjAzMTB4IGZhc3RlcgpvYmplY3QtaW50LXN1YiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEyLjQ1ODUrLTAuNDg2NSAgICAgICAgICAgMTIuMzY2OCst
MC4yNTIxICAgICAgICAKb2JqZWN0LWxzaGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC44MDE5Ky0wLjM3NTkgICAgICAgICAgICA0LjY1MjMrLTAuMDg3NyAgICAgICAgICBt
aWdodCBiZSAxLjAzMjJ4IGZhc3RlcgpvYmplY3Qtb3IgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjY3MDYrLTAuMDM0OSAgICAgICAgICAgIDQuNjU4OSstMC4wODk5ICAg
ICAgICAKb2JqZWN0LXJzaGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43
NTczKy0wLjIzMzkgICAgICAgICAgICA0LjY1MTkrLTAuMTA1NiAgICAgICAgICBtaWdodCBiZSAx
LjAyMjd4IGZhc3RlcgpvYmplY3QtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjM5MDkrLTAuMDY4NCAgICAgPyAgICAgIDIuNjI3NSstMC41ODk1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDk5MHggc2xvd2VyCm9iamVjdC11cnNoaWZ0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuNzMyNystMC4xMzE1ICAgICA/ICAgICAgNS4xMTI2Ky0wLjc2MDkgICAg
ICAgID8gbWlnaHQgYmUgMS4wODAzeCBzbG93ZXIKb2JqZWN0LXhvciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC43NjA0Ky0wLjI4NDcgICAgICAgICAgICA0LjcxNTUrLTAu
MzEwOCAgICAgICAgCm9idmlvdXMtc2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAgICAgICAg
ICAxMDguMzcxOCstMS44NzQzICAgICA/ICAgIDExNi4wODI2Ky0yMi4zMTYyICAgICAgID8gbWln
aHQgYmUgMS4wNzEyeCBzbG93ZXIKb2J2aW91cy1zaW5rLXBhdGhvbG9neSAgICAgICAgICAgICAg
ICAgICAgICAgICAxOC4xNzY2Ky0xLjMxMjkgICAgICAgICAgIDE3LjY4NDcrLTEuNDExMyAgICAg
ICAgICBtaWdodCBiZSAxLjAyNzh4IGZhc3RlcgpvYnZpb3VzbHktZWxpZGFibGUtbmV3LW9iamVj
dCAgICAgICAgICAgICAgICAgIDE1LjQwMjArLTAuNjkzNyAgICAgPyAgICAgMTYuMjE4NystMS4w
Nzg1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzMHggc2xvd2VyCnBsdXMtYm9vbGVhbi1hcml0aCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTY4NystMC4xMjI2ICAgICA/ICAgICAgMS45
OTE0Ky0wLjA5MDUgICAgICAgID8gbWlnaHQgYmUgMS4wMTE1eCBzbG93ZXIKcGx1cy1ib29sZWFu
LWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4zNzc3Ky0wLjM3ODYgICAgICAg
ICAgICAyLjI2MzcrLTAuMTQzOSAgICAgICAgICBtaWdodCBiZSAxLjA1MDN4IGZhc3RlcgpwbHVz
LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkzNjgrLTAuMTQ2
NCAgICAgICAgICAgIDEuOTI2MCstMC4xMjYzICAgICAgICAKcG9seS1jaGFpbi1hY2Nlc3MtZGlm
ZmVyZW50LXByb3RvdHlwZXMtc2ltcGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMzQ1OCstMC4wNDIyICAgICAgICAgICAgMi4yOTgwKy0wLjExNjcg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjA4eCBmYXN0ZXIKcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVy
ZW50LXByb3RvdHlwZXMgICAgICAgICAgMi4yNTg5Ky0wLjA1NjkgICAgID8gICAgICAyLjM2MTAr
LTAuMTUyNyAgICAgICAgPyBtaWdodCBiZSAxLjA0NTJ4IHNsb3dlcgpwb2x5LWNoYWluLWFjY2Vz
cy1zaW1wbGVyICAgICAgICAgICAgICAgICAgICAgICAyLjI5NDUrLTAuMDk0MyAgICAgPyAgICAg
IDIuMjk2NCstMC4xMjgwICAgICAgICA/CnBvbHktY2hhaW4tYWNjZXNzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMzA2NSstMC4wNzMwICAgICA/ICAgICAgMi40OTExKy0wLjYwNTgg
ICAgICAgID8gbWlnaHQgYmUgMS4wODAxeCBzbG93ZXIKcG9seS1zdHJpY3RlcSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1MS41MTM1Ky0xMC40MTIzICAgICAgICAgIDQ4LjEwNTcr
LTEuNDM0OSAgICAgICAgICBtaWdodCBiZSAxLjA3MDh4IGZhc3Rlcgpwb2x5bW9ycGhpYy1hcnJh
eS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAxLjIyMTQrLTAuMTM5NyAgICAgICAgICAg
IDEuMjExMystMC4yMDQ2ICAgICAgICAKcG9seW1vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS44ODEwKy0wLjExMjAgICAgICAgICAgICAxLjg2NDMrLTAuMDM3NiAg
ICAgICAgCnBvbHltb3JwaGljLXB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgMjQu
NTc1OCstMS4zODE4ICAgICAgICAgICAyNC4yMDgzKy0xLjcyMTIgICAgICAgICAgbWlnaHQgYmUg
MS4wMTUyeCBmYXN0ZXIKcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRoLXN0cmluZyAgICAgICAg
ICAgICAyNC42MjcxKy0wLjc1NTIgICAgID8gICAgIDI1LjM1NzkrLTAuNzg4NiAgICAgICAgPyBt
aWdodCBiZSAxLjAyOTd4IHNsb3dlcgpwb2x5bW9ycGhpYy1wdXQtYnktdmFsLXdpdGgtc3ltYm9s
ICAgICAgICAgICAgIDI0LjQ0NzMrLTAuODg4NSAgICAgPyAgICAgMjQuNTUzMystMS4yMDI4ICAg
ICAgICA/CnBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgMTEu
ODgzMystMC4zODg5ICAgICAgICAgICAxMS42NTM5Ky0wLjEyNTAgICAgICAgICAgbWlnaHQgYmUg
MS4wMTk3eCBmYXN0ZXIKcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAg
ICAgICAgMy4zMzYwKy0wLjExMzIgICAgICAgICAgICAzLjMyMjYrLTAuMTA0NCAgICAgICAgCnBy
b3RvLWdldHRlci1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMzI2OSstMC4z
NDI1ICAgICAgICAgICAxMC4zMjI2Ky0wLjEyMDAgICAgICAgIApwcm90b3R5cGUtYWNjZXNzLXdp
dGgtbXV0YXRpbmctcHJvdG90eXBlICAgICAgICA0LjA4NTIrLTAuMTg2NyAgICAgPyAgICAgIDQu
MzE1MSstMC4zNjg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2M3ggc2xvd2VyCnB1dC1ieS1pZC1y
ZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgIDYuNjc5MystMC4yMjQzICAgICA/
ICAgICAgNi44NTAxKy0wLjk4OTUgICAgICAgID8gbWlnaHQgYmUgMS4wMjU2eCBzbG93ZXIKcHV0
LWJ5LWlkLXNsaWdodGx5LXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgMi4yNDA1Ky0wLjE0
MjkgICAgID8gICAgICAyLjI0NTIrLTAuMDg2MyAgICAgICAgPwpwdXQtYnktaWQtdHJhbnNpdGlv
bi13aXRoLWluZGV4aW5nLWhlYWRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEwLjEyNTMrLTAuMjE2OSAgICAgPyAgICAgMTAuMjE3MSstMC4zMzkwICAg
ICAgICA/CnB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDku
NTYyMCstMi4wNTQ1ICAgICAgICAgICAgOS4xNDIxKy0wLjUwMjQgICAgICAgICAgbWlnaHQgYmUg
MS4wNDU5eCBmYXN0ZXIKcHV0LWJ5LXZhbC1kaXJlY3QgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC4yODMwKy0wLjA0NDMgICAgICAgICAgICAwLjI3MzMrLTAuMDE0NyAgICAgICAgICBt
aWdodCBiZSAxLjAzNTN4IGZhc3RlcgpwdXQtYnktdmFsLWxhcmdlLWluZGV4LWJsYW5rLWluZGV4
aW5nLXR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC4yMDE1Ky0wLjA0NjcgICAgID8gICAgICA0LjMxNzArLTAuMTM3NSAgICAgICAgPyBtaWdodCBi
ZSAxLjAyNzV4IHNsb3dlcgpwdXQtYnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjU4MDIrLTAuMDgwMyAgICAgPyAgICAgIDIuNzM1MSstMC42MTQ4ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDYwMXggc2xvd2VyCnB1dC1ieS12YWwtd2l0aC1zdHJpbmctcmVwbGFjZS1h
bmQtdHJhbnNpdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5Ljk3MDYrLTAuNjI0NCAgICAgPyAgICAgMTAuMjMxNystMC4yODUxICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI2Mnggc2xvd2VyCnB1dC1ieS12YWwtd2l0aC1zdHJpbmctc2xpZ2h0bHktcG9s
eW1vcnBoaWMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My4wNzcxKy0wLjMwMTMgICAgID8gICAgICAzLjE0OTQrLTAuMzk0NyAgICAgICAgPyBtaWdodCBi
ZSAxLjAyMzV4IHNsb3dlcgpwdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgICAgICA5LjE1ODgrLTAuMzcyNSAgICAgPyAgICAgIDkuNDc2NystMC40MTE4ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDM0N3ggc2xvd2VyCnB1dC1ieS12YWwtd2l0aC1zeW1ib2wtcmVwbGFjZS1h
bmQtdHJhbnNpdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5LjE5NjkrLTAuMzM1MyAgICAgPyAgICAgIDkuNTk3NSstMC40ODY4ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDQzNnggc2xvd2VyCnB1dC1ieS12YWwtd2l0aC1zeW1ib2wtc2xpZ2h0bHktcG9s
eW1vcnBoaWMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi41NTc4Ky0wLjExOTQgICAgID8gICAgICAyLjU3NTUrLTAuMTE1NyAgICAgICAgPwpwdXQtYnkt
dmFsLXdpdGgtc3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICA5LjM2NTYrLTAuNDQxMiAg
ICAgICAgICAgIDkuMDI0OSstMC4yMjI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM3N3ggZmFzdGVy
CnJhcmUtb3NyLWV4aXQtb24tbG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgMTAuOTE3Mist
MC4xMzI3ICAgICA/ICAgICAxMS4yODE3Ky0wLjg4OTYgICAgICAgID8gbWlnaHQgYmUgMS4wMzM0
eCBzbG93ZXIKcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAg
NS44NjEzKy0xLjk0MzcgICAgICAgICAgICA0Ljc3MTIrLTAuMDkwMCAgICAgICAgICBtaWdodCBi
ZSAxLjIyODV4IGZhc3RlcgpyYXl0cmFjZS13aXRoLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAg
ICAgICAgICA3LjU3NzIrLTAuMTYxNiAgICAgPyAgICAgIDcuNzc3NSstMC41MDA3ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDI2NHggc2xvd2VyCnJlZ2V4cC1leGVjICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzEuNjI2MistMC4yNDY0ICAgICA/ICAgICAzMi4wOTAwKy0wLjYyNjQg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTQ3eCBzbG93ZXIKcmVnZXhwLWxhc3QtaW5kZXggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOC44MTU2Ky0xLjI4MjAgICAgICAgICAgICA4LjYwMDIr
LTAuNDI4NyAgICAgICAgICBtaWdodCBiZSAxLjAyNTB4IGZhc3RlcgpyZWdleHAtcHJvdG90eXBl
LWlzLW5vdC1pbnN0YW5jZSAgICAgICAgICAgICAgICAwLjMyNjMrLTAuMDE2NiAgICAgICAgICAg
IDAuMzE5MSstMC4wMTIxICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyM3ggZmFzdGVyCnJlZ2V4cC1w
cm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNzEwOSstMC4wNjE0ICAgICA/ICAgICAg
MC43NTMxKy0wLjExMDMgICAgICAgID8gbWlnaHQgYmUgMS4wNTk0eCBzbG93ZXIKcmVnZXhwLXBy
b3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjQwNystMC4wMjQ1ICAgICAgICAgICAg
MC4yMzE0Ky0wLjAxNTMgICAgICAgICAgbWlnaHQgYmUgMS4wNDA1eCBmYXN0ZXIKcmVnZXhwLXBy
b3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjEyMTkrLTAuMDkzMiAgICAgICAgICAgIDEu
MDg1MistMC4wNDM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzOXggZmFzdGVyCnJlZ2V4cC1wcm90
b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjQwNCstMC4wMDU5ICAgICA/ICAgICAgMC4y
NjQzKy0wLjAzOTYgICAgICAgID8gbWlnaHQgYmUgMS4wOTk3eCBzbG93ZXIKcmVnZXhwLXByb3Rv
dHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZmxhZ3MKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNTQ2Ky0wLjAwODQgICAgICAgICAg
ICAwLjI1MTArLTAuMDA1OSAgICAgICAgICBtaWdodCBiZSAxLjAxNDR4IGZhc3RlcgpyZWdleHAt
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1nbG9iYWwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNjM0Ky0wLjAyOTggICAg
ID8gICAgICAwLjI5NDMrLTAuMDg4MyAgICAgICAgPyBtaWdodCBiZSAxLjExNzR4IHNsb3dlcgpy
ZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1pZ25vcmVDYXNl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjU1NSst
MC4wMDg2ICAgICA/ICAgICAgMC4yODIyKy0wLjAzMjQgICAgICAgID8gbWlnaHQgYmUgMS4xMDQ3
eCBzbG93ZXIKcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMt
bXVsdGlsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMjgwNSstMC4wNDAzICAgICAgICAgICAgMC4yNjE4Ky0wLjAyNDUgICAgICAgICAgbWlnaHQg
YmUgMS4wNzE1eCBmYXN0ZXIKcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtc3RpY2t5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAuMjU0NistMC4wMTkyICAgICA/ICAgICAgMC4yNTUyKy0wLjAxMDkgICAgICAgID8K
cmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtdW5pY29kZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI4NjQrLTAu
MDcwOCAgICAgICAgICAgIDAuMjcxMCstMC4wMjUwICAgICAgICAgIG1pZ2h0IGJlIDEuMDU2Nngg
ZmFzdGVyCnJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjg2MSstMC4w
NDYwICAgICAgICAgICAgMC4yNjI5Ky0wLjAxMjQgICAgICAgICAgbWlnaHQgYmUgMS4wODg0eCBm
YXN0ZXIKcmVnZXhwLXByb3RvdHlwZS10ZXN0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNTg4OSstMC4wMzQ0
ICAgICAgICAgICAgMC41NjUzKy0wLjAxNDcgICAgICAgICAgbWlnaHQgYmUgMS4wNDE2eCBmYXN0
ZXIKcmVnZXhwLXByb3RvdHlwZS10ZXN0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjIzODcrLTAuMDE2NiAg
ICAgPyAgICAgIDAuMjU1NystMC4wMjU2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxMXggc2xvd2Vy
CnJlZ2V4cC1zZXQtbGFzdC1pbmRleCAgICAgICAgICAgICAgICAgICAgICAgICAgIDguOTI4Nist
MC4wNzQzICAgICA/ICAgICAgOS4zNjkzKy0wLjU1NzIgICAgICAgID8gbWlnaHQgYmUgMS4wNDk0
eCBzbG93ZXIKcmVnaXN0ZXItcHJlc3N1cmUtZnJvbS1vc3IgICAgICAgICAgICAgICAgICAgICAx
NS4zNDAzKy0wLjg4NzMgICAgID8gICAgIDE1LjQ2ODMrLTEuMjE1MiAgICAgICAgPwpyZXBlYXQt
bXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAgICAgICAgICAgICAgIDE5LjQ1MzYrLTEuMTc0OSAg
ICAgICAgICAgMTguNDY2MystMC43NTA2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUzNXggZmFzdGVy
CnJpY2hhcmRzLWVtcHR5LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgNDkuMjc3OCst
Mi4zNDkwICAgICA/ICAgICA0OS43NjIyKy0wLjY1ODEgICAgICAgID8KcmljaGFyZHMtdHJ5LWNh
dGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwNy40MDc1Ky0zLjI5ODYgICAgID8gICAg
MjEwLjcxNTcrLTQuNTQ0NSAgICAgICAgPyBtaWdodCBiZSAxLjAxNjB4IHNsb3dlcgpzY29wZWQt
YXJndW1lbnRzLWxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICA2LjQzNTYrLTAuNDQwMiAg
ICAgICAgICAgIDYuMzczOCstMC4zMDAzICAgICAgICAKc2NvcGVkLWFyZ3VtZW50cy1vdmVycmlk
ZGVuLWxlbmd0aCAgICAgICAgICAgICAgNS45OTA2Ky0wLjExNDQgICAgID8gICAgICA2Ljc3MjQr
LTIuMDgyMiAgICAgICAgPyBtaWdodCBiZSAxLjEzMDV4IHNsb3dlcgpzY29wZWQtYXJndW1lbnRz
LXBvc3NpYmx5LW92ZXJyaWRkZW4tbGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuNzUxMystMC4yNDQwICAgICA/ICAgICAgNi43OTIyKy0wLjM5
OTEgICAgICAgID8Kc2V0LWZvci1lYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy41NDA5Ky0wLjEwMTcgICAgID8gICAgICAzLjU4OTIrLTAuMDY4OCAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMzZ4IHNsb3dlcgpzZXQtZm9yLW9mICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3LjM3MDArLTEuMTgxNyAgICAgICAgICAgIDYuODE1OSstMC40MTkxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDgxM3ggZmFzdGVyCnNldHRlci1wcm90b3R5cGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuMzcwMSstMC4xMzQwICAgICA/ICAgICAgNC4zNzg2Ky0wLjA1
NzUgICAgICAgID8Kc2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi44NTIxKy0wLjE0NzcgICAgICAgICAgICAyLjg1MTcrLTAuMDgyNCAgICAgICAgCnNpbXBs
ZS1hY3RpdmF0aW9uLWRlbW8gICAgICAgICAgICAgICAgICAgICAgICAgMjEuMzg5NistMC41Nzk4
ICAgICAgICAgICAyMS4yOTQ4Ky0wLjQ4OTEgICAgICAgIApzaW1wbGUtZ2V0dGVyLWFjY2VzcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjE2NjgrLTAuNzIzMyAgICAgPyAgICAgMTYuNTg3
NistMS4wMDA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2MHggc2xvd2VyCnNpbXBsZS1wb2x5LWNh
bGwtbmVzdGVkICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjk3MSstMC4wNjk2ICAgICA/ICAg
ICAgMy44MTk1Ky0wLjQwMTUgICAgICAgID8gbWlnaHQgYmUgMS4wMzMxeCBzbG93ZXIKc2ltcGxl
LXBvbHktY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4xOTk5Ky0wLjA2NTkg
ICAgICAgICAgICAxLjE4NjArLTAuMDMyNyAgICAgICAgICBtaWdodCBiZSAxLjAxMTd4IGZhc3Rl
cgpzaW1wbGUtcmVnZXhwLWV4ZWMtZm9sZGluZy1mYWlsICAgICAgICAgICAgICAgICAyLjk3MzMr
LTAuMzU1MiAgICAgICAgICAgIDIuODMxNistMC4xMzUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDUw
MHggZmFzdGVyCnNpbXBsZS1yZWdleHAtZXhlYy1mb2xkaW5nICAgICAgICAgICAgICAgICAgICAg
MTYuNDE2MSstMC42NDAyICAgICAgICAgICAxNi4zNzI2Ky0wLjY1OTcgICAgICAgIApzaW1wbGUt
cmVnZXhwLXRlc3QtZm9sZGluZy1mYWlsLXdpdGgtaG9pc3RlZC1yZWdleHAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC41MzkwKy0wLjUyNzkgICAgICAg
ICAgICA4LjI3MDMrLTAuMDY4MSAgICAgICAgICBtaWdodCBiZSAxLjAzMjV4IGZhc3RlcgpzaW1w
bGUtcmVnZXhwLXRlc3QtZm9sZGluZy1mYWlsICAgICAgICAgICAgICAgIDE0LjkxODYrLTEuMDEx
NyAgICAgPyAgICAgMTQuOTgyMistMC45OTQzICAgICAgICA/CnNpbXBsZS1yZWdleHAtdGVzdC1m
b2xkaW5nLXdpdGgtaG9pc3RlZC1yZWdleHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS4yMDUzKy0wLjE0NDggICAgID8gICAgICA5LjQ2NjkrLTAuNTI2
NSAgICAgICAgPyBtaWdodCBiZSAxLjAyODR4IHNsb3dlcgpzaW1wbGUtcmVnZXhwLXRlc3QtZm9s
ZGluZyAgICAgICAgICAgICAgICAgICAgIDE2LjAyMjUrLTAuNDgwOSAgICAgPyAgICAgMTYuMTUy
MCstMC44MTIzICAgICAgICA/CnNpbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuMTM5MSstMC4xNTk3ICAgICA/ICAgICAgNi4xNTg1Ky0wLjE5MDAgICAgICAg
ID8Kc2luZ2xldG9uLXNjb3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1OC42MTgy
Ky0xLjg0MDAgICAgICAgICAgIDU4LjMwNTkrLTIuMTUwMCAgICAgICAgCnNpbmstZnVuY3Rpb24g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODg0NSstMC4wODEzICAgICA/ICAg
ICAgNS4xNDI4Ky0wLjMyNzAgICAgICAgID8gbWlnaHQgYmUgMS4wNTI5eCBzbG93ZXIKc2luay1o
dWdlLWFjdGl2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4zNzAwKy0wLjQzMTAg
ICAgICAgICAgIDEyLjEzNDErLTAuNjgwNSAgICAgICAgICBtaWdodCBiZSAxLjAxOTR4IGZhc3Rl
cgpzaW5rYWJsZS1uZXctb2JqZWN0LWRhZyAgICAgICAgICAgICAgICAgICAgICAgIDM4LjI4NzIr
LTEuMzA0NCAgICAgICAgICAgMzcuNTA2OSstMC4yNTA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIw
OHggZmFzdGVyCnNpbmthYmxlLW5ldy1vYmplY3QtdGFrZW4gICAgICAgICAgICAgICAgICAgICAg
MzQuMjQ3NSstNS42NzgwICAgICAgICAgICAzMi45MTI2Ky0xLjQzNjcgICAgICAgICAgbWlnaHQg
YmUgMS4wNDA2eCBmYXN0ZXIKc2lua2FibGUtbmV3LW9iamVjdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxOC41MzY5Ky0yLjU1MTIgICAgICAgICAgIDE4LjI5NzcrLTEuNjc5OCAgICAgICAg
ICBtaWdodCBiZSAxLjAxMzF4IGZhc3RlcgpzbG93LWFycmF5LXByb2ZpbGUtY29udmVyZ2VuY2Ug
ICAgICAgICAgICAgICAgICAyLjQyOTMrLTAuMDY0NyAgICAgPyAgICAgIDIuNDMyOCstMC4yNjQ1
ICAgICAgICA/CnNsb3ctY29udmVyZ2VuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNDAwOSstMC4zNjgxICAgICAgICAgICAgMi4xNTIwKy0wLjAzNzcgICAgICAgICAgbWlnaHQg
YmUgMS4xMTU3eCBmYXN0ZXIKc2xvdy10ZXJuYXJpZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMi42NTQwKy0wLjc0MjAgICAgICAgICAgIDExLjg4ODIrLTAuMTQzNiAgICAgICAg
ICBtaWdodCBiZSAxLjA2NDR4IGZhc3Rlcgpzb3J0aW5nLWJlbmNobWFyayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE3LjA0NzArLTAuNDMyMyAgICAgICAgICAgMTYuNzAyNystMC44ODAz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwNnggZmFzdGVyCnNwYXJzZS1jb25kaXRpb25hbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDQ4NystMC4wMTg2ICAgICAgICAgICAgMS4wMzM3
Ky0wLjAzNjggICAgICAgICAgbWlnaHQgYmUgMS4wMTQ1eCBmYXN0ZXIKc3BsaWNlLXRvLXJlbW92
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4wNTgzKy0wLjQ0NDggICAgICAgICAg
IDEyLjYwODArLTAuNzY2MSAgICAgICAgICBtaWdodCBiZSAxLjAzNTd4IGZhc3RlcgpzdHJjYXQt
Y29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljk4NzIrLTAuMzI4OSAg
ICAgICAgICAgIDQuODMxOSstMC4wNzcxICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyMXggZmFzdGVy
CnN0cmNhdC1sZW5ndGgtY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTUwNSst
MC4wNjI2ICAgICA/ICAgICAgNS4yMzI1Ky0wLjMwNjQgICAgICAgID8gbWlnaHQgYmUgMS4wMTU5
eCBzbG93ZXIKc3RyaW5nLWNoYXItY29kZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MS44MTcwKy0wLjIzODIgICAgID8gICAgIDEyLjA0MzYrLTAuNjU4OSAgICAgICAgPyBtaWdodCBi
ZSAxLjAxOTJ4IHNsb3dlcgpzdHJpbmctY29uY2F0LW9iamVjdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxLjg1MjgrLTAuMTA4NiAgICAgPyAgICAgIDEuOTYzNystMC4xNjUzICAgICAgICA/
IG1pZ2h0IGJlIDEuMDU5OHggc2xvd2VyCnN0cmluZy1jb25jYXQtcGFpci1vYmplY3QgICAgICAg
ICAgICAgICAgICAgICAgIDEuODE1NystMC4xNjc2ICAgICA/ICAgICAgMS44MzExKy0wLjEzNDAg
ICAgICAgID8Kc3RyaW5nLWNvbmNhdC1wYWlyLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAg
Mi42Mzg3Ky0wLjA5NzYgICAgID8gICAgICAyLjY4MDkrLTAuMDkyMCAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNjB4IHNsb3dlcgpzdHJpbmctY29uY2F0LXNpbXBsZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4LjU3OTMrLTAuNTMxMCAgICAgICAgICAgIDguNTA2MystMC42MjA3ICAgICAgICAK
c3RyaW5nLWNvbnMtcmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi42OTA0Ky0w
Ljk5MjkgICAgICAgICAgICA2LjA3NzcrLTAuNjUyOSAgICAgICAgICBtaWdodCBiZSAxLjEwMDh4
IGZhc3RlcgpzdHJpbmctY29ucy10b3dlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjI5MjYrLTAuNDYxMCAgICAgPyAgICAgIDYuNDczNSstMC40NDMwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDI4N3ggc2xvd2VyCnN0cmluZy1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTUuMTA5MSstMC45MjI0ICAgICA/ICAgICAxNS44MTQ2Ky0yLjE5MzIgICAgICAgID8g
bWlnaHQgYmUgMS4wNDY3eCBzbG93ZXIKc3RyaW5nLWZyb20tY2hhci1jb2RlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS43MTE4Ky0wLjA2MTYgICAgICAgICAgICA1LjY1MjMrLTAuMTEzOCAg
ICAgICAgICBtaWdodCBiZSAxLjAxMDV4IGZhc3RlcgpzdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hh
ciAgICAgICAgICAgICAgICAgICAgICA0LjA5NDArLTAuMTAwNSAgICAgPyAgICAgIDQuMjI5OSst
MC4xNzUwICAgICAgICA/IG1pZ2h0IGJlIDEuMDMzMnggc2xvd2VyCnN0cmluZy1nZXQtYnktdmFs
LW91dC1vZi1ib3VuZHMtaW5zYW5lICAgICAgICAgIDMuNDI3MistMC4wNDc0ICAgICAgICAgICAg
My4zOTkwKy0wLjA4MjkgICAgICAgIApzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAg
ICAgICAgICAgICAgICA0LjEyMjYrLTAuNDc3NiAgICAgICAgICAgIDMuODg0MCstMC4xMDY5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDYxNHggZmFzdGVyCnN0cmluZy1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEuNzU1NSstMC4wMzA0ICAgICA/ICAgICAgMS44MDQwKy0w
LjA1OTMgICAgICAgID8gbWlnaHQgYmUgMS4wMjc2eCBzbG93ZXIKc3RyaW5nLWhhc2ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS43NzU0Ky0wLjA3NDQgICAgID8gICAgICAx
Ljc4MjErLTAuMDM4MSAgICAgICAgPwpzdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAg
ICAgICAgICAgICAgIDEyLjQ5NjkrLTAuNDE4MCAgICAgXiAgICAgMTEuNzkwMistMC4xMDgwICAg
ICAgICBeIGRlZmluaXRlbHkgMS4wNTk5eCBmYXN0ZXIKc3RyaW5nLW91dC1vZi1ib3VuZHMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOS42MTQxKy0wLjU4NjkgICAgICAgICAgICA5LjUyMjcr
LTAuNDA0MCAgICAgICAgCnN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
ODk5MSstMC4xMzI1ICAgICAgICAgICAgMC44MjQ5Ky0wLjA1MjQgICAgICAgICAgbWlnaHQgYmUg
MS4wODk5eCBmYXN0ZXIKc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MzA2MystMC4wMjYzICAgICA/ICAgICAgMC40NDA5Ky0wLjM3MTEgICAgICAgID8gbWlnaHQgYmUg
MS40Mzk1eCBzbG93ZXIKc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
Mjk3MCstMC4wMTAzICAgICAgICAgICAgMC4yOTA2Ky0wLjAwNzQgICAgICAgICAgbWlnaHQgYmUg
MS4wMjIweCBmYXN0ZXIKc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHM0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MzAyOCstMC4wMzM1ICAgICA/ICAgICAgMC4zMTg0Ky0wLjAyODYgICAgICAgID8gbWlnaHQgYmUg
MS4wNTE2eCBzbG93ZXIKc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjI0
OTcrLTAuMDM2MCAgICAgPyAgICAgIDEuMjY4NCstMC4wNzc1ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE1MHggc2xvd2VyCnN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVj
dHMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzE3
MCstMC4wMzk1ICAgICA/ICAgICAgMC4zNjEzKy0wLjExMTkgICAgICAgID8gbWlnaHQgYmUgMS4x
Mzk2eCBzbG93ZXIKc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czMtZmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4zMTEwKy0wLjAwNjUgICAgID8gICAgICAwLjMyNjgrLTAuMDM4MyAgICAgICAgPyBtaWdodCBi
ZSAxLjA1MDl4IHNsb3dlcgpzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMy1nbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC4zOTk1Ky0wLjE4NDMgICAgICAgICAgICAwLjM4NDkrLTAuMDg1MCAgICAgICAgICBt
aWdodCBiZSAxLjAzODB4IGZhc3RlcgpzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUt
c2lkZS1lZmZlY3RzMy1pZ25vcmVDYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAuMzE0NCstMC4wMTc2ICAgICA/ICAgICAgMC4zMjc4Ky0wLjAxNTEg
ICAgICAgID8gbWlnaHQgYmUgMS4wNDI3eCBzbG93ZXIKc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDIzMSstMC4xNjI1ICAgICAgICAgICAgMC4zMzA3
Ky0wLjA2MTcgICAgICAgICAgbWlnaHQgYmUgMS4yNzkzeCBmYXN0ZXIKc3RyaW5nLXByb3RvdHlw
ZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzE5OCstMC4wMTcyICAgICA/ICAgICAg
MC4zNDQ5Ky0wLjAzNjIgICAgICAgID8gbWlnaHQgYmUgMS4wNzg1eCBzbG93ZXIKc3RyaW5nLXBy
b3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtdW5pY29kZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjM3NTIrLTAuMTQ5MyAgICAg
ICAgICAgIDAuMzI2NSstMC4wMzgxICAgICAgICAgIG1pZ2h0IGJlIDEuMTQ5MXggZmFzdGVyCnN0
cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzIxNSstMC4wMzIzICAgICA/
ICAgICAgMC4zNDQ1Ky0wLjA0MjggICAgICAgID8gbWlnaHQgYmUgMS4wNzE1eCBzbG93ZXIKc3Ry
aW5nLXJlcGVhdC1hcml0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC43NjU0Ky0xLjUz
NTIgICAgICAgICAgIDE5LjY3NTcrLTAuOTM2NyAgICAgICAgICBtaWdodCBiZSAxLjA1NTR4IGZh
c3RlcgpzdHJpbmctcmVwZWF0LW5vdC1yZXNvbHZpbmctZml4ZWQgICAgICAgICAgICAgICAyLjU2
MDQrLTAuMDkwMSAgICAgICAgICAgIDIuNTE3NistMC4xNTk4ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE3MHggZmFzdGVyCnN0cmluZy1yZXBlYXQtbm90LXJlc29sdmluZy1uby1pbmxpbmUgICAgICAg
ICAgIDMuMjk1MSstMC4wMjY2ICAgICAhICAgICAgMy40MjI1Ky0wLjA1NzYgICAgICAgICEgZGVm
aW5pdGVseSAxLjAzODd4IHNsb3dlcgpzdHJpbmctcmVwZWF0LW5vdC1yZXNvbHZpbmcgICAgICAg
ICAgICAgICAgICAgICAzLjMwMDUrLTAuMTc2OCAgICAgPyAgICAgIDMuMzg3MystMC4xNTM5ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI2M3ggc2xvd2VyCnN0cmluZy1yZXBlYXQtcmVzb2x2aW5nLWZp
eGVkICAgICAgICAgICAgICAgICAgMTcuOTU4MCstMC41NDc4ICAgICA/ICAgICAxOC42MTUwKy0x
LjY2OTEgICAgICAgID8gbWlnaHQgYmUgMS4wMzY2eCBzbG93ZXIKc3RyaW5nLXJlcGVhdC1yZXNv
bHZpbmctbm8taW5saW5lICAgICAgICAgICAgICAyNC4zOTIzKy0xLjQ4NTMgICAgID8gICAgIDI0
LjYwNTUrLTAuODQ4NSAgICAgICAgPwpzdHJpbmctcmVwZWF0LXJlc29sdmluZyAgICAgICAgICAg
ICAgICAgICAgICAgIDI0LjIwMjMrLTAuNjYzMyAgICAgPyAgICAgMjcuMTcyOCstNi4wOTA3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMTIyN3ggc2xvd2VyCnN0cmluZy1yZXBlYXQtc2luZ2xlLW5vdC1y
ZXNvbHZpbmcgICAgICAgICAgICAgIDYuMjk1NistMC42MTM3ICAgICA/ICAgICAgNi41NjQ2Ky0w
LjQ2NjEgICAgICAgID8gbWlnaHQgYmUgMS4wNDI3eCBzbG93ZXIKc3RyaW5nLXJlcGVhdC1zaW5n
bGUtcmVzb2x2aW5nICAgICAgICAgICAgICAgICAgNy4yMjMxKy0wLjc4NDEgICAgICAgICAgICA3
LjE3NTErLTEuMDI1OCAgICAgICAgCnN0cmluZy1yZXBlYXQtc21hbGwtbm90LXJlc29sdmluZyAg
ICAgICAgICAgICAgIDIuOTQ1MSstMC4xMTk5ICAgICAgICAgICAgMi43NzIzKy0wLjE4NzYgICAg
ICAgICAgbWlnaHQgYmUgMS4wNjIzeCBmYXN0ZXIKc3RyaW5nLXJlcGVhdC1zbWFsbC1yZXNvbHZp
bmcgICAgICAgICAgICAgICAgICAyNS4wMTg2Ky0wLjQ2MDUgICAgID8gICAgIDI1LjIwNTMrLTAu
NDE1NSAgICAgICAgPwpzdHJpbmctcmVwbGFjZS1lbXB0eSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4LjMzMDIrLTAuMzcwNSAgICAgICAgICAgIDguMTAyMCstMC4xMjk5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI4MnggZmFzdGVyCnN0cmluZy1yZXBsYWNlLWdlbmVyaWMgICAgICAgICAgICAg
ICAgICAgICAgICAgNTEuMTA0OSstMC45MjIwICAgICA/ICAgICA1Mi4yMDE3Ky00LjgxMjcgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjE1eCBzbG93ZXIKc3RyaW5nLXJlcGxhY2UgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC4yNzM4Ky0wLjM1OTYgICAgICAgICAgICA4LjAyODYrLTAu
NzY1NCAgICAgICAgICBtaWdodCBiZSAxLjAzMDZ4IGZhc3RlcgpzdHJpbmctcm9wZS13aXRoLW9i
amVjdCAgICAgICAgICAgICAgICAgICAgICAgIDE1Ljc5NDQrLTAuODA2NSAgICAgPyAgICAgMTYu
MTkyNystMS4wMDgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1Mnggc2xvd2VyCnN0cmluZy1zdWIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuOTI4OCstOS4yMjg5ICAgICAg
ICAgICAzMS45Mjg1Ky0xLjU1MTggICAgICAgICAgbWlnaHQgYmUgMS4xMjUzeCBmYXN0ZXIKc3Ry
aW5nLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41MTA4Ky0wLjA3
NTkgICAgID8gICAgICAyLjUxODgrLTAuMTYzOSAgICAgICAgPwpzdHJpbmctdHJhbnNjb2Rpbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjA3MTErLTAuNTA0NyAgICAgPyAgICAgMTMu
NTQxMSstMS4wODM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM2MHggc2xvd2VyCnN0cmluZy12YXIt
ZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuODc1NystMS4xMjIwICAgICAg
ICAgICAyNC40MDcxKy0wLjcyMDIgICAgICAgICAgbWlnaHQgYmUgMS4wMTkyeCBmYXN0ZXIKc3Ry
dWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAgMi4zNjkyKy0wLjU2
MDUgICAgICAgICAgICAyLjEzMzIrLTAuMTEwOSAgICAgICAgICBtaWdodCBiZSAxLjExMDZ4IGZh
c3RlcgpzdWJzdHJpbmctY29uY2F0LXdlaXJkICAgICAgICAgICAgICAgICAgICAgICAgIDM0Ljcy
MzMrLTMuODE3NCAgICAgICAgICAgMzMuNDU5OCstMC42MzY5ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDM3OHggZmFzdGVyCnN1YnN0cmluZy1jb25jYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzguNDgyMCstMy4yMTg3ICAgICAgICAgICAzNy4wMTgyKy0wLjgwNjIgICAgICAgICAgbWln
aHQgYmUgMS4wMzk1eCBmYXN0ZXIKc3Vic3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0My42ODg2Ky0xLjY1NjEgICAgICAgICAgIDQzLjE5NzcrLTAuOTkxOCAgICAg
ICAgICBtaWdodCBiZSAxLjAxMTR4IGZhc3Rlcgpzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxLjg2NDArLTAuMDM4NSAgICAgPyAgICAgIDEuOTY5MCstMC4x
MzI4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2M3ggc2xvd2VyCnN3aXRjaC1jaGFyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzA5MystMC4wOTUwICAgICAgICAgICAgNC4y
ODc0Ky0wLjEwOTAgICAgICAgIApzd2l0Y2gtY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjE4MTkrLTAuMTg4NiAgICAgPyAgICAgIDMuMjY3OSstMC4zMTczICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI3MHggc2xvd2VyCnN3aXRjaC1zdHJpbmctYmFzaWMtYmlnLXZhciAg
ICAgICAgICAgICAgICAgICAgMTMuNTgzMCstMC45NDY5ICAgICA/ICAgICAxMy41OTMxKy0wLjgw
ODAgICAgICAgID8Kc3dpdGNoLXN0cmluZy1iYXNpYy1iaWcgICAgICAgICAgICAgICAgICAgICAg
ICAxMi40OTU1Ky0wLjQ0MDggICAgID8gICAgIDEyLjU4ODkrLTAuNjMzNCAgICAgICAgPwpzd2l0
Y2gtc3RyaW5nLWJhc2ljLXZhciAgICAgICAgICAgICAgICAgICAgICAgIDEzLjYwMzErLTEuNjIz
MSAgICAgICAgICAgMTMuMzg2NystMC41MTkyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2MnggZmFz
dGVyCnN3aXRjaC1zdHJpbmctYmFzaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNjQ5
MystMC40NjUwICAgICA/ICAgICAxMS42NjU0Ky0wLjU4MjcgICAgICAgID8Kc3dpdGNoLXN0cmlu
Zy1iaWctbGVuZ3RoLXRvd2VyLXZhciAgICAgICAgICAgICAxOC42OTc5Ky0xLjE2OTUgICAgICAg
ICAgIDE4LjIxNTgrLTAuODQ3MiAgICAgICAgICBtaWdodCBiZSAxLjAyNjV4IGZhc3Rlcgpzd2l0
Y2gtc3RyaW5nLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgIDE0LjYxNTQrLTEuMTc5
MiAgICAgPyAgICAgMTUuNDQ0OCstNC4yMDA4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2OHggc2xv
d2VyCnN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyICAgICAgICAgICAgICAgICAgICAgMTEuMDg1
NSstMC4yMzY5ICAgICA/ICAgICAxMS4yNDE4Ky0wLjMyNTMgICAgICAgID8gbWlnaHQgYmUgMS4w
MTQxeCBzbG93ZXIKc3dpdGNoLXN0cmluZy1zaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMC45NjcyKy0wLjMxNTUgICAgICAgICAgIDEwLjc0NzQrLTAuMDU3OCAgICAgICAgICBtaWdo
dCBiZSAxLjAyMDV4IGZhc3Rlcgpzd2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2LjQwMjgrLTAuNDAxMyAgICAgICAgICAgIDYuMDUyOCstMC4yMTQzICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDU3OHggZmFzdGVyCnN5bWJvbC10b3N0cmluZ3RhZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuOTUwMCstMC4zNDM4ICAgICAgICAgICAgMi44MjgwKy0wLjA2
MzAgICAgICAgICAgbWlnaHQgYmUgMS4wNDMxeCBmYXN0ZXIKdGVhci1vZmYtYXJndW1lbnRzLXNp
bXBsZSAgICAgICAgICAgICAgICAgICAgICAgMi4zNzgzKy0wLjI3ODYgICAgID8gICAgICAyLjU5
MjcrLTAuMjQ1MyAgICAgICAgPyBtaWdodCBiZSAxLjA5MDF4IHNsb3dlcgp0ZWFyLW9mZi1hcmd1
bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA5NDUrLTAuMTQyOCAgICAgICAg
ICAgIDMuMDk0NCstMC4wOTUzICAgICAgICAKdGVtcG9yYWwtc3RydWN0dXJlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMS40MDkzKy0wLjQ0OTIgICAgICAgICAgIDExLjE3MDIrLTAuNTAz
NCAgICAgICAgICBtaWdodCBiZSAxLjAyMTR4IGZhc3Rlcgp0by1pbnQzMi1ib29sZWFuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDExLjk4OTYrLTAuMzMzNCAgICAgICAgICAgMTEuODg5
MystMC4zNzUxICAgICAgICAKdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW51bWJlci1zdHJpbmctbnVt
YmVyLXN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjU3MjUrLTAuNTIzMSAgICAgICAgICAgIDMuMjQ2NSstMC4wNTY5ICAgICAgICAgIG1pZ2h0
IGJlIDEuMTAwNHggZmFzdGVyCnRvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LW51bWJlciAgICAg
ICAgICAgICAgIDAuNjcwMistMC4wODgwICAgICAgICAgICAgMC42MzYwKy0wLjA0MzYgICAgICAg
ICAgbWlnaHQgYmUgMS4wNTM3eCBmYXN0ZXIKdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW9ubHktc3Ry
aW5nICAgICAgICAgICAgICAgMS40ODUyKy0wLjAzMjMgICAgID8gICAgICAxLjUwNTIrLTAuMDg2
MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMzV4IHNsb3dlcgp0by1udW1iZXItY29uc3RydWN0b3It
c3RyaW5nLW51bWJlci1zdHJpbmctbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuOTM2NystMC4zMjAxICAgICAgICAgICAgMi43MzIzKy0wLjA0
NDIgICAgICAgICAgbWlnaHQgYmUgMS4wNzQ4eCBmYXN0ZXIKdG8tbnVtYmVyLW51bWJlci1zdHJp
bmctbnVtYmVyLXN0cmluZyAgICAgICAgICAgMi45NDAwKy0wLjE3MDAgICAgID8gICAgICAzLjAx
NjQrLTAuMzEyNiAgICAgICAgPyBtaWdodCBiZSAxLjAyNjB4IHNsb3dlcgp0by1udW1iZXItb25s
eS1udW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjU4MTUrLTAuMDIzNCAgICAgPyAg
ICAgIDAuNjExNystMC4wNzYzICAgICAgICA/IG1pZ2h0IGJlIDEuMDUxOHggc2xvd2VyCnRvLW51
bWJlci1vbmx5LXN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNDgxNistMC4wNzI5
ICAgICA/ICAgICAgMS40OTIxKy0wLjExODAgICAgICAgID8KdG8tbnVtYmVyLXN0cmluZy1udW1i
ZXItc3RyaW5nLW51bWJlciAgICAgICAgICAgMi44MTY4Ky0wLjA1OTMgICAgID8gICAgICAyLjgz
NjUrLTAuMjQ1MCAgICAgICAgPwp0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1jbG9uZWQtYXJndW1lbnRz
ICAgICAgICAgICAzLjA1MjkrLTAuMTQ4MyAgICAgPyAgICAgIDMuMjg2MCstMC4xNjcwICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDc2NHggc2xvd2VyCnRyeS1jYXRjaC1nZXQtYnktdmFsLWRpcmVjdC1h
cmd1bWVudHMgICAgICAgICAgIDIuMTc1OCstMC41MDE1ICAgICA/ICAgICAgMi4zMTA5Ky0wLjYw
NTMgICAgICAgID8gbWlnaHQgYmUgMS4wNjIxeCBzbG93ZXIKdHJ5LWNhdGNoLWdldC1ieS12YWwt
c2NvcGVkLWFyZ3VtZW50cyAgICAgICAgICAgNC4wNjYwKy0wLjQ5NDMgICAgICAgICAgICAzLjg2
NDMrLTAuMTk1NiAgICAgICAgICBtaWdodCBiZSAxLjA1MjJ4IGZhc3Rlcgp0eXBlZC1hcnJheS1n
ZXQtc2V0LWJ5LXZhbC1wcm9maWxpbmcgICAgICAgICAgIDIwLjA0OTErLTAuNzMwOSAgICAgPyAg
ICAgMjEuNDYyNystMy4zODM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcwNXggc2xvd2VyCnR5cGVk
LWFycmF5LXN1YmFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuODY1NystMC4zMzc2
ICAgICA/ICAgICAzMy42Nzg5Ky0xLjIxMDAgICAgICAgID8gbWlnaHQgYmUgMS4wMjQ3eCBzbG93
ZXIKdW5kZWZpbmVkLXByb3BlcnR5LWFjY2VzcyAgICAgICAgICAgICAgICAgICAgIDIxMS41ODUw
Ky0xLjY0MzkgICAgID8gICAgMjI0Ljg3MTQrLTM1LjAxNDQgICAgICAgPyBtaWdodCBiZSAxLjA2
Mjh4IHNsb3dlcgp1bmRlZmluZWQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjk4NzArLTAuNDM2MiAgICAgICAgICAgIDIuNjQ4OCstMC4wNzA2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMTI3N3ggZmFzdGVyCnVucHJvZmlsZWQtbGljbSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUuNjQ3NistMC4wNDIwICAgICA/ICAgICAgNS45NTczKy0wLjQ0MjMgICAgICAg
ID8gbWlnaHQgYmUgMS4wNTQ4eCBzbG93ZXIKdW50eXBlZC1zdHJpbmctZnJvbS1jaGFyLWNvZGUg
ICAgICAgICAgICAgICAgICAgOS4xMTg3Ky0wLjY2MTIgICAgICAgICAgICA4LjgzMTkrLTAuMjYw
NCAgICAgICAgICBtaWdodCBiZSAxLjAzMjV4IGZhc3Rlcgp2OC1yYXl0cmFjZS13aXRoLWVtcHR5
LXRyeS1jYXRjaCAgICAgICAgICAgICAgIDI5LjExMjUrLTQuMzgyNSAgICAgICAgICAgMjYuMzEz
NCstMC43MTYyICAgICAgICAgIG1pZ2h0IGJlIDEuMTA2NHggZmFzdGVyCnY4LXJheXRyYWNlLXdp
dGgtdHJ5LWNhdGNoLWhpZ2gtZnJlcXVlbmN5LXRocm93cwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjg4Ljc1OTkrLTQuNzQzMyAgICAgPyAgICAyOTIuMDU1
NCstNC43OTk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDExNHggc2xvd2VyCnY4LXJheXRyYWNlLXdp
dGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgNTMuMjcxMistMS41MTA3ICAgICAgICAg
ICA1My4xMDU1Ky0xLjA4NjIgICAgICAgIAp2OC1yZWdleHAtc2VhcmNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQ4LjIzNzUrLTEuOTExNiAgICAgPyAgICAgNTAuNDY3NSstOS44NTk1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2Mnggc2xvd2VyCnZhcmFyZ3MtY2FsbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMuODczMCstMS4xMjY1ICAgICAgICAgICAxMy4xOTY4
Ky0wLjM2ODEgICAgICAgICAgbWlnaHQgYmUgMS4wNTEyeCBmYXN0ZXIKdmFyYXJncy1jb25zdHJ1
Y3QtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAxOC42MzI2Ky0xLjM0NzEgICAgICAgICAg
IDE3LjkwMTYrLTAuMTYxNyAgICAgICAgICBtaWdodCBiZSAxLjA0MDh4IGZhc3Rlcgp2YXJhcmdz
LWNvbnN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0Ljc2MDErLTIuNzA5NiAg
ICAgICAgICAgMTMuODk0NCstMC42NjgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDYyM3ggZmFzdGVy
CnZhcmFyZ3MtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTM4NCst
MC4yODE2ICAgICAgICAgICAgNy43NTI2Ky0wLjE2OTIgICAgICAgICAgbWlnaHQgYmUgMS4wMjQw
eCBmYXN0ZXIKdmFyYXJncy1zdHJpY3QtbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OS4wNTg4Ky0wLjMxMzkgICAgICAgICAgICA4LjkzNzgrLTAuMDc2NiAgICAgICAgICBtaWdodCBi
ZSAxLjAxMzV4IGZhc3Rlcgp2YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5LjEzNTErLTAuNjAxNiAgICAgPyAgICAgIDkuMjQ5MCstMC42NzE0ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDEyNXggc2xvd2VyCndlaXJkLWlubGluaW5nLWNvbnN0LXByb3AgICAgICAg
ICAgICAgICAgICAgICAgIDIuMDAwNystMC4xMDI4ICAgICA/ICAgICAgMi4wMTQwKy0wLjA2ODYg
ICAgICAgID8KCjxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuMzUyMistMC4wMTA2ICAgICAgICAgICAgNi4zNDMwKy0wLjAxNTcgICAgICAgICAgbWlnaHQg
YmUgMS4wMDE1eCBmYXN0ZXIKCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284083</attachid>
            <date>2016-07-19 20:41:30 -0700</date>
            <delta_ts>2016-07-20 14:57:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>162870</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDM0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4MiBA
QAorMjAxNi0wNy0xOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgQWRkIGFuZCBJQyBpbnNpZGUgYWxsIEpJVCB0aWVycy4gSXQgZG9lcyBzbyBpbiBhCisgICAg
ICAgIHNpbXBsZSwgYnV0IGVmZmVjdGl2ZSwgd2F5LiBXZSB3aWxsIHRyeSB0byBnZW5lcmF0ZSBh
biBpbnQraW50IGFkZAorICAgICAgICB0aGF0IHdpbGwgcmVwYXRjaCBpdHNlbGYgaWYgaXRzIHR5
cGUgY2hlY2tzIGZhaWwuIFNvbWV0aW1lcyB0aG91Z2gsCisgICAgICAgIHdlIGhhdmUgcnVudGlt
ZSB0eXBlIGRhdGEgc2F5aW5nIHRoYXQgdGhlIGFkZCB3b24ndCBiZSBpbnQraW50LgorICAgICAg
ICBJbiB0aG9zZSBjYXNlcywgd2Ugd2lsbCBqdXN0IGdlbmVyYXRlIGEgZnVsbCBzbmlwcGV0IHRo
YXQgZG9lc24ndCBwYXRjaCBpdHNlbGYuCisgICAgICAgIE90aGVyIHRpbWVzLCB3ZSBtYXkgZ2Vu
ZXJhdGUgbm8gaW5saW5lIGNvZGUgYW5kIGRlZmVyIHRvIG1ha2luZyBhIEMgY2FsbC4gQSBsb3QK
KyAgICAgICAgb2YgdGhpcyBwYXRjaCBpcyBqdXN0IHJlZmFjdG9yaW5nIFJlc3VsdFByb2ZpbGUg
aW50byB3aGF0IHdlJ3JlIG5vdyBjYWxsaW5nIEFyaXRoUHJvZmlsZS4KKyAgICAgICAgQXJpdGhQ
cm9maWxlIGRvZXMgZXZlcnl0aGluZyBSZXN1bHRQcm9maWxlIHVzZWQgdG8gZG8sIGFuZCBtb3Jl
LiBJdCByZWNvcmRzIHNpbXBsZSB0eXBlCisgICAgICAgIGRhdGEgYWJvdXQgdGhlIExIUy9SSFMg
b3BlcmFuZHMgaXQgc2Vlcy4gVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIGlmIGFuIG9wX2Fk
ZAorICAgICAgICBoYXMgb25seSBzZWVuIGludCtpbnQgb3BlcmFuZHMsIGV0Yy4gQXJpdGhQcm9m
aWxlIHdpbGwgYWxzbyBjb250YWluIHRoZSBSZXN1bHRUeXBlCisgICAgICAgIGZvciB0aGUgTEhT
L1JIUyB0aGF0IHRoZSBwYXJzZXIgZmVlZHMgaW50byBvcF9hZGQuIEFyaXRoUHJvZmlsZSBub3cg
Zml0cyBpbnRvIDMyLWJpdHMuCisgICAgICAgIFRoaXMgbWVhbnMgaW5zdGVhZCBvZiBoYXZpbmcg
YSBzaWRlIHRhYmxlIGxpa2Ugd2UgZGlkIGZvciBSZXN1bHRQcm9maWxlLCB3ZSBqdXN0CisgICAg
ICAgIGluamVjdCB0aGUgQXJpdGhQcm9maWxlIGludG8gdGhlIGJ5dGVjb2RlIGluc3RydWN0aW9u
IHN0cmVhbS4gVGhpcyBtYWtlcyBhc2tpbmcKKyAgICAgICAgZm9yIEFyaXRoUHJvZmlsZSBmYXN0
ZXI7IHdlIG5vIGxvbmdlciBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMgb3BlcmF0aW9uLgorCisg
ICAgICAgIFRoZSBzaXplIG9mIGFuIEFkZCBoYXMgZ29uZSBkb3duIG9uIGF2ZXJhZ2UsIGJ1dCB3
ZSBjYW4gc3RpbGwgZG8gYmV0dGVyLgorICAgICAgICBXZSBzdGlsbCBnZW5lcmF0ZSBhIGxvdCBv
ZiBjb2RlIGJlY2F1c2Ugd2UgZ2VuZXJhdGUgY2FsbHMgdG8gdGhlIHNsb3cgcGF0aC4KKyAgICAg
ICAgSSB0aGluayB3ZSBjYW4gbWFrZSB0aGlzIGJldHRlciBieSBtb3ZpbmcgdGhlIHNsb3cgcGF0
aCB0byBhIHNoYXJlZCB0aHVuaworICAgICAgICBzeXN0ZW0uIFRoaXMgcGF0Y2ggbW9zdGx5IGxh
eXMgdGhlIGZvdW5kYXRpb24gZm9yIGZ1dHVyZSBpbXByb3ZlbWVudHMgdG8gQWRkLAorICAgICAg
ICBhbmQgYSBmcmFtZXdvcmsgdG8gbW92ZSBhbGwgb3RoZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25z
IHRvIGJlIHR5cGVkLWJhc2VkIElDcy4KKworICAgICAgICBIZXJlIGlzIHNvbWUgZGF0YSBJIHRv
b2sgb24gdGhlIGF2ZXJhZ2Ugb3BfYWRkL1ZhbHVlQWRkIHNpemUgb24gdmFyaW91cyBiZW5jaG1h
cmtzOgorICAgICAgICAgICAgICAgICAgIHwgICBKZXRTdHJlYW0gIHwgIFNwZWVkb21ldGVyIHwg
IFVuaXR5IDNEICB8CisgICAgICAgICAgICAgLS0tLS0tfCAtLS0tLS0tLS0tLS0tfC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIE9sZCAgfCAgMTg5IGJ5dGVzICAg
fCAgMTY5IGJ5dGVzICAgfCAgMTkyIGJ5dGVzIHwKKyAgICAgICAgICAgICAtLS0tLS18IC0tLS0t
LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgTmV3
ICB8ICAxNDggYnl0ZXMgICB8ICAxMjQgYnl0ZXMgICB8ICAxNDMgYnl0ZXMgfAorICAgICAgICAg
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgIE1ha2luZyBhbiBhcml0aG1ldGljIElDIGlzIG5vdyBlYXN5LiBUaGUgSklUTWF0
aElDIGNsYXNzIHdpbGwgaG9sZCBhIHNuaXBwZXQKKyAgICAgICAgZ2VuZXJhdG9yIGFzIGEgbWVt
YmVyIHZhcmlhYmxlLiBUbyBtYWtlIGEgc25pcHBldCBhbiBJQywgeW91IG5lZWQgdG8gaW1wbGVt
ZW50CisgICAgICAgIGEgZ2VuZXJhdGVJbmxpbmUoLikgbWV0aG9kLCB3aGljaCBnZW5lcmF0ZXMg
dGhlIGlubGluZSBJQy4gVGhlbiwgeW91IG5lZWQgdG8KKyAgICAgICAgZ2VuZXJhdGUgdGhlIElD
IHdoZXJlIHlvdSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBzbmlwcGV0LiBXaGVuIGdlbmVyYXRpbmcg
dGhlCisgICAgICAgIElDLCB3ZSBuZWVkIHRvIGluZm9ybSBKSVRNYXRoSUMgb2YgdmFyaW91cyBk
YXRhIGxpa2Ugd2UgZG8gd2l0aCBTdHJ1Y3R1cmVTdHViSW5mby4KKyAgICAgICAgV2UgbmVlZCB0
byB0ZWxsIGl0IGFib3V0IHdoZXJlIHRoZSBzbG93IHBhdGggc3RhcnRzLCB3aGVyZSB0aGUgc2xv
dyBwYXRoIGNhbGwgaXMsIGV0Yy4KKyAgICAgICAgV2hlbiBnZW5lcmF0aW5nIGEgSklUTWF0aElD
LCBpdCBtYXkgdGVsbCB5b3UgdGhhdCBpdCBkaWRuJ3QgZ2VuZXJhdGUgYW55IGNvZGUgaW5saW5l
LgorICAgICAgICBUaGlzIGlzIGEgcmVxdWVzdCB0byB0aGUgdXNlciBvZiBKSVRNYXRoSUMgdG8g
anVzdCBnZW5lcmF0ZSBhIEMgY2FsbCBhbG9uZyB0aGUKKyAgICAgICAgZmFzdCBwYXRoLiBKSVRN
YXRoSUMgbWF5IGFsc28gaGF2ZSB0aGUgc25pcHBldCB0ZWxsIGl0IHRvIGp1c3QgZ2VuZXJhdGUg
dGhlIGZ1bGwKKyAgICAgICAgc25pcHBldCBpbnN0ZWFkIG9mIHRoZSBpbnQraW50IHBhdGggYWxv
bmcgdGhlIGZhc3QgcGF0aC4KKworICAgICAgICBJbiBzdWJzZXF1ZW50IHBhdGNoZXMsIHdlIGNh
biBpbXByb3ZlIHVwb24gaG93IHdlIGRlY2lkZSB0byBnZW5lcmF0ZSBpbnQraW50IG9yCisgICAg
ICAgIHRoZSBmdWxsIHNuaXBwZXQuIEkgdHJpZWQgdG8gZ2V0IGNsZXZlciBieSBoYXZpbmcgZG91
YmxlK2RvdWJsZSwgZG91YmxlK2ludCwgaW50K2RvdWJsZSwKKyAgICAgICAgZmFzdCBwYXRocywg
YnV0IHRoZXkgZGlkbid0IHdvcmsgb3V0IG5lYXJseSBhcyB3ZWxsIGFzIHRoZSBpbnQraW50IGZh
c3QgcGF0aC4gSSBlbmRlZCB1cAorICAgICAgICBnZW5lcmF0aW5nIGEgbG90IG9mIGNvZGUgd2hl
biBJIGRpZCB0aGlzIGFuZCBlbmRlZCB1cCB1c2luZyBtb3JlIG1lbW9yeSB0aGFuIGp1c3QgZ2Vu
ZXJhdGluZworICAgICAgICB0aGUgZnVsbCBzbmlwcGV0LiBUaGVyZSBpcyBwcm9iYWJseSBzb21l
IHdheSB3ZSBjYW4gYmUgY2xldmVyIGFuZCBnZW5lcmF0ZSBzcGVjaWFsaXplZCBmYXN0CisgICAg
ICAgIHBhdGhzIHRoYXQgYXJlIG1vcmUgc3VjY2Vzc2Z1bCB0aGFuIHdoYXQgSSB0cmllZCBpbXBs
ZW1lbnRpbmcsIGJ1dCBJIHRoaW5rIHRoYXQncyB3b3J0aCBkb2luZworICAgICAgICB0aGlzIGlu
IGZvbGxvdyB1cCBwYXRjaGVzIG9uY2UgdGhlIEpJVE1hdGhJQyBmb3VuZGF0aW9uIGhhcyBsYW5k
ZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGZpeGVzIGEgYnVnIGluc2lkZSB0aGUgc2xv
dyBwYXRoIGxhbWJkYXMgaW4gdGhlIERGRy4KKyAgICAgICAgQmVmb3JlLCBpdCB3YXMgbm90IGxl
Z2FsIHRvIGVtaXQgYW4gZXhjZXB0aW9uIGNoZWNrIGluc2lkZSB0aGVtLiBOb3csCisgICAgICAg
IGl0IGlzLiBTbyBpdCdzIG5vdyBlYXN5IHRvIGRlZmluZSBhcmJpdHJhcnkgbGF0ZSBwYXRocyB1
c2luZyB0aGUgREZHCisgICAgICAgIHNsb3cgcGF0aCBsYW1iZGEgQVBJLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNob3VsZEVtaXRTZXREb3VibGUpOgorICAgICAgICAo
SlNDOjpBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFBy
b2ZpbGU6OnNob3VsZEVtaXRTZXROb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2Zp
bGU6OmVtaXRTZXROb25OdW1iZXIpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAg
ICAgICAgKiBieXRlY29kZS9Bcml0aFByb2ZpbGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6Ok9i
c2VydmVkVHlwZTo6T2JzZXJ2ZWRUeXBlKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpz
YXdJbnQzMik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNPbmx5SW50MzIpOgorICAg
ICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNhd051bWJlcik6CisgICAgICAgIChKU0M6Ok9ic2Vy
dmVkVHlwZTo6aXNPbmx5TnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpzYXdO
b25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzT25seU5vbk51bWJlcik6
CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNFbXB0eSk6CisgICAgICAgIChKU0M6Ok9i
c2VydmVkVHlwZTo6Yml0cyk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6d2l0aEludDMy
KToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRoTnVtYmVyKToKKyAgICAgICAgKEpT
Qzo6T2JzZXJ2ZWRUeXBlOjp3aXRoTm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRU
eXBlOjp3aXRob3V0Tm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpBcml0aFByb2ZpbGUpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmZyb21JbnQpOgorICAgICAgICAoSlNDOjpBcml0aFBy
b2ZpbGU6Omxoc1Jlc3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnJoc1Jl
c3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc09ic2VydmVkVHlwZSk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzT2JzZXJ2ZWRUeXBlKToKKyAgICAgICAg
KEpTQzo6QXJpdGhQcm9maWxlOjpzZXRMaHNPYnNlcnZlZFR5cGUpOgorICAgICAgICAoSlNDOjpB
cml0aFByb2ZpbGU6OnNldFJoc09ic2VydmVkVHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJv
ZmlsZTo6dG9va1NwZWNpYWxGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6
ZGlkT2JzZXJ2ZU5vbkludDMyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNl
cnZlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlTm9uTmVn
WmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVOb25OdW1i
ZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVJbnQzMk92ZXJmbG93
KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlSW50NTJPdmVyZmxvdyk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkTm9uTnVtYmVyKToKKyAg
ICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3cpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkSW50NTJPdmVyZmxvdyk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6YWRkcmVzc09mQml0cyk6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTo6ZGV0ZWN0TnVtZXJpY25lc3MpOgorICAgICAgICAoSlNDOjpBcml0aFByb2Zp
bGU6Omxoc1Nhd0ludDMyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpsaHNTYXdOdW1i
ZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc1Nhd05vbk51bWJlcik6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzU2F3SW50MzIpOgorICAgICAgICAoSlNDOjpBcml0
aFByb2ZpbGU6OnJoc1Nhd051bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhz
U2F3Tm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpvYnNlcnZlTEhTQW5k
UkhTKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6
QXJpdGhQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRC
aXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZHVtcFJhcmVDYXNlUHJvZmlsZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEFyaXRoUHJvZmlsZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2Rl
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRTdHViSW5mbyk6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6YWRkSklUQWRkSUMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmRT
dHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVzZXRKSVREYXRhKToKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpzaHJpbmtUb0ZpdCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6ZHVtcFZhbHVlUHJvZmlsZXMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnJhcmVDYXNl
UHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
Ojphcml0aFByb2ZpbGVGb3JQQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y291bGRUYWtl
U3BlY2lhbEZhc3RDYXNlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wUmVzdWx0UHJv
ZmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVzdWx0UHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzcGVj
aWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6ZW5zdXJlUmVzdWx0UHJvZmlsZSk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3R1
YkluZm9CZWdpbik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3R1YkluZm9FbmQpOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmNvdWxkVGFrZVNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjpudW1iZXJPZlJlc3VsdFByb2ZpbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZhbHVlKToKKyAgICAgICAg
KiBieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmg6CisgICAgICAgIChKU0M6
Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6
OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXRTZXREb3VibGUpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVQ
cm9maWxlLmg6CisgICAgICAgIChKU0M6OmdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6UmVzdWx0UHJvZmlsZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6c3BlY2lhbEZhc3RQYXRoQ291bnQpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlTm9uSW50MzIpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlRG91YmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZU5vbk5lZ1pl
cm9Eb3VibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNl
cnZlTmVnWmVyb0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6
OmRpZE9ic2VydmVOb25OdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9m
aWxlOjpkaWRPYnNlcnZlSW50MzJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJl
c3VsdFByb2ZpbGU6OmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6c2V0T2JzZXJ2ZWROZWdaZXJvRG91Ymxl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25O
dW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZEludDMyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpz
ZXRPYnNlcnZlZEludDUyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQ
cm9maWxlOjphZGRyZXNzT2ZGbGFncyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFBy
b2ZpbGU6OmFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGV0ZWN0TnVtZXJpY25lc3MpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
UmVzdWx0UHJvZmlsZTo6c2V0Qml0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2V0UmVzdWx0
UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdEJpbmFyeU9wKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtlU2FmZSk6CisgICAgICAgICogZGZn
L0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZUZvcik6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6ZXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAq
IGRmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpERkc6OlNsb3dQYXRo
R2VuZXJhdG9yOjpnZW5lcmF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpydW5TbG93UGF0aEdlbmVy
YXRvcnMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVB
ZGQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlU3RyQ2F0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6ZW1pdEJpbmFyeVNuaXBwZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjplbWl0QWRkU25pcHBldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmVtaXRCaW5hcnlCaXRPcFNuaXBwZXQpOgorICAgICAgICAqIGppdC9DQ2FsbEhl
bHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzKToK
KyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVEFkZEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVJbmxpbmUpOgorICAgICAg
ICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAqIGpp
dC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpKSVRB
ZGRHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmRpZEVtaXRGYXN0
UGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6ZW5kSnVtcExp
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OnNsb3dQYXRoSnVt
cExpc3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX2psZXNzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF91cnNoaWZ0KToKKyAgICAgICAgKEpTQzo6Z2V0T3BlcmFuZFR5cGVzKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bf
YWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211bCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRT
bG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVERpdkdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0
L0pJVERpdkdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVREaXZHZW5lcmF0b3I6OkpJVERp
dkdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUTWF0aElDLmg6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmRvbmVMb2NhdGlvbik6CisgICAgICAgIChKU0M6OkpJ
VE1hdGhJQzo6c2xvd1BhdGhTdGFydExvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklUTWF0aElD
OjpzbG93UGF0aENhbGxMb2NhdGlvbik6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6Z2VuZXJh
dGVJbmxpbmUpOgorICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmdlbmVyYXRlT3V0T2ZMaW5lKToK
KyAgICAgICAgKEpTQzo6SklUTWF0aElDOjpmaW5hbGl6ZUlubGluZUNvZGUpOgorICAgICAgICAq
IGppdC9KSVRNYXRoSUNGb3J3YXJkcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvSklUTXVsR2Vu
ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKToKKyAgICAgICAgKiBqaXQvSklUTXVsR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJ
VE11bEdlbmVyYXRvcjo6SklUTXVsR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQv
SklUU3ViR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklUU3ViR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKiBqaXQvSklUU3ViR2VuZXJhdG9yLmg6CisgICAgICAg
IChKU0M6OkpJVFN1YkdlbmVyYXRvcjo6SklUU3ViR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQv
UmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OnJlYWRDYWxsVGFyZ2V0KToKKyAgICAgICAgKEpT
Qzo6ZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRC
eUlEKToKKyAgICAgICAgKEpTQzo6cmVwYXRjaEdldEJ5SUQpOgorICAgICAgICAoSlNDOjphcHBy
b3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1
dEJ5SUQpOgorICAgICAgICAoSlNDOjpyZXBhdGNoUHV0QnlJRCk6CisgICAgICAgIChKU0M6OnRy
eVJlcGF0Y2hJbik6CisgICAgICAgIChKU0M6OnJlcGF0Y2hJbik6CisgICAgICAgIChKU0M6Omxp
bmtTbG93Rm9yKToKKyAgICAgICAgKEpTQzo6cmVzZXRHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6
cmVzZXRQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6cmVwYXRjaENhbGwpOiBEZWxldGVkLgorICAg
ICAgICAqIGppdC9SZXBhdGNoLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc206CisgICAgICAgICogcGFyc2VyL1Jlc3VsdFR5cGUuaDoKKyAgICAgICAgKEpTQzo6UmVz
dWx0VHlwZTo6UmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmlzSW50MzIp
OgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpkZWZpbml0ZWx5SXNOdW1iZXIpOgorICAgICAg
ICAoSlNDOjpSZXN1bHRUeXBlOjpkZWZpbml0ZWx5SXNTdHJpbmcpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRUeXBlOjpkZWZpbml0ZWx5SXNCb29sZWFuKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlw
ZTo6bWlnaHRCZU51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmlzTm90TnVtYmVy
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6Zm9yQml0T3ApOgorICAgICAgICAoSlNDOjpS
ZXN1bHRUeXBlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6T3BlcmFuZFR5cGVzOjpPcGVyYW5kVHlw
ZXMpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjp1cGRhdGVBcml0aFByb2ZpbGVGb3JC
aW5hcnlBcml0aE9wKToKKyAgICAgICAgKEpTQzo6dXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFy
eUFyaXRoT3ApOiBEZWxldGVkLgorCiAyMDE2LTA3LTE5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QyNjIgc2hvdWxkIGhhdmUgYSBmaWxlIHdp
dGggdGhlIHJldmlzaW9uIGFuZCB1cmwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHNldChKYXZhU2NyaXB0
Q29yZV9TT1VSQ0VTCiAgICAgYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVDcmVhdG9yLmNwcAog
CiAgICAgYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFz
ZS5jcHAKKyAgICBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZS5jcHAKICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUuY3BwCiAgICAg
Ynl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjgxLDE2ICsxMjgxLDIxIEBACiAJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVB
Y2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OTE2MERCRDFDOEUzRUM4MDA4QzA4
NUEgLyogUHJveHlSZXZva2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAq
LzsgfTsKIAkJNzkxNjBEQkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERCQzFDOEUzRUM4
MDA4QzA4NUEgLyogUHJveHlSZXZva2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElD
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0My
OTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBD
VG9Db2RlT3JpZ2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5j
cHAgKi87IH07CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0Iz
NDgxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1
OUVFIC8qIEdldFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhG
Q0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0
MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FB
MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAw
ODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0
IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIy
ODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8q
IEFyaXRoUHJvZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBB
cml0aFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKKwkJ
NzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBRjBCRTMxRDNFRkQ0
QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAv
KiBQcm94eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9y
LmNwcCAqLzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAw
Q0I5MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhD
NjVEIC8qIFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAg
Ki87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1j
YWxscyI7IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIx
QzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJ
VE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1
RDFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0
QjE1QjFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25Q
aGFzZS5jcHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0
Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNh
dGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTElu
dFBDUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUNGQzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc2LDEyICszNDgxLDE3
IEBACiAJCTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAv
KiBQcm94eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJl
dm9rZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBD
NUE4MzQgLyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJ
VE1hdGhJQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVD
MDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAw
QkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0Iz
UENUb09yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFE
MzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3
YXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJk
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVG
QTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8q
IFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
eHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCQTFD
NkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTA1Nyw2ICs1MDY3LDkgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyog
SW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8q
IEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oICovLAor
CQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4
OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLywKKwkJCQk3OUFG
MEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8sCiAJCQkJ
RkUxMjIwMjUxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAgKi8sCiAJCQkJ
RkUxMjIwMjYxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovLAogCQkJCTg2
QTkwRUNGMEVFN0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAqLywKQEAgLTY1NTYs
NiArNjU2OSw4IEBACiAJCQkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2Nh
dGlvblByb2ZpbGUuaCAqLywKIAkJCQkwRjYzOTQ1MTE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQ
cm9maWxlLmNwcCAqLywKIAkJCQkwRjYzOTQ1MjE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9m
aWxlLmggKi8sCisJCQkJNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5j
cHAgKi8sCisJCQkJNzlBMjI4MzQxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oICov
LAogCQkJCUMyRkNBRTBDMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suY3Bw
ICovLAogCQkJCUMyRkNBRTBEMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2su
aCAqLywKIAkJCQkwRjIxQzI3RTE0QkVBQTgwMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9u
cy5oICovLApAQCAtNzA2OCw2ICs3MDgzLDcgQEAKIAkJCQlBNUVBNzBFODE5RjVCMTAxMDA5OEY1
RUMgLyogQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODRGRjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Js
b2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklU
TWF0aElDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMjFCREFDREFDMDA4MEZGNzQgLyog
QjNCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDMxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQmFzaWNCbG9ja1V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVD
ODUwNDFCREFDREFDMDA4MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywK
QEAgLTc2NDUsNiArNzY2MSw3IEBACiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFCMTc0IC8qIElu
dDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAwODA2NkREIC8q
IEludGVybmFsRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlENzdDMEVEMjBENzMw
MEI4OTYxOSAvKiBJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBRjBCRTQxRDNF
RkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFCOUUyM0ExQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50
bENvbGxhdG9yQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3NTQsNiArNzc3
MSw3IEBACiAJCQkJQTUxMDA3QzExODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAw
NjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTAzRkEyQTE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1Nl
cnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhFMDY3IC8qIEFy
aXRoUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzAxODVCRkFDQzAwN0U5NUFE
IC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDMjE4
NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM0NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0cy5qc29uIGlu
IEhlYWRlcnMgKi8sCkBAIC04MTc5LDYgKzgxOTcsNyBAQAogCQkJCTBGQzgxNTBBMTQwNDNCRjUw
MENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4
Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5OTU5RTkyRTFCRDE3RkE0MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBp
biBIZWFkZXJzICovLApAQCAtOTI2Myw2ICs5MjgyLDcgQEAKIAkJCQkwRkVCM0VDRjE2MjM3RjZD
MDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZDNTY4
RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFBy
b2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2MDAwMzE3Mjk4IC8q
IE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OEM2MzgxQjkw
REUwQjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJpdGhQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCisjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlND
IHsKKworI2lmIEVOQUJMRShKSVQpCit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdERldGVjdE51bWVy
aWNuZXNzKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNN
b2RlIG1vZGUpCit7CisgICAgaWYgKCFzaG91bGRFbWl0U2V0RG91YmxlKCkgJiYgIXNob3VsZEVt
aXRTZXROb25OdW1iZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQz
MihyZWdzLCBtb2RlKTsKKyAgICBlbWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAg
IGVtaXRTZXROb25OdW1iZXIoaml0KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAgaXNJbnQz
Mi5saW5rKCZqaXQpOworfQorCitib29sIEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldERvdWJs
ZSgpIGNvbnN0Cit7CisgICAgdWludDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6SW50MzJPdmVy
ZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6TmVnWmVy
b0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZTsKKyAgICByZXR1cm4gKG1f
Yml0cyAmIG1hc2spICE9IG1hc2s7Cit9CisKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0U2V0RG91
YmxlKENDYWxsSGVscGVycyYgaml0KQoreworICAgIGlmIChzaG91bGRFbWl0U2V0RG91YmxlKCkp
CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmls
ZTo6SW50MzJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJv
ZmlsZTo6TmVnWmVyb0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQorCitib29s
IEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0Cit7CisgICAgdWlu
dDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6Tm9uTnVtYmVyOworICAgIHJldHVybiAobV9iaXRz
ICYgbWFzaykgIT0gbWFzazsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXROb25OdW1i
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaWYgKHNob3VsZEVtaXRTZXROb25OdW1iZXIo
KSkKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9m
aWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZC
aXRzKCkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFjZSBKU0MK
KworbmFtZXNwYWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHBy
aW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgQXJpdGhQcm9maWxlJiBwcm9maWxl
KQoreworICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOworCisgICAgaWYgKCFwcm9maWxl
LmRpZE9ic2VydmVOb25JbnQzMigpKSB7CisgICAgICAgIG91dC5wcmludCgiSW50MzIiKTsKKyAg
ICAgICAgc2VwYXJhdG9yID0gInwiOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChwcm9maWxl
LmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludChzZXBh
cmF0b3IsICJOZWdaZXJvRG91YmxlIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUo
KSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJOb25OZWdaZXJvRG91YmxlIik7CisgICAgICAg
ICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlk
T2JzZXJ2ZU5vbk51bWJlcigpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJlciIp
OworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChw
cm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmlu
dCgiSW50MzJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAg
ICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2VwYXJh
dG9yID0gInwiOworICAgICAgICB9CisgICAgfQorICAgIGlmIChwcm9maWxlLnRvb2tTcGVjaWFs
RmFzdFBhdGgoKSkKKyAgICAgICAgb3V0LnByaW50KCIgdG9vayBzcGVjaWFsIGZhc3QgcGF0aC4i
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJpdGhQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFs
dWUuaCIKKyNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9k
ZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3Qg
T2JzZXJ2ZWRUeXBlIHsKKyAgICBPYnNlcnZlZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5
KQorICAgICAgICA6IG1fYml0cyhiaXRzKQorICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigp
IGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50
MzIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdO
dW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBp
c09ubHlOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAg
IGJvb2wgc2F3Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU5vbk51bWJl
cjsgfQorICAgIGJvb2wgaXNPbmx5Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09
IFR5cGVOb25OdW1iZXI7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9i
aXRzOyB9CisgICAgdWludDhfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKKyAg
ICBPYnNlcnZlZFR5cGUgd2l0aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1f
Yml0cyB8IFR5cGVJbnQzMik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0
IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQorICAgIE9ic2Vy
dmVkVHlwZSB3aXRoTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0
cyB8IFR5cGVOb25OdW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIo
KSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9
CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gbV9iaXRzID09IG90aGVyLm1fYml0czsgfQorCisgICAgc3RhdGljIGNvbnN0IHVp
bnQ4X3QgVHlwZUVtcHR5ID0gMHgwOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQz
MiA9IDB4MTsKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKworcHJpdmF0ZToK
KyAgICB1aW50OF90IG1fYml0czsKK307CisKK3N0cnVjdCBBcml0aFByb2ZpbGUgeworcHJpdmF0
ZToKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc1Jlc3VsdFR5cGVTaGlmdCA9IDU7CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9IDExOworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCByaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE3OworICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBsaHNPYnNlcnZlZFR5cGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBib3R0b202Qml0cyA9ICgxIDw8IDYpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgYm90dG9tM0JpdHMgPSAoMSA8PCAzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IGNsZWFyUmhzT2JzZXJ2ZWRUeXBlQml0cyA9IH4oKDEgPDwgMTcpIHwgKDEgPDwgMTgpIHwgKDEg
PDwgMTkpKTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVC
aXRzID0gfigoMSA8PCAyMCkgfCAoMSA8PCAyMSkgfCAoMSA8PCAyMikpOworCisgICAgc3RhdGlj
X2Fzc2VydChSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25n
IGFzc3VtcHRpb24gaGVyZSB0aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpdHMuIik7CisKK3B1
YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc3BlY2lhbEZhc3RQYXRoQml0ID0gMSA8
PCAyMzsKKworICAgIEFyaXRoUHJvZmlsZShSZXN1bHRUeXBlIGxocywgUmVzdWx0VHlwZSByaHMp
CisgICAgeworICAgICAgICBtX2JpdHMgPSAobGhzLmJpdHMoKSA8PCBsaHNSZXN1bHRUeXBlU2hp
ZnQpIHwgKHJocy5iaXRzKCkgPDwgcmhzUmVzdWx0VHlwZVNoaWZ0KTsKKyAgICAgICAgQVNTRVJU
KGxoc1Jlc3VsdFR5cGUoKS5iaXRzKCkgPT0gbGhzLmJpdHMoKSAmJiByaHNSZXN1bHRUeXBlKCku
Yml0cygpID09IHJocy5iaXRzKCkpOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCku
aXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKHJoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7
CisgICAgfQorICAgIEFyaXRoUHJvZmlsZSgpCisgICAgeyB9CisKKyAgICBzdGF0aWMgQXJpdGhQ
cm9maWxlIGZyb21JbnQodWludDMyX3QgYml0cykKKyAgICB7CisgICAgICAgIEFyaXRoUHJvZmls
ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBiaXRzOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKworICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKKyAgICAgICAgTm9u
TmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwg
MSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVy
ZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKKyAg
ICB9OworCisgICAgUmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVz
dWx0VHlwZSgobV9iaXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0K
KyAgICBSZXN1bHRUeXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBl
KChtX2JpdHMgPj4gcmhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorCisgICAg
T2JzZXJ2ZWRUeXBlIGxoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlw
ZSgobV9iaXRzID4+IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAmIGJvdHRvbTNCaXRzKTsgfQorICAg
IE9ic2VydmVkVHlwZSByaHNPYnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5
cGUoKG1fYml0cyA+PiByaHNPYnNlcnZlZFR5cGVTaGlmdCkgJiBib3R0b20zQml0cyk7IH0KKyAg
ICB2b2lkIHNldExoc09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlwZSkKKyAgICB7CisgICAg
ICAgIHVpbnQzMl90IGJpdHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0gY2xlYXJMaHNPYnNl
cnZlZFR5cGVCaXRzOworICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8IGxoc09ic2VydmVk
VHlwZVNoaWZ0OworICAgICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBBU1NFUlQobGhzT2Jz
ZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7CisgICAgfQorCisgICAgdm9pZCBzZXRSaHNPYnNlcnZlZFR5
cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAgeyAKKyAgICAgICAgdWludDMyX3QgYml0cyA9IG1f
Yml0czsKKyAgICAgICAgYml0cyAmPSBjbGVhclJoc09ic2VydmVkVHlwZUJpdHM7CisgICAgICAg
IGJpdHMgfD0gdHlwZS5iaXRzKCkgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAgIG1f
Yml0cyA9IGJpdHM7CisgICAgICAgIEFTU0VSVChyaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsK
KyAgICB9CisKKyAgICBib29sIHRvb2tTcGVjaWFsRmFzdFBhdGgoKSBjb25zdCB7IHJldHVybiBt
X2JpdHMgJiBzcGVjaWFsRmFzdFBhdGhCaXQ7IH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbklu
dDMyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0Rv
dWJsZSB8IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7
IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAg
IGJvb2wgZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgp
IGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9i
c2VydmVOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAg
ICBib29sIGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJ
bnQzMk92ZXJmbG93KTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2Vy
dmVkTm9uTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAg
dm9pZCBzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsg
fQorICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9
CisgICAgdm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJm
bG93KTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50
NTJPdmVyZmxvdyk7IH0KKworICAgIHZvaWQqIGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9i
aXRzOyB9CisKKyAgICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCisgICAg
eworICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9IEludDMy
T3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3Vi
bGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRzIHw9IE5v
bk51bWJlcjsKKyAgICB9CisKKyAgICB2b2lkIGxoc1Nhd0ludDMyKCkgeyBzZXRMaHNPYnNlcnZl
ZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCBsaHNTYXdO
dW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVy
KCkpOyB9CisgICAgdm9pZCBsaHNTYXdOb25OdW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShs
aHNPYnNlcnZlZFR5cGUoKS53aXRoTm9uTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNTYXdJbnQz
MigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpKTsg
fQorICAgIHZvaWQgcmhzU2F3TnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2
ZWRUeXBlKCkud2l0aE51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3Tm9uTnVtYmVyKCkgeyBz
ZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigpKTsgfQor
CisgICAgdm9pZCBvYnNlcnZlTEhTQW5kUkhTKEpTVmFsdWUgbGhzLCBKU1ZhbHVlIHJocykKKyAg
ICB7CisgICAgICAgIEFyaXRoUHJvZmlsZSBuZXdQcm9maWxlID0gKnRoaXM7CisgICAgICAgIGlm
IChsaHMuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgaWYgKGxocy5pc0ludDMyKCkpCisgICAg
ICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNTYXdJbnQzMigpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNTYXdOb25OdW1iZXIoKTsKKworICAgICAgICBp
ZiAocmhzLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChyaHMuaXNJbnQzMigpKQorICAg
ICAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBuZXdQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAg
bV9iaXRzID0gbmV3UHJvZmlsZS5iaXRzKCk7CisgICAgfQorCisjaWYgRU5BQkxFKEpJVCkgICAg
CisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJv
RG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBTZXRz
IE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRlY3RO
dW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9
IEhhdmVUYWdSZWdpc3RlcnMpOworICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIGJv
b2wgc2hvdWxkRW1pdFNldERvdWJsZSgpIGNvbnN0OworICAgIHZvaWQgZW1pdFNldERvdWJsZShD
Q2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAgICB2b2lkIGVt
aXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CisgICAgYm9vbCBzaG91bGRFbWl0U2V0Tm9u
TnVtYmVyKCkgY29uc3Q7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworICAgIHVpbnQzMl90IGJp
dHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0Jp
dHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIG1hc2s7IH0KKyAgICB2b2lkIHNl
dEJpdChpbnQgbWFzaykgeyBtX2JpdHMgfD0gbWFzazsgfQorCisgICAgdWludDMyX3QgbV9iaXRz
IHsgMCB9OyAvLyBXZSB0YWtlIGNhcmUgdG8gdXBkYXRlIG1fYml0cyBvbmx5IGluIGEgc2luZ2xl
IG9wZXJhdGlvbi4gV2UgZG9uJ3QgZXZlciBzdG9yZSBhbiBpbmNvbnNpc3RlbnQgYml0IHJlcHJl
c2VudGF0aW9uIHRvIGl0LgorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBX
VEYgeworCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6OkFyaXRo
UHJvZmlsZSYpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xv
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRl
Y29kZVVzZURlZi5oIgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgIklubGluZUNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVk
ZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtNzY3LDcgKzc2
OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKFByaW4KICAgICBvdXQu
cHJpbnQobmFtZSwgcHJvZmlsZS0+bV9jb3VudGVyKTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6OmR1
bXBSZXN1bHRQcm9maWxlKFByaW50U3RyZWFtJiBvdXQsIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUs
IGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFyaXRoUHJv
ZmlsZShQcmludFN0cmVhbSYgb3V0LCBBcml0aFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wmIGhhc1By
aW50ZWRQcm9maWxpbmcpCiB7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICByZXR1cm47CkBA
IC0xNzY3LDcgKzE3NjksNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgIGR1
bXBSYXJlQ2FzZVByb2ZpbGUob3V0LCAicmFyZSBjYXNlOiAiLCByYXJlQ2FzZVByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChsb2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHsKICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgZHVtcFJl
c3VsdFByb2ZpbGUob3V0LCByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBs
b2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgICAgICBkdW1wQXJpdGhQcm9maWxl
KG91dCwgYXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVk
UHJvZmlsaW5nKTsKICAgICB9CiAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC0zMDAwLDYg
KzMwMDIsMTIgQEAgU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZgogICAg
IHJldHVybiBtX3N0dWJJbmZvcy5hZGQoYWNjZXNzVHlwZSk7CiB9CiAKK0pJVEFkZElDKiBDb2Rl
QmxvY2s6OmFkZEpJVEFkZElDKCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlciht
X2xvY2spOworICAgIHJldHVybiBtX2FkZElDcy5hZGQoKTsKK30KKwogU3RydWN0dXJlU3R1Yklu
Zm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKICAg
ICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IG1fc3R1YkluZm9zKSB7CkBAIC0z
MDQ2LDExICszMDU0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OnJlc2V0SklURGF0YSgpCiAgICAgLy8g
V2UgY2FuIGNsZWFyIHRoaXMgYmVjYXVzZSB0aGUgREZHJ3MgcXVlcmllcyB0byB0aGVzZSBkYXRh
IHN0cnVjdHVyZXMgYXJlIGd1YXJkZWQgYnkgd2hldGhlcgogICAgIC8vIHRoZXJlIGlzIEpJVCBj
b2RlLgogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5jbGVhcigpOwotICAgIAotICAgIC8vIFdlIGNh
biBjbGVhciB0aGVzZSBiZWNhdXNlIHRoZSBERkcgb25seSBhY2Nlc3NlcyBtZW1iZXJzIG9mIHRo
aXMgZGF0YSBzdHJ1Y3R1cmUgd2hlbgotICAgIC8vIGhvbGRpbmcgdGhlIGxvY2sgb3IgYWZ0ZXIg
cXVlcnlpbmcgd2hldGhlciB3ZSBoYXZlIEpJVCBjb2RlLgotICAgIG1fcmVzdWx0UHJvZmlsZXMu
Y2xlYXIoKTsKLSAgICBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAgPSBu
dWxscHRyOwogfQogI2VuZGlmCiAKQEAgLTMyODAsNyArMzI4Myw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpzaHJpbmtUb0ZpdChTaHJpbmtNb2RlIHMKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tl
cihtX2xvY2spOwogCiAgICAgbV9yYXJlQ2FzZVByb2ZpbGVzLnNocmlua1RvRml0KCk7Ci0gICAg
bV9yZXN1bHRQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwogICAgIAogICAgIGlmIChzaHJpbmtNb2Rl
ID09IEVhcmx5U2hyaW5rKSB7CiAgICAgICAgIG1fY29uc3RhbnRSZWdpc3RlcnMuc2hyaW5rVG9G
aXQoKTsKQEAgLTQxNTYsMTEgKzQxNTgsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVlUHJv
ZmlsZXMoKQogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHByb2ZpbGUgPSByYXJlQ2FzZVByb2Zp
bGUoaSk7CiAgICAgICAgIGRhdGFMb2dGKCIgICBiYyA9ICVkOiAldVxuIiwgcHJvZmlsZS0+bV9i
eXRlY29kZU9mZnNldCwgcHJvZmlsZS0+bV9jb3VudGVyKTsKICAgICB9Ci0gICAgZGF0YUxvZygi
UmVzdWx0UHJvZmlsZSBmb3IgIiwgKnRoaXMsICI6XG4iKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpOyArK2kpIHsKLSAgICAgICAgY29uc3Qg
UmVzdWx0UHJvZmlsZSYgcHJvZmlsZSA9ICpyZXN1bHRQcm9maWxlKGkpOwotICAgICAgICBkYXRh
TG9nKCIgICBiYyA9ICIsIHByb2ZpbGUuYnl0ZWNvZGVPZmZzZXQoKSwgIjogIiwgcHJvZmlsZSwg
IlxuIik7Ci0gICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShWRVJCT1NFX1ZBTFVFX1BST0ZJTEUp
CiAKQEAgLTQzNjMsNTYgKzQzNjAsNTYgQEAgdW5zaWduZWQgQ29kZUJsb2NrOjpyYXJlQ2FzZVBy
b2ZpbGVDb3VudAogICAgIHJldHVybiAwOwogfQogCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6
OnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgaW50IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlKiBDb2RlQmxvY2s6OmFyaXRoUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKIHsKLSAgICBpZiAoIW1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2Zp
bGVJbmRleE1hcC0+ZmluZChieXRlY29kZU9mZnNldCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1f
Ynl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZW5kKCkpCisgICAgYXV0byBv
cGNvZGVJRCA9IHZtKCktPmludGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVti
eXRlY29kZU9mZnNldF0udS5vcGNvZGUpOworICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKKyAgICBj
YXNlIG9wX2JpdG9yOgorICAgIGNhc2Ugb3BfYml0YW5kOgorICAgIGNhc2Ugb3BfYml0eG9yOgor
ICAgIGNhc2Ugb3BfYWRkOgorICAgIGNhc2Ugb3BfbXVsOgorICAgIGNhc2Ugb3Bfc3ViOgorICAg
IGNhc2Ugb3BfZGl2OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVl
XTsKLX0KKyAgICB9CiAKLXVuc2lnbmVkIENvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmls
ZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIENvbmN1
cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIHNwZWNpYWxGYXN0Q2Fz
ZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwor
ICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9ICZpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9m
ZnNldCArIDRdOworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxlKj4oJmluc3Ry
dWN0aW9uLT51Lm9wZXJhbmQpOwogfQogCi11bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0
Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImIGxvY2tlciwgaW50IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlJiBDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvclBDKEluc3RydWN0aW9uKiBwYykKIHsKLSAgICBSZXN1bHRQcm9maWxl
KiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNv
ZGVPZmZzZXQpOwotICAgIGlmICghcHJvZmlsZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIHByb2ZpbGUtPnNwZWNpYWxGYXN0UGF0aENvdW50KCk7CisgICAgaWYgKCFBU1NFUlRfRElT
QUJMRUQpIHsKKyAgICAgICAgQVNTRVJUKHBjID49IGluc3RydWN0aW9ucygpLmJlZ2luKCkgJiYg
cGMgPCBpbnN0cnVjdGlvbnMoKS5lbmQoKSk7CisgICAgICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgp
LT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpOworICAgICAgICBzd2l0
Y2ggKG9wY29kZUlEKSB7CisgICAgICAgIGNhc2Ugb3BfYml0b3I6CisgICAgICAgIGNhc2Ugb3Bf
Yml0YW5kOgorICAgICAgICBjYXNlIG9wX2JpdHhvcjoKKyAgICAgICAgY2FzZSBvcF9hZGQ6Cisg
ICAgICAgIGNhc2Ugb3BfbXVsOgorICAgICAgICBjYXNlIG9wX3N1YjoKKyAgICAgICAgY2FzZSBv
cF9kaXY6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICpi
aXR3aXNlX2Nhc3Q8QXJpdGhQcm9maWxlKj4oJnBjWzRdLnUub3BlcmFuZCk7CiB9CiAKIGJvb2wg
Q29kZUJsb2NrOjpjb3VsZFRha2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KQog
ewogICAgIGlmICghaGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZUNvdW50ID0gc3BlY2lhbEZhc3RDYXNl
UHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIHJldHVy
biBzcGVjaWFsRmFzdENhc2VDb3VudCA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmlt
dW1Db3VudCgpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJlc3VsdFBy
b2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KQotewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIGVuc3VyZVJlc3VsdFByb2ZpbGUobG9ja2VyLCBieXRl
Y29kZU9mZnNldCk7Ci19Ci0KLVJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6ZW5zdXJlUmVzdWx0
UHJvZmlsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9m
ZnNldCkKLXsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmICghcHJvZmlsZSkg
ewotICAgICAgICBtX3Jlc3VsdFByb2ZpbGVzLmFwcGVuZChSZXN1bHRQcm9maWxlKGJ5dGVjb2Rl
T2Zmc2V0KSk7Ci0gICAgICAgIHByb2ZpbGUgPSAmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCk7Ci0g
ICAgICAgIEFTU0VSVCgmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCkgPT0gJm1fcmVzdWx0UHJvZmls
ZXNbbV9yZXN1bHRQcm9maWxlcy5zaXplKCkgLSAxXSk7Ci0gICAgICAgIGlmICghbV9ieXRlY29k
ZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwKQotICAgICAgICAgICAgbV9ieXRlY29kZU9m
ZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwID0gc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZU9m
ZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwPigpOwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0
VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmFkZChieXRlY29kZU9mZnNldCwgbV9yZXN1bHRQcm9m
aWxlcy5zaXplKCkgLSAxKTsKLSAgICB9Ci0gICAgcmV0dXJuIHByb2ZpbGU7CisgICAgQXJpdGhQ
cm9maWxlKiBwcm9maWxlID0gYXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVP
ZmZzZXQpOworICAgIGlmICghcHJvZmlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBwcm9maWxlLT50b29rU3BlY2lhbEZhc3RQYXRoKCk7CiB9CiAKICNpZiBFTkFCTEUoSklU
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2
aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSGFuZGxlcklu
Zm8uaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKKyNp
bmNsdWRlICJKSVRNYXRoSUNGb3J3YXJkcy5oIgogI2luY2x1ZGUgIkpJVFdyaXRlQmFycmllci5o
IgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkBAIC03
OSw2ICs4MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOworY2xhc3Mg
SklUQWRkR2VuZXJhdG9yOwogY2xhc3MgSlNNb2R1bGVFbnZpcm9ubWVudDsKIGNsYXNzIExMSW50
T2Zmc2V0c0V4dHJhY3RvcjsKIGNsYXNzIFBDVG9Db2RlT3JpZ2luTWFwOwpAQCAtODgsNiArOTAs
OCBAQCBjbGFzcyBUeXBlTG9jYXRpb247CiAKIGVudW0gY2xhc3MgQWNjZXNzVHlwZSA6IGludDhf
dDsKIAorc3RydWN0IEFyaXRoUHJvZmlsZTsKKwogdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4s
IFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9N
YXA7CiAKIGVudW0gUmVvcHRpbWl6YXRpb25Nb2RlIHsgRG9udENvdW50UmVvcHRpbWl6YXRpb24s
IENvdW50UmVvcHRpbWl6YXRpb24gfTsKQEAgLTI0NSw2ICsyNDksNyBAQCBwdWJsaWM6CiAgICAg
CiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNj
ZXNzVHlwZSk7CisgICAgSklUQWRkSUMqIGFkZEpJVEFkZElDKCk7CiAgICAgQmFnPFN0cnVjdHVy
ZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1YkluZm9CZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9z
LmJlZ2luKCk7IH0KICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBzdHViSW5m
b0VuZCgpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmVuZCgpOyB9CiAgICAgCkBAIC00NDAsMTMgKzQ0
NSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlID49IE9wdGlvbnM6OmNvdWxkVGFr
ZVNsb3dDYXNlTWluaW11bUNvdW50KCk7CiAgICAgfQogCi0gICAgUmVzdWx0UHJvZmlsZSogZW5z
dXJlUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIFJlc3VsdFByb2ZpbGUq
IGVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRl
Y29kZU9mZnNldCk7Ci0gICAgdW5zaWduZWQgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpIHsgcmV0
dXJuIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpOyB9Ci0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQg
Ynl0ZWNvZGVPZmZzZXQpOwotCi0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNv
dW50Rm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRl
Y29kZU9mZnNldCk7Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9y
Qnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUqIGFy
aXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CisgICAgQXJp
dGhQcm9maWxlJiBhcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiopOwogCiAgICAgYm9vbCBj
b3VsZFRha2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKIApAQCAtOTU3LDcg
Kzk1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxpbmcoUHJpbnRTdHJl
YW0mLCBjb25zdCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAg
ICB2b2lkIGR1bXBBcnJheVByb2ZpbGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3RydWN0aW9u
KiYsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHZvaWQgZHVtcFJhcmVDYXNlUHJv
ZmlsZShQcmludFN0cmVhbSYsIGNvbnN0IGNoYXIqIG5hbWUsIFJhcmVDYXNlUHJvZmlsZSosIGJv
b2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwotICAgIHZvaWQgZHVtcFJlc3VsdFByb2ZpbGUoUHJp
bnRTdHJlYW0mLCBSZXN1bHRQcm9maWxlKiwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7Cisg
ICAgdm9pZCBkdW1wQXJpdGhQcm9maWxlKFByaW50U3RyZWFtJiwgQXJpdGhQcm9maWxlKiwgYm9v
bCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAKICAgICBib29sIHNob3VsZFZpc2l0U3Ryb25nbHko
KTsKICAgICBib29sIHNob3VsZEpldHRpc29uRHVlVG9XZWFrUmVmZXJlbmNlKCk7CkBAIC0xMDEz
LDYgKzEwMTMsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlZ2lzdGVyQXRPZmZzZXRMaXN0PiBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgQmFn
PFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0dWJJbmZvczsKKyAgICBCYWc8SklUQWRkSUM+IG1fYWRk
SUNzOwogICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJ
bmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5m
bywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwpA
QCAtMTAyOSw5ICsxMDMwLDYgQEAgcHJpdmF0ZToKICAgICBSZWZDb3VudGVkQXJyYXk8VmFsdWVQ
cm9maWxlPiBtX2FyZ3VtZW50VmFsdWVQcm9maWxlczsKICAgICBSZWZDb3VudGVkQXJyYXk8VmFs
dWVQcm9maWxlPiBtX3ZhbHVlUHJvZmlsZXM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFJhcmVDYXNl
UHJvZmlsZSwgOD4gbV9yYXJlQ2FzZVByb2ZpbGVzOwotICAgIFNlZ21lbnRlZFZlY3RvcjxSZXN1
bHRQcm9maWxlLCA4PiBtX3Jlc3VsdFByb2ZpbGVzOwotICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNp
Z25lZCwgdW5zaWduZWQsIEludEhhc2g8dW5zaWduZWQ+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9L
ZXlIYXNoVHJhaXRzPHVuc2lnbmVkPj4gQnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRl
eE1hcDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJ
bmRleE1hcD4gbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwOwogICAgIFJl
ZkNvdW50ZWRBcnJheTxBcnJheUFsbG9jYXRpb25Qcm9maWxlPiBtX2FycmF5QWxsb2NhdGlvblBy
b2ZpbGVzOwogICAgIEFycmF5UHJvZmlsZVZlY3RvciBtX2FycmF5UHJvZmlsZXM7CiAgICAgUmVm
Q291bnRlZEFycmF5PE9iamVjdEFsbG9jYXRpb25Qcm9maWxlPiBtX29iamVjdEFsbG9jYXRpb25Q
cm9maWxlczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIw
MzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCkBAIC02NSw4ICs2Niw4IEBAIHZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZTo6ZW1pdFIKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBSZXN1
bHRQcm9maWxlUmVhZHk6IHsKLSAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0ZWN0TnVt
ZXJpY25lc3Moaml0LCByZWdzLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgIGNhc2UgQXJp
dGhQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5hcml0aFByb2ZpbGUtPmVtaXREZXRlY3ROdW1l
cmljbmVzcyhqaXQsIHJlZ3MsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9N
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkocmV2aXNp
b24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNz
IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5Owotc3RydWN0IFJlc3VsdFByb2ZpbGU7CitzdHJ1
Y3QgQXJpdGhQcm9maWxlOwogc3RydWN0IFZhbHVlUHJvZmlsZTsKIAogY2xhc3MgTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZSB7CkBAIC01OSwxMSArNTksMTEgQEAgcHVibGljOgogICAgICAg
ICAgICAgbV9raW5kID0gTm9uZTsKICAgICB9CiAgICAgCi0gICAgTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZShSZXN1bHRQcm9maWxlKiBwcm9maWxlKQorICAgIE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUoQXJpdGhQcm9maWxlKiBwcm9maWxlKQogICAgIHsKICAgICAgICAgaWYgKHBy
b2ZpbGUpIHsKLSAgICAgICAgICAgIG1fa2luZCA9IFJlc3VsdFByb2ZpbGVSZWFkeTsKLSAgICAg
ICAgICAgIHUucmVzdWx0UHJvZmlsZSA9IHByb2ZpbGU7CisgICAgICAgICAgICBtX2tpbmQgPSBB
cml0aFByb2ZpbGVSZWFkeTsKKyAgICAgICAgICAgIHUuYXJpdGhQcm9maWxlID0gcHJvZmlsZTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2tpbmQgPSBOb25lOwogICAgIH0KQEAgLTc5
LDE0ICs3OSwxNCBAQCBwcml2YXRlOgogICAgIGVudW0gS2luZCB7CiAgICAgICAgIE5vbmUsCiAg
ICAgICAgIFJlYWR5LAotICAgICAgICBSZXN1bHRQcm9maWxlUmVhZHksCisgICAgICAgIEFyaXRo
UHJvZmlsZVJlYWR5LAogICAgICAgICBMYXp5T3BlcmFuZAogICAgIH07CiAgICAgCiAgICAgS2lu
ZCBtX2tpbmQ7CiAgICAgdW5pb24gewogICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGU7Ci0g
ICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGU7CisgICAgICAgIEFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNzAgKzMxLDQgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNpZiBFTkFCTEUoSklUKQotdm9pZCBSZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0
TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lz
dGVyc01vZGUgbW9kZSkKLXsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5i
cmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3Vi
bGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOwotICAg
IC8vIEZJWE1FOiBXZSBjb3VsZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KLSAgICBlbWl0U2V0RG91
YmxlKGppdCk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwotICAg
IG5vdERvdWJsZS5saW5rKCZqaXQpOwotICAgIGVtaXRTZXROb25OdW1iZXIoaml0KTsKLSAgICBk
b25lLmxpbmsoJmppdCk7Ci0gICAgaXNJbnQzMi5saW5rKCZqaXQpOwotfQotCi12b2lkIFJlc3Vs
dFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9y
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50MzJPdmVyZmxv
dyB8IFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpOZWdaZXJv
RG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLQotdm9pZCBSZXN1bHRQcm9m
aWxlOjplbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYgaml0KQotewotICAgIGppdC5vcjMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51bWJlciksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLSNlbmRp
ZiAvLyBFTkFCTEUoSklUKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKLQotbmFtZXNwYWNlIFdURiB7
Ci0gICAgCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgUmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkKLXsKLSAgICBjb25zdCBj
aGFyKiBzZXBhcmF0b3IgPSAiIjsKLQotICAgIGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50
MzIoKSkgewotICAgICAgICBvdXQucHJpbnQoIkludDMyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVy
b0RvdWJsZSgpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0Rv
dWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgICAg
IG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0g
InwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIo
KSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsKLSAgICAgICAgICAgIHNl
cGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZl
SW50MzJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ci
KTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJp
bnQoIkludDUyT3ZlcmZsb3ciKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAg
ICAgfQotICAgIH0KLSAgICBpZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsKLSAgICAgICAgb3V0LnBy
aW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSk7Ci0gICAgfQotfQotCi19IC8vIG5h
bWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDg4ICsyMDksNiBA
QCBpbmxpbmUgaW50IGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2ZmCiAgICAgcmV0dXJuIHJh
cmVDYXNlUHJvZmlsZS0+bV9ieXRlY29kZU9mZnNldDsKIH0KIAotc3RydWN0IFJlc3VsdFByb2Zp
bGUgewotcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgaW50IG51bWJlck9mRmxhZ0JpdHMgPSA1
OwotCi1wdWJsaWM6Ci0gICAgUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNvZGVPZmZzZXQpCi0gICAg
ICAgIDogbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9m
RmxhZ0JpdHMpCi0gICAgewotICAgICAgICBBU1NFUlQoKChieXRlY29kZU9mZnNldCA8PCBudW1i
ZXJPZkZsYWdCaXRzKSA+PiBudW1iZXJPZkZsYWdCaXRzKSA9PSBieXRlY29kZU9mZnNldCk7Ci0g
ICAgfQotCi0gICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgewotICAgICAgICBOb25OZWdaZXJvRG91
YmxlID0gMSA8PCAwLAotICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAotICAgICAg
ICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0g
MSA8PCAzLAotICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAotICAgIH07Ci0KLSAg
ICBpbnQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgPj4gbnVtYmVyT2ZGbGFnQml0czsgfQotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0
aENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotCi0gICAg
Ym9vbCBkaWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1pl
cm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2Jz
ZXJ2ZURvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5l
Z1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNv
bnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAgICBib29sIGRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91Ymxl
KTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZl
SW50NTJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0K
LQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVn
WmVyb0RvdWJsZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0
Qml0KE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsg
c2V0Qml0KE5vbk51bWJlcik7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygp
IHsgc2V0Qml0KEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZEludDUyT3Zl
cmZsb3coKSB7IHNldEJpdChJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9pZCogYWRkcmVzc09m
RmxhZ3MoKSB7IHJldHVybiAmbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzOyB9Ci0gICAgdm9pZCog
YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQoKSB7IHJldHVybiAmbV9zcGVjaWFsRmFzdFBh
dGhDb3VudDsgfQotICAgIAotICAgIHZvaWQgZGV0ZWN0TnVtZXJpY25lc3MoSlNWYWx1ZSB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICBtX2J5dGVj
b2RlT2Zmc2V0QW5kRmxhZ3MgfD0gSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0gTm9uTnVtYmVyOwotICAg
IH0KLQotI2lmIEVOQUJMRShKSVQpICAgIAotICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpIGlmIGl0IHNl
ZXMgYQotICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBhIG5vbi1udW1i
ZXIuCi0gICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1
ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAKLSAgICAv
LyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlKS4KLSAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7
Ci0gICAgCi0gICAgLy8gU2V0cyBOb25OdW1iZXIuCi0gICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVy
KENDYWxsSGVscGVycyYpOwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCi0KLXByaXZhdGU6Ci0gICAg
Ym9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgJiBtYXNrOyB9Ci0gICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9ieXRlY29kZU9m
ZnNldEFuZEZsYWdzIHw9IG1hc2s7IH0KLQotICAgIGludCBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxh
Z3M7Ci0gICAgdW5zaWduZWQgbV9zcGVjaWFsRmFzdFBhdGhDb3VudCB7IDAgfTsKLX07Ci0KLWlu
bGluZSBpbnQgZ2V0UmVzdWx0UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KFJlc3VsdFByb2ZpbGUqIHBy
b2ZpbGUpCi17Ci0gICAgcmV0dXJuIHByb2ZpbGUtPmJ5dGVjb2RlT2Zmc2V0KCk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiwgY29uc3QgSlNDOjpSZXN1bHRQcm9maWxlJik7Ci0KLX0gLy8gbmFtZXNw
YWNlIFdURgotCiAjZW5kaWYgLy8gVmFsdWVQcm9maWxlX2gKLQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKIAor
I2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5o
IgogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5oIgogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCkBAIC0xNTk4LDcgKzE1OTksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEJpbmFyCiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfYml0b3IgfHwgb3Bjb2Rl
SUQgPT0gb3BfYml0YW5kIHx8IG9wY29kZUlEID09IG9wX2JpdHhvciB8fAogICAgICAgICBvcGNv
ZGVJRCA9PSBvcF9hZGQgfHwgb3Bjb2RlSUQgPT0gb3BfbXVsIHx8IG9wY29kZUlEID09IG9wX3N1
YiB8fCBvcGNvZGVJRCA9PSBvcF9kaXYpCi0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0
eXBlcy50b0ludCgpKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKEFyaXRoUHJvZmls
ZSh0eXBlcy5maXJzdCgpLCB0eXBlcy5zZWNvbmQoKSkuYml0cygpKTsKIAogICAgIHJldHVybiBk
c3Q7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5o
IgogI2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkBAIC05MTAsMjkgKzkxMSwyOCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKICAgICAgICAgewotICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJs
b2NrLT5tX2xvY2spOwotICAgICAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KGxvY2tlciwgbV9jdXJyZW50SW5kZXgpOwotICAgICAgICAgICAgaWYgKHJlc3Vs
dFByb2ZpbGUpIHsKKyAgICAgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbV9p
bmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5hcml0aFByb2ZpbGVGb3JCeXRlY29kZU9m
ZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlKSB7CiAg
ICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBBcml0aEFkZDoKICAgICAgICAgICAgICAgICBjYXNlIEFyaXRoU3ViOgogICAgICAgICAgICAg
ICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2Zp
bGUtPmRpZE9ic2VydmVEb3VibGUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAg
ICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgY2FzZSBBcml0aE11bDogewotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50NTIpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDMyT3ZlcmZs
b3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2Zp
bGUtPmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFz
ZWxpbmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2
ZU5lZ1plcm9Eb3VibGUoKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4
aXRTaXRlKG1fY3VycmVudEluZGV4LCBOZWdhdGl2ZVplcm8pKQorICAgICAgICAgICAgICAgICAg
ICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5l
U3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0
aXZlWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlOZWdaZXJvSW5CYXNlbGluZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9m
aWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFBy
b2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUt
Pm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOwotICAgICAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVz
dWx0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMzM1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTQ4LDkgKzE1NDgsOCBAQCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBo
OjptZXRoCiAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOwogICAg
ICAgICAKICAgICAgICAgewotICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
cHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKICAgICAgICAgICAgIGlmIChwcm9maWxlZEJsb2NrLT5o
YXNCYXNlbGluZUpJVFByb2ZpbGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9m
ZnNldChsb2NrZXIsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKKyAgICAg
ICAgICAgICAgICBpZiAoQXJpdGhQcm9maWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5hcml0
aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJ
bmRleCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGls
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA0LDcgKzYwNCw3IEBAIHZv
aWQgSklUQ29tcGlsZXI6OmV4Y2VwdGlvbkNoZWNrKCkKICAgICBIYW5kbGVySW5mbyogZXhjZXB0
aW9uSGFuZGxlcjsKICAgICBib29sIHdpbGxDYXRjaEV4Y2VwdGlvbiA9IG1fZ3JhcGgud2lsbENh
dGNoRXhjZXB0aW9uSW5NYWNoaW5lRnJhbWUobV9zcGVjdWxhdGl2ZS0+bV9jdXJyZW50Tm9kZS0+
b3JpZ2luLmZvckV4aXQsIG9wQ2F0Y2hPcmlnaW4sIGV4Y2VwdGlvbkhhbmRsZXIpOyAKICAgICBp
ZiAod2lsbENhdGNoRXhjZXB0aW9uKSB7Ci0gICAgICAgIHVuc2lnbmVkIHN0cmVhbUluZGV4ID0g
bV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCAhPSBVSU5UX01BWCA/IG1fc3Bl
Y3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggOiBtX3NwZWN1bGF0aXZlLT5tX3N0cmVh
bS0+c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzdHJlYW1JbmRleCA9IG1fc3BlY3VsYXRpdmUt
Pm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPyAqbV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJl
YW1JbmRleCA6IG1fc3BlY3VsYXRpdmUtPm1fc3RyZWFtLT5zaXplKCk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGhhZEV4Y2VwdGlvbiA9IGVtaXROb25QYXRjaGFibGVFeGNlcHRpb25D
aGVjaygpOwogICAgICAgICAvLyBXZSBhc3N1bWUgaGVyZSB0aGF0IHRoaXMgaXMgY2FsbGVkIGFm
dGVyIGNhbGxPcGVhcnRpb24oKS9hcHBlbmRDYWxsKCkgaXMgY2FsbGVkLgogICAgICAgICBhcHBl
bmRFeGNlcHRpb25IYW5kbGluZ09TUkV4aXQoRXhjZXB0aW9uQ2hlY2ssIHN0cmVhbUluZGV4LCBv
cENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyLCBtX2ppdENvZGUtPmNvbW1vbi5sYXN0Q2Fs
bFNpdGUoKSwgaGFkRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2xvd1BhdGhHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+bV9vdXRPZkxpbmVTdHJl
YW1JbmRleCA9IG1fc3RyZWFtSW5kZXg7CiAgICAgICAgIGppdC0+bV9vcmlnaW4gPSBtX29yaWdp
bjsKICAgICAgICAgZ2VuZXJhdGVJbnRlcm5hbChqaXQpOwotICAgICAgICBqaXQtPm1fb3V0T2ZM
aW5lU3RyZWFtSW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgaml0LT5tX291dE9mTGluZVN0cmVh
bUluZGV4ID0gTnVsbG9wdDsKICAgICAgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpCiAgICAgICAg
ICAgICBqaXQtPm1faml0LmFib3J0V2l0aFJlYXNvbihERkdTbG93UGF0aEdlbmVyYXRvckZlbGxU
aHJvdWdoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJKSVRCaXRYb3JHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRE
aXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRMZWZ0U2hpZnRHZW5lcmF0b3IuaCIKKyNpbmNs
dWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRNdWxHZW5lcmF0b3IuaCIKICNpbmNsdWRl
ICJKSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgi
CkBAIC01Niw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSAiU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyQnVm
ZmVyLmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTM2Miw3ICszNjQsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvCiAKIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmFkZFNsb3dQYXRoR2VuZXJhdG9yKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBsYW1iZGEp
CiB7Ci0gICAgbV9zbG93UGF0aExhbWJkYXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGxhbWJkYSwg
bV9jdXJyZW50Tm9kZSkpOworICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVuZChTbG93UGF0aExh
bWJkYXsgbGFtYmRhLCBtX2N1cnJlbnROb2RlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zdHJl
YW0tPnNpemUoKSkgfSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2Vu
ZXJhdG9ycyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRl
cikKQEAgLTM3MSwxMSArMzczLDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRo
R2VuZXJhdG8KICAgICAgICAgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyLmFwcGVuZEl0ZW0obV9q
aXQubGFiZWwoKSwgc2xvd1BhdGhHZW5lcmF0b3ItPm9yaWdpbigpLnNlbWFudGljKTsKICAgICAg
ICAgc2xvd1BhdGhHZW5lcmF0b3ItPmdlbmVyYXRlKHRoaXMpOwogICAgIH0KLSAgICBmb3IgKGF1
dG8mIGdlbmVyYXRvclBhaXIgOiBtX3Nsb3dQYXRoTGFtYmRhcykgewotICAgICAgICBOb2RlKiBj
dXJyZW50Tm9kZSA9IGdlbmVyYXRvclBhaXIuc2Vjb25kOworICAgIGZvciAoYXV0byYgc2xvd1Bh
dGhMYW1iZGEgOiBtX3Nsb3dQYXRoTGFtYmRhcykgeworICAgICAgICBOb2RlKiBjdXJyZW50Tm9k
ZSA9IHNsb3dQYXRoTGFtYmRhLm1fY3VycmVudE5vZGU7CiAgICAgICAgIG1fY3VycmVudE5vZGUg
PSBjdXJyZW50Tm9kZTsKKyAgICAgICAgbV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9IHNsb3dQYXRo
TGFtYmRhLm1fc3RyZWFtSW5kZXg7CiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5h
cHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGN1cnJlbnROb2RlLT5vcmlnaW4uc2VtYW50aWMpOwot
ICAgICAgICBnZW5lcmF0b3JQYWlyLmZpcnN0KCk7CisgICAgICAgIHNsb3dQYXRoTGFtYmRhLm1f
Z2VuZXJhdG9yKCk7CisgICAgICAgIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBOdWxsb3B0Owog
ICAgIH0KIH0KIApAQCAtMzM3OSwzMSArMzM4Myw2NCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVBZGQoTm9kCiAgICAgICAgIHJpZ2h0UmVncyA9IHJpZ2h0LT5qc1ZhbHVlUmVn
cygpOwogICAgIH0KIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0
T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgbGVmdEZQ
UiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKG1faml0KTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2ppdC5jb2RlQmxvY2soKS0+
YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPiBhZGRJQ0dlbmVy
YXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+OjpjcmVhdGUoKTsKKyAgICBB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1faml0LmdyYXBoKCkuYmFzZWxpbmVDb2RlQmxv
Y2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZz
ZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgIGFkZElDLT5tX2dl
bmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1
bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRjaEdQ
Uiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKKworICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5l
ID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0aW9uU3RhdGUpOwor
CisgICAgaWYgKGdlbmVyYXRlZElubGluZSkgeworICAgICAgICBBU1NFUlQoIWFkZElDR2VuZXJh
dGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMuZW1wdHkoKSk7CisKKyAgICAgICAgVmVjdG9yPFNp
bGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDQ+IHNhdmVQbGFuczsKKyAgICAgICAgc2lsZW50U3BpbGxB
bGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHJlc3VsdFJlZ3MpOworCisgICAgICAg
IGF1dG8gZG9uZSA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0
b3IoWz1dICgpIHsKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRo
SnVtcHMubGluaygmbV9qaXQpOworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPm1f
c2xvd1BhdGhTdGFydCA9IG1faml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgIHNpbGVudFNwaWxs
KHNhdmVQbGFucyk7CisKKyAgICAgICAgICAgIGF1dG8gaW5uZXJMZWZ0UmVncyA9IGxlZnRSZWdz
OworICAgICAgICAgICAgYXV0byBpbm5lclJpZ2h0UmVncyA9IHJpZ2h0UmVnczsKKyAgICAgICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lckxl
ZnRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUobGVm
dENoaWxkLT5hc0pTVmFsdWUoKSwgaW5uZXJMZWZ0UmVncyk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgICAgICBpbm5lclJpZ2h0
UmVncyA9IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKHJpZ2h0
Q2hpbGQtPmFzSlNWYWx1ZSgpLCBpbm5lclJpZ2h0UmVncyk7CisgICAgICAgICAgICB9CiAKLSAg
ICBBU1NFUlQoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKTsKLSAgICBnZW4uZW5kSnVtcExpc3QoKS5h
cHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+bV9zaG91bGRTbG93UGF0aFJlcGF0Y2gpCisgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0
aW9uU3RhdGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZE9wdGltaXplLCByZXN1bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgYWRk
SUMpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0
YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJl
c3VsdFJlZ3MsIGlubmVyTGVmdFJlZ3MsIGlubmVyUmlnaHRSZWdzKTsKIAotICAgIGdlbi5zbG93
UGF0aEp1bXBMaXN0KCkubGluaygmbV9qaXQpOworICAgICAgICAgICAgc2lsZW50RmlsbChzYXZl
UGxhbnMpOworICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAg
IG1faml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJm1faml0KTsKIAotICAgIHNpbGVudFNwaWxsQWxs
UmVnaXN0ZXJzKHJlc3VsdFJlZ3MpOworICAgICAgICAgICAgbV9qaXQuYWRkTGlua1Rhc2soWz1d
IChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFs
aXplSW5saW5lQ29kZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChsZWZ0T3Bl
cmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAgICAgIGxlZnQgPSBKU1ZhbHVlT3BlcmFuZCh0aGlz
LCBsZWZ0Q2hpbGQpOworICAgICAgICAgICAgbGVmdFJlZ3MgPSBsZWZ0LT5qc1ZhbHVlUmVncygp
OworICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpIHsKKyAgICAgICAg
ICAgIHJpZ2h0ID0gSlNWYWx1ZU9wZXJhbmQodGhpcywgcmlnaHRDaGlsZCk7CisgICAgICAgICAg
ICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgfQogCi0gICAgaWYg
KGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkgewotICAgICAgICBsZWZ0UmVncyA9IHJlc3VsdFJlZ3M7
Ci0gICAgICAgIG1faml0Lm1vdmVWYWx1ZShsZWZ0Q2hpbGQtPmFzSlNWYWx1ZSgpLCBsZWZ0UmVn
cyk7Ci0gICAgfSBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7Ci0gICAgICAgIHJp
Z2h0UmVncyA9IHJlc3VsdFJlZ3M7Ci0gICAgICAgIG1faml0Lm1vdmVWYWx1ZShyaWdodENoaWxk
LT5hc0pTVmFsdWUoKSwgcmlnaHRSZWdzKTsKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJl
Z3MsIHJpZ2h0UmVncyk7CisgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgfQog
Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJl
Z3MsIHJpZ2h0UmVncyk7Ci0KLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OwotICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICBnZW4uZW5kSnVtcExpc3QoKS5s
aW5rKCZtX2ppdCk7CiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICBy
ZXR1cm47CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTM4OCwxMyArMzg4LDE1IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1Nw
aWxsLCBwbGFucywgSW52YWxpZEdQUlJlZywgSW52YWxpZEdQUlJlZywgZXhjbHVkZSk7CiAgICAg
fQotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlv
blR5cGU+CiAgICAgdm9pZCBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoYm9vbCBkb1NwaWxs
LCBDb2xsZWN0aW9uVHlwZSYgcGxhbnMsIEpTVmFsdWVSZWdzIGV4Y2x1ZGUpCiAgICAgeworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChk
b1NwaWxsLCBwbGFucywgZXhjbHVkZS50YWdHUFIoKSwgZXhjbHVkZS5wYXlsb2FkR1BSKCkpOwot
ICAgIH0KKyNlbHNlCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChkb1NwaWxs
LCBwbGFucywgZXhjbHVkZS5ncHIoKSk7CiAjZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhHUFJSZWcgZXhjbHVkZSwgR1BSUmVnIGV4Y2x1ZGUyID0g
SW52YWxpZEdQUlJlZywgRlBSUmVnIGZwckV4Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQogICAgIHsK
QEAgLTEyODUsNiArMTI4NywxMyBAQCBwdWJsaWM6CiAKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisK
KyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkph
aWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFs
dWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBUcnVzdGVkSW1t
UHRyKGFkZElDKSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlv
biwgcmVzdWx0LmdwcigpKTsKKyAgICB9CisKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiAgICAgewogICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3Rl
ZEltbVB0cih1aWQpKTsKQEAgLTE3MDIsNiArMTcxMSwxMiBAQCBwdWJsaWM6CiAgICAgfQogI2Vs
c2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSmFpYyBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3Vs
dCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgSklUQWRkSUMqIGFkZElDKQor
ICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJC
SVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxv
YWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCks
IHJlc3VsdC50YWdHUFIoKSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywg
R1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQs
IEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzJQYXlsb2FkLCBhcmcy
VGFnLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwpAQCAtMjgzMCw5ICsyODQ1LDE0IEBAIHB1YmxpYzoK
ICAgICBNaW5pZmllZEdyYXBoKiBtX21pbmlmaWVkR3JhcGg7CiAgICAgCiAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4sIDg+IG1fc2xvd1BhdGhHZW5lcmF0b3Jz
OwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBOb2RlKj4sIDg+
IG1fc2xvd1BhdGhMYW1iZGFzOworICAgIHN0cnVjdCBTbG93UGF0aExhbWJkYSB7CisgICAgICAg
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2dlbmVyYXRvcjsKKyAgICAgICAgTm9kZSogbV9jdXJy
ZW50Tm9kZTsKKyAgICAgICAgdW5zaWduZWQgbV9zdHJlYW1JbmRleDsKKyAgICB9OworICAgIFZl
Y3RvcjxTbG93UGF0aExhbWJkYT4gbV9zbG93UGF0aExhbWJkYXM7CiAgICAgVmVjdG9yPFNpbGVu
dFJlZ2lzdGVyU2F2ZVBsYW4+IG1fcGxhbnM7Ci0gICAgdW5zaWduZWQgbV9vdXRPZkxpbmVTdHJl
YW1JbmRleCB7IFVJTlRfTUFYIH07CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fb3V0T2ZMaW5l
U3RyZWFtSW5kZXg7CiB9OwogCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiAr
NTgsNyBAQAogI2luY2x1ZGUgIkpJVERpdkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmgiCisj
aW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklUTXVsR2VuZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSklUUmlnaHRTaGlmdEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRv
ci5oIgpAQCAtMTUyOCw3ICsxNTI5LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBp
bGVWYWx1ZUFkZCgpCiAgICAgewotICAgICAgICBlbWl0QmluYXJ5U25pcHBldDxKSVRBZGRHZW5l
cmF0b3I+KG9wZXJhdGlvblZhbHVlQWRkKTsKKyAgICAgICAgZW1pdEFkZFNuaXBwZXQoKTsKICAg
ICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlU3RyQ2F0KCkKQEAgLTgwNTgsNiArODA1OSw3NiBA
QCBwcml2YXRlOgogICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOwogICAgIH0KIAorICAg
IHZvaWQgZW1pdEFkZFNuaXBwZXQoKQorICAgIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9k
ZTsKKyAgICAgICAgCisgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShub2RlLT5jaGls
ZDEoKSk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQyKCkp
OworCisgICAgICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShu
b2RlLT5jaGlsZDEoKSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAgU25pcHBldE9wZXJhbmQgcmln
aHRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkucmVzdWx0VHlwZSgpKTsK
KyAgICAgICAgICAgIAorICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291
dC5wYXRjaHBvaW50KEludDY0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lz
dGVyKGxlZnQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIocmlnaHQp
OworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJl
ZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
KG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKSk7CisgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBl
eGNlcHRpb25IYW5kbGUgPQorICAgICAgICAgICAgcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRp
b25zKHBhdGNocG9pbnQpOworICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3Rl
cnMgPSAxOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSAyOwor
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMoKSk7CisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBw
YXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAg
ICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsK
KworICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25z
ID0KKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVh
dGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOworCisgICAgICAgICAgICAgICAgSklUQWRkSUMqIGFk
ZElDID0gaml0LmNvZGVCbG9jaygpLT5hZGRKSVRBZGRJQygpOworICAgICAgICAgICAgICAgIEJv
eDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+IGFkZElDR2VuZXJhdGlvblN0YXRlID0gQm94PE1hdGhJ
Q0dlbmVyYXRpb25TdGF0ZT46OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIEFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlID0gc3RhdGUtPmdyYXBoLmJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYyktPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9y
aWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBhZGRJQy0+bV9n
ZW5lcmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNW
YWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3MocGFyYW1zWzFdLmdwcigpKSwgSlNWYWx1ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwgcGFyYW1z
LmZwU2NyYXRjaCgwKSwKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2NyYXRjaCgxKSwg
cGFyYW1zLmdwU2NyYXRjaCgwKSwgSW52YWxpZEZQUlJlZywgYXJpdGhQcm9maWxlKTsKKworICAg
ICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lID0gYWRkSUMtPmdlbmVyYXRlSW5saW5l
KGppdCwgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKworICAgICAgICAgICAgICAgIGlmIChnZW5l
cmF0ZWRJbmxpbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFhZGRJQ0dlbmVyYXRp
b25TdGF0ZS0+bV9zbG93UGF0aEp1bXBzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgICAgICBh
dXRvIGRvbmUgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExh
dGVQYXRoKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoSnVtcHMu
bGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRl
LT5tX3Nsb3dQYXRoU3RhcnQgPSBqaXQubGFiZWwoKTsKKworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nob3VsZFNsb3dQYXRoUmVwYXRjaCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJh
dGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9y
aWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgcGFyYW1zWzBdLmdwcigpLCBwYXJh
bXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGFkZElDKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3Rh
dGUtPm1fc2xvd1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxs
ID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBq
aXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9uVmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwg
cGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGwuY2FsbCgp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaml0
Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGpp
dC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKCphZGRJQ0dlbmVyYXRp
b25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwg
cGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBleGNlcHRpb25zLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVmFs
dWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNldEpTVmFs
dWUocGF0Y2hwb2ludCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmluYXJ5Qml0
T3BHZW5lcmF0b3I+CiAgICAgdm9pZCBlbWl0QmluYXJ5Qml0T3BTbmlwcGV0KEpfSklUT3BlcmF0
aW9uX0VKSiBzbG93UGF0aEZ1bmN0aW9uKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtODI2LDYgKzgy
NiwxOCBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsKICAgICB9CiAK
KyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVzdGVkSW1t
UHRyIGFyZzUsIFRydXN0ZWRJbW1QdHIgYXJnNikKKyAgICB7CisgICAgICAgIHJlc2V0Q2FsbEFy
Z3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmcyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnNCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc1KTsKKyAg
ICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzYpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
LCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1LCBHUFJSZWcgYXJnNiwgVHJ1
c3RlZEltbVB0ciBhcmc3KQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CkBA
IC0xNTk0LDYgKzE2MDYsMTQgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIs
IEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1LCBUcnVzdGVkSW1t
UHRyIGFyZzYpCisgICAgeworICAgICAgICBwb2tlKGFyZzYsIFBPS0VfQVJHVU1FTlRfT0ZGU0VU
ICsgMik7CisgICAgICAgIHBva2UoYXJnNSwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAxKTsKKyAg
ICAgICAgcG9rZShhcmc0LCBQT0tFX0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVzdGVkSW1tUHRyIGFyZzUp
CiAgICAgewogICAgICAgICBwb2tlKGFyZzUsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMSk7CkBA
IC0yMDk5LDYgKzIxMTksMTQgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7
CisgICAgICAgIHNldHVwVHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjI+KGFyZzEsIGFyZzIpOworICAgICAgICBtb3ZlKGFyZzMsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJndW1lbnRH
UFI0KTsKKyAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0
ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICBz
ZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJnNSk7CkBAIC0y
MjA3LDYgKzIyMzUsMTUgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAgIHZvaWQg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdz
IGFyZzIpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpKTsKKyNlbHNlCisgICAgICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxv
YWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCkp
OworI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
SlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQog
ICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjIxNSw2ICsyMjUyLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJH
IGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJn
Mi50YWdHUFIoKSwgYXJnMyk7CiAjZW5kaWYKICAgICB9CisKKyAgICB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVz
dGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFy
ZzIuZ3ByKCksIGFyZzMsIGFyZzQpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRh
Z0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgYXJnMywgYXJnNCk7Cisj
ZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50cyhKU1ZhbHVlUmVncyBh
cmcxKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjAzMzUx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDMsMTAgKzQzLDEwIEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVRE
aXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIgorI2lu
Y2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpTSW50ZXJmYWNlSklULmgiCiAjaW5jbHVk
ZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmlnaW5NYXAuaCIKLSNpbmNsdWRlICJS
ZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTQzNSw3ICs0MzUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjb21w
aWxlR2V0QnlJZEhvdFBhdGgoY29uc3QgSWRlbnRpZmllciopOwogCiAgICAgICAgIC8vIEFyaXRo
bWV0aWMgb3Bjb2RlIGhlbHBlcnMKLSAgICAgICAgdm9pZCBlbWl0U3ViMzJDb25zdGFudChpbnQg
ZHN0LCBpbnQgb3AsIGludDMyX3QgY29uc3RhbnQsIFJlc3VsdFR5cGUgb3BUeXBlKTsKICAgICAg
ICAgdm9pZCBlbWl0QmluYXJ5RG91YmxlT3AoT3Bjb2RlSUQsIGludCBkc3QsIGludCBvcDEsIGlu
dCBvcDIsIE9wZXJhbmRUeXBlcywgSnVtcExpc3QmIG5vdEludDMyT3AxLCBKdW1wTGlzdCYgbm90
SW50MzJPcDIsIGJvb2wgb3AxSXNJblJlZ2lzdGVycyA9IHRydWUsIGJvb2wgb3AySXNJblJlZ2lz
dGVycyA9IHRydWUpOwogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNzYzLDcgKzc2
MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJSZWcsIFVuaXF1
ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCwgSlNW
YWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmlsZSopOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SkFycCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxl
Kik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzKTsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpB
cnBKYWljLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBBcml0aFByb2Zp
bGUqLCBKSVRBZGRJQyopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNW
YWx1ZVJlZ3MsIEpJVEFkZElDKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEFycmF5
UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9F
Sk9KLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKQEAgLTk1Myw2ICs5NTUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIgbV9wY1RvQ29kZU9y
aWdpbk1hcEJ1aWxkZXI7CiAKKyAgICAgICAgSGFzaE1hcDxJbnN0cnVjdGlvbiosIEpJVEFkZElD
Kj4gbV9pbnN0cnVjdGlvblRvSklUQWRkSUM7CisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24q
LCBNYXRoSUNHZW5lcmF0aW9uU3RhdGU+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlv
blN0YXRlOworCiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZDsKICAgICAgICAgYm9vbCBt
X2NhbkJlT3B0aW1pemVkT3JJbmxpbmVkOwogICAgICAgICBib29sIG1fc2hvdWxkRW1pdFByb2Zp
bGluZzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRv
ci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QWRkR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDUyIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRl
ICJBcml0aFByb2ZpbGUuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKKyNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBK
SVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCitKSVRN
YXRoSUNJbmxpbmVSZXN1bHQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZShDQ2FsbEhl
bHBlcnMmIGppdCwgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKK3sKKyAgICAvLyBXZSBk
ZWZhdWx0IHRvIHNwZWN1bGF0aW5nIGludDMyLgorICAgIE9ic2VydmVkVHlwZSBsaHMgPSBPYnNl
cnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAgICBPYnNlcnZlZFR5cGUgcmhzID0gT2JzZXJ2ZWRU
eXBlKCkud2l0aEludDMyKCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKSB7CisgICAgICAgIGxo
cyA9IG1fYXJpdGhQcm9maWxlLT5saHNPYnNlcnZlZFR5cGUoKTsKKyAgICAgICAgcmhzID0gbV9h
cml0aFByb2ZpbGUtPnJoc09ic2VydmVkVHlwZSgpOworICAgICAgICBpZiAobGhzLmlzRW1wdHko
KSB8fCByaHMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBsaHMgPSBPYnNlcnZlZFR5cGUoKS53
aXRoSW50MzIoKTsKKyAgICAgICAgICAgIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGxocy5pc09ubHlOb25OdW1iZXIoKSAmJiBy
aHMuaXNPbmx5Tm9uTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBKSVRNYXRoSUNJbmxpbmVSZXN1
bHQ6OkRvbnRHZW5lcmF0ZTsKKworICAgIGlmICgobGhzLmlzT25seUludDMyKCkgfHwgbV9sZWZ0
T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgJiYgKHJocy5pc09ubHlJbnQzMigpIHx8IG1fcmlnaHRP
cGVyYW5kLmlzQ29uc3RJbnQzMigpKSkgeworICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKKyAgICAg
ICAgaWYgKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgc3RhdGUu
bV9zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpKTsKKyAg
ICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkKKyAgICAgICAgICAgIHN0
YXRlLm1fc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCkp
OworCisgICAgICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8IG1fcmlnaHRP
cGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YXIgPSBt
X2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9yaWdodCA6IG1fbGVmdDsKKyAgICAgICAg
ICAgIGludDMyX3QgY29uc3RWYWx1ZSA9IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgPyBt
X2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpIDogbV9yaWdodE9wZXJhbmQuYXNDb25zdEludDMy
KCk7CisgICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hB
ZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBl
cnM6OkltbTMyKGNvbnN0VmFsdWUpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBzdGF0ZS5tX3Nsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hBZGQzMihD
Q2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxv
YWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hH
UFIsIG1fcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6R2Vu
ZXJhdGVkRmFzdFBhdGg7CisgICAgfQorCisgICAgcmV0dXJuIEpJVE1hdGhJQ0lubGluZVJlc3Vs
dDo6R2VuZXJhdGVGdWxsU25pcHBldDsKK30KKworYm9vbCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIGVu
ZEp1bXBMaXN0LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93UGF0aEp1bXBMaXN0KQogewog
ICAgIEFTU0VSVChtX3NjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CiAgICAgQVNTRVJUKG1f
c2NyYXRjaEdQUiAhPSBtX2xlZnQucGF5bG9hZEdQUigpKTsKQEAgLTQzLDEyICs4NCw4IEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIEFTU0VSVCghbV9s
ZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMy
KCkpOwogICAgIAotICAgIGlmICghbV9sZWZ0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkgfHwgIW1f
cmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkgewotICAgICAgICBBU1NFUlQoIW1fZGlkRW1p
dEZhc3RQYXRoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZGlkRW1pdEZhc3RQ
YXRoID0gdHJ1ZTsKKyAgICBpZiAoIW1fbGVmdE9wZXJhbmQubWlnaHRCZU51bWJlcigpIHx8ICFt
X3JpZ2h0T3BlcmFuZC5taWdodEJlTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlz
Q29uc3RJbnQzMigpKSB7CiAgICAgICAgIEpTVmFsdWVSZWdzIHZhciA9IG1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgPyBtX3JpZ2h0IDogbV9sZWZ0OwpAQCAtNTgsMjAgKzk1LDIwIEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgLy8gVHJ5IHRv
IGRvIGludFZhciArIGludENvbnN0YW50LgogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90
SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMih2YXIpOwogCi0gICAgICAgIG1fc2xvd1BhdGhK
dW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZh
ci5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMy
KCkpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIHZhci5wYXlsb2FkR1BSKCksIEND
YWxsSGVscGVyczo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMyKCkpLCBtX3NjcmF0Y2hHUFIp
KTsKIAogICAgICAgICBqaXQuYm94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Ci0gICAg
ICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAgICBlbmRKdW1wTGlz
dC5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGlu
Z1BvaW50KCkpIHsKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobm90SW50
MzIpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5h
cHBlbmQobm90SW50MzIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBUcnkgdG8gZG8gZG91YmxlVmFyICsgZG91YmxlKGludENvbnN0YW50KS4KICAg
ICAgICAgbm90SW50MzIubGluaygmaml0KTsKICAgICAgICAgaWYgKCF2YXJPcHIuZGVmaW5pdGVs
eUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcih2YXIsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1Bh
dGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BS
KSk7CiAKICAgICAgICAgaml0LnVuYm94RG91YmxlTm9uRGVzdHJ1Y3RpdmUodmFyLCBtX2xlZnRG
UFIsIG1fc2NyYXRjaEdQUiwgbV9zY3JhdGNoRlBSKTsKIApAQCAtODksMjIgKzEyNiwyNCBAQCB2
b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIGxlZnROb3RJ
bnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpOwogICAgICAgICByaWdodE5vdEludCA9
IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwogCi0gICAgICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmln
aHQucGF5bG9hZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKwor
ICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxw
ZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCks
IG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1f
cmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7CisgICAg
ICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKwogCiAgICAgICAgIGlmICghaml0
LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExp
c3QuYXBwZW5kKGxlZnROb3RJbnQpOwotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFw
cGVuZChyaWdodE5vdEludCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzbG93
UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgbGVmdE5vdEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1f
bGVmdE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRo
SnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQ
UikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90
TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BSKSk7CiAgICAgICAgIGlmICghbV9yaWdodE9wZXJh
bmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3Qu
YXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKKyAg
ICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlciht
X3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0
cnVjdGl2ZShtX2xlZnQsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwog
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgcmlnaHRJc0RvdWJsZSA9IGppdC5icmFuY2hJZk5v
dEludDMyKG1fcmlnaHQpOwpAQCAtMTE0LDcgKzE1Myw3IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgICAgICByaWdodE5vdEludC5saW5rKCZqaXQpOwog
ICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQotICAgICAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9y
aWdodCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAg
ICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fbGVmdEZQ
Uik7CiAKQEAgLTEyOCwxMCArMTY3LDEyIEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJsZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQu
YWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7Ci0gICAgaWYgKG1fcmVzdWx0UHJvZmls
ZSkKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgaWYg
KG1fYXJpdGhQcm9maWxlKQorICAgICAgICBtX2FyaXRoUHJvZmlsZS0+ZW1pdFNldERvdWJsZShq
aXQpOwogICAgICAgICAKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwor
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxNiArMjksMjMgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklUTWF0aElDSW5saW5lUmVzdWx0LmgiCisjaW5j
bHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNuaXBwZXRPcGVyYW5kLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlvblN0YXRlOworCiBjbGFzcyBK
SVRBZGRHZW5lcmF0b3IgewogcHVibGljOgorICAgIEpJVEFkZEdlbmVyYXRvcigpCisgICAgeyB9
CisKICAgICBKSVRBZGRHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBw
ZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1Zh
bHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIs
IEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAot
ICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAg
QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9w
ZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5k
KQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDE2ICs1NSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIo
c2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAg
LCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmls
ZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXND
b25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICB9CiAK
LSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7Ci0KLSAgICBib29sIGRp
ZEVtaXRGYXN0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRW1pdEZhc3RQYXRoOyB9Ci0gICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QoKSB7IHJldHVybiBtX2VuZEp1bXBM
aXN0OyB9Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCgpIHsg
cmV0dXJuIG1fc2xvd1BhdGhKdW1wTGlzdDsgfQorICAgIEpJVE1hdGhJQ0lubGluZVJlc3VsdCBn
ZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmLCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmKTsKKyAg
ICBib29sIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNsb3dQYXRoSnVtcExp
c3QpOwogCiBwcml2YXRlOgogICAgIFNuaXBwZXRPcGVyYW5kIG1fbGVmdE9wZXJhbmQ7CkBAIC02
OSwxMSArNzMsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJl
ZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9m
aWxlKiBtX3Jlc3VsdFByb2ZpbGU7Ci0gICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNl
IH07Ci0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7Ci0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wTGlzdCBtX3Nsb3dQYXRoSnVtcExpc3Q7CisgICAgQXJpdGhQcm9maWxl
KiBtX2FyaXRoUHJvZmlsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEpJVCkKICNpbmNsdWRlICJKSVQu
aCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVyYXRv
ci5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpJVERpdkdlbmVyYXRvci5oIgogI2lu
Y2x1ZGUgIkpJVElubGluZXMuaCIKICNpbmNsdWRlICJKSVRMZWZ0U2hpZnRHZW5lcmF0b3IuaCIK
KyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRNdWxHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJKSVROZWdHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCkBA
IC00NCwxMSArNDYsMTEgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5j
bHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAKLQogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUOjpl
bWl0X29wX2psZXNzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC02NzUsMjAg
KzY3NywyNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdXJzaGlmdChJbnN0cnVjdGlvCiAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAorQUxXQVlTX0lOTElORSBzdGF0aWMgT3BlcmFuZFR5
cGVzIGdldE9wZXJhbmRUeXBlcyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCit7CisgICAgcmV0
dXJuIE9wZXJhbmRUeXBlcyhBcml0aFByb2ZpbGU6OmZyb21JbnQoaW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kKS5saHNSZXN1bHRUeXBlKCksIEFyaXRoUHJvZmlsZTo6ZnJvbUludChpbnN0cnVjdGlv
bls0XS51Lm9wZXJhbmQpLnJoc1Jlc3VsdFR5cGUoKSk7Cit9CisKIHZvaWQgSklUOjplbWl0X29w
X2FkZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCByZXN1bHQg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6
ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZElu
c3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAg
ICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IElu
dmFsaWRGUFJSZWc7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRU
eXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0
UmVnczsKQEAgLTY5Niw5ICs3MDQsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmco
KSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9m
aWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxv
Y2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCBy
aWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtNzE1LDQ3ICs3MjMsNDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGlmICghcmlnaHRPcGVyYW5k
LmlzQ29uc3QoKSkKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVn
cyk7CiAKLSAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVn
VDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOworICAgIEpJVEFkZElD
KiBhZGRJQyA9IG1fY29kZUJsb2NrLT5hZGRKSVRBZGRJQygpOwogCi0gICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgoKnRoaXMpOworICAgIG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDLmFkZChjdXJyZW50
SW5zdHJ1Y3Rpb24sIGFkZElDKTsKKyAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2Vu
ZXJhdGlvblN0YXRlID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuYWRk
KGN1cnJlbnRJbnN0cnVjdGlvbiwgTWF0aElDR2VuZXJhdGlvblN0YXRlKCkpLml0ZXJhdG9yLT52
YWx1ZTsKIAotICAgIGlmIChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpIHsKLSAgICAgICAgZ2VuLmVu
ZEp1bXBMaXN0KCkubGluayh0aGlzKTsKLSAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihy
ZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgICAgICAKLSAgICAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNs
b3dQYXRoSnVtcExpc3QoKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGdlbi5lbmRK
dW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3Qo
KS5lbXB0eSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsKLSAgICAgICAgICAgIGlm
IChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKLSAgICAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXND
b25zdCgpKQotICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdo
dFJlZ3MpOwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKLSAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwo
dGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICAgICAgICAgIHNs
b3dQYXRoQ2FsbC5jYWxsKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgYWRkSUMtPm1fZ2VuZXJh
dG9yID0gSklUQWRkR2VuZXJhdG9yKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNj
cmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CisKKyAgICBib29sIGdlbmVyYXRlZElubGluZUNvZGUg
PSBhZGRJQy0+Z2VuZXJhdGVJbmxpbmUoKnRoaXMsIGFkZElDR2VuZXJhdGlvblN0YXRlKTsKKyAg
ICBpZiAoIWdlbmVyYXRlZElubGluZUNvZGUpIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlz
Q29uc3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVn
cyk7CisgICAgICAgIGVsc2UgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKworICAgICAgICBpZiAo
YXJpdGhQcm9maWxlKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBhcml0aFByb2ZpbGUp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVl
QWRkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgYWRkU2xvd0Nhc2UoYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aEp1bXBzKTsKKyAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiB9CiAKIHZvaWQg
SklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBsaW5rQWxsU2xvd0Nh
c2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQp
OwogCisgICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1f
aW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQoY3VycmVudEluc3RydWN0
aW9uKS0+dmFsdWU7CisgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9zbG93UGF0aFN0YXJ0ID0g
bGFiZWwoKTsKKwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVz
ID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikp
OwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpT
VmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVn
cyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9
IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxl
ZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdo
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTc2OSwxOCArNzc3LDI2IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGMKICAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudElu
dChvcDIpKQogICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29u
c3RhbnRJbnQob3AyKSk7CiAKKyAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgIGlmIChyaWdodE9w
ZXJhbmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmln
aHRSZWdzKTsKKworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElD
LmdldChjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkp
IHsKLSAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgIGlmIChyaWdodE9wZXJh
bmQuaXNDb25zdCgpKQotICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKLSAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
YWRkKTsKLSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKLSAgICB9CisgICAgICAgIEFyaXRo
UHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1
cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3No
b3VsZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLm1f
c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0
aW1pemUsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUsIGFk
ZElDKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUubV9z
bG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJl
c3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOworICAgIH0gZWxz
ZQorICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5tX3Nsb3dQYXRoQ2FsbCA9IGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJp
Z2h0UmVncywgYWRkSUMpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1
bHRSZWdzKTsKKworICAgIGFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikg
eworICAgICAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2VuZXJhdGlvblN0YXRlID0g
bV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuZmluZChjdXJyZW50SW5zdHJ1
Y3Rpb24pLT52YWx1ZTsKKyAgICAgICAgYWRkSUMtPmZpbmFsaXplSW5saW5lQ29kZShhZGRJQ0dl
bmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgfSk7CiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNzg4LDE0ICs4MDQs
MTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNv
cGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxl
ZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJl
Z3M7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsKICNlbHNlCisgICAgT3BlcmFuZFR5
cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNW
YWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFs
dWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtODAzLDkgKzgyMCw5IEBAIHZvaWQgSklU
OjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICNlbmRpZgogICAgIEZQUlJlZyBzY3Jh
dGNoRlBSID0gZnBSZWdUMjsKIAotICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyOworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2Rl
QmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFy
aXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3Ry
dWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkp
OwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC04
MzEsNyArODQ4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQog
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJ
VERpdkdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQ
Uiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEs
IHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTg2MSwxNSArODc4LDE2IEBAIHZvaWQgSklUOjplbWl0
X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVu
dEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9w
ZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJy
ZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7
CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QyKTsKICAgICBH
UFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QzOwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxp
ZEZQUlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVz
KGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdz
OwpAQCAtODc3LDkgKzg5NSw5IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAotICAgIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQot
ICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUo
bV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+
YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVy
YW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC04OTcsNyArOTE1LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJVE11bEdlbmVyYXRvciBnZW4obGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAg
ICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmls
ZSk7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFy
aXRoUHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTkw
OSwxMiArOTI3LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUK
ICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHkoKSk7
CiAgICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICBpZiAoYXJpdGhQcm9maWxlKSB7CiAgICAg
ICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwogICAgICAgICAg
ICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAgICAgICAgICAg
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0
UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0
UmVncywgYXJpdGhQcm9maWxlKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
cmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEpJVFNs
b3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3Bh
dGhfbXVsKTsKQEAgLTkzMCwxMyArOTQ4LDE0IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwo
SW5zdHJ1Y3Rpb24qIGMKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsK
ICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVy
YW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9u
WzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0
eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rp
b24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAg
ICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVn
cyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC05NTUsOCArOTc0LDggQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX211bChJbnN0cnVjdGlvbiogYwogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZl
Q29uc3RJbnQzMigpKQogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgQXJpdGhQcm9maWxlJiBhcml0
aFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0
aW9uKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxlKTsKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKQEAgLTk2OSwxNSArOTg4LDE2IEBAIHZvaWQgSklUOjpl
bWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihj
dXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogICAgIEdQUlJlZyBz
Y3JhdGNoR1BSID0gcmVnVDI7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVn
OwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVu
dEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJl
Z1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC05
ODUsOSArMTAwNSw5IEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUK
ICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAotICAgIFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQ
cm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQotICAgICAg
ICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQ
cm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxl
ZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFu
ZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC05OTYsNyArMTAxNiw3IEBAIHZvaWQgSklUOjplbWl0X29w
X3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwg
cmlnaHRSZWdzKTsKIAogICAgIEpJVFN1YkdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0
T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdU
MCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAg
ICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmls
ZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTEwMjMsOCArMTA0
Myw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGMKICNlbmRpZgog
CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewotICAgICAgICBSZXN1bHRQcm9maWxl
KiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7Cisg
ICAgICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJv
ZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywg
JmFyaXRoUHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCBy
ZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewogICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShKSVQpCiAK
KyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKIApAQCAtMTAxLDkgKzEwMiw5IEBAIHZvaWQgSklU
RGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICB9CiAKICAgICAvLyBJcyB0aGUg
cmVzdWx0IGFjdHVhbGx5IGFuIGludGVnZXI/IFRoZSBERkcgSklUIHdvdWxkIHJlYWxseSBsaWtl
IHRvIGtub3cuIElmIGl0J3MKLSAgICAvLyBub3QgYW4gaW50ZWdlciwgd2UgaW5jcmVtZW50IGEg
Y291bnQuIElmIHRoaXMgdG9nZXRoZXIgd2l0aCB0aGUgc2xvdyBjYXNlIGNvdW50ZXIKLSAgICAv
LyBhcmUgYmVsb3cgdGhyZXNob2xkIHRoZW4gdGhlIERGRyBKSVQgd2lsbCBjb21waWxlIHRoaXMg
ZGl2aXNpb24gd2l0aCBhIHNwZWN1bGF0aW9uCi0gICAgLy8gdGhhdCB0aGUgcmVtYWluZGVyIGlz
IHplcm8uCisgICAgLy8gbm90IGFuIGludGVnZXIsIHdlIHNldCBhIGJpdC4gSWYgdGhpcyB0b2dl
dGhlciB3aXRoIHRoZSBzbG93IGNhc2UgY291bnRlciBhcmUgYmVsb3cKKyAgICAvLyB0aHJlc2hv
bGQgdGhlbiB0aGUgREZHIEpJVCB3aWxsIGNvbXBpbGUgdGhpcyBkaXZpc2lvbiB3aXRoIGEgc3Bl
Y3VsYXRpb24gdGhhdCB0aGUKKyAgICAvLyByZW1haW5kZXIgaXMgemVyby4KIAogICAgIC8vIEFz
IHdlbGwsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBhIGRvdWJsZSByZXN1bHQgaGVyZSB3b3VsZCBj
YXVzZSBhbiBpbXBvcnRhbnQgZmllbGQKICAgICAvLyBpbiB0aGUgaGVhcCB0byBzb21ldGltZXMg
aGF2ZSBkb3VibGVzIGluIGl0LCByZXN1bHRpbmcgaW4gZG91YmxlIHByZWRpY3Rpb25zIGdldHRp
bmcKQEAgLTEyOCw4ICsxMjksOCBAQCB2b2lkIEpJVERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChDCiAKICAgICBub3REb3VibGVaZXJvLmxpbmsoJmppdCk7CiAjZW5kaWYKLSAgICBpZiAo
bV9yZXN1bHRQcm9maWxlKQotICAgICAgICBqaXQuYWRkMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoMSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+
YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQoKSkpOworICAgIGlmIChtX2FyaXRoUHJvZmls
ZSkKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9m
aWxlOjpzcGVjaWFsRmFzdFBhdGhCaXQpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyht
X2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgaml0LmJveERvdWJsZShtX2xl
ZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVREaXZHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVERpdkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3
IEBAIHB1YmxpYzoKICAgICBKSVREaXZHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJh
bmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVn
IGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3Jh
dGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikK
KyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6
IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmln
aHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hGUFIpCi0g
ICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwgbV9hcml0
aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVy
YW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAg
ICAgfQpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwog
ICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBS
ZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRo
UHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIEND
YWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDE2LDkgKzQxNiwz
MyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotaW5saW5lIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpS
cCBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1
ZVJlZ3MgYXJnMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0FMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SiBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1
ZVJlZ3MgYXJnMikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJn
MiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzIpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICBy
ZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJwIG9wZXJhdGlvbiwgSlNWYWx1ZVJl
Z3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcml0aFByb2ZpbGUpKTsKKyAgICBDYWxsIGNhbGwgPSBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRz
KHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFycEphaWMg
b3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVS
ZWdzIGFyZzIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlLCBKSVRBZGRJQyogYWRkSUMpCit7
CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1Q
dHIoYXJpdGhQcm9maWxlKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOworICAgIENhbGwgY2FsbCA9
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3Vs
dHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSmFpYyBv
cGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJl
Z3MgYXJnMiwgSklUQWRkSUMqIGFkZElDKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CiAgICAgQ2FsbCBjYWxsID0g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogICAgIHNldHVwUmVzdWx0
cyhyZXN1bHQpOwogICAgIHJldHVybiBjYWxsOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRNYXRoSUMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE1hdGhJQy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRNYXRoSUMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEpJVCkKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVEFkZEdl
bmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIgorI2luY2x1ZGUg
IkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXBhdGNoLmgiCisjaW5jbHVkZSAiU25pcHBldE9w
ZXJhbmQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtCdWZmZXI7CisKK3N0cnVj
dCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUgeworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Zh
c3RQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZmFzdFBhdGhFbmQ7Cisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fc2xvd1BhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBtX3Nsb3dQYXRoQ2FsbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qg
bV9zbG93UGF0aEp1bXBzOworICAgIGJvb2wgbV9zaG91bGRTbG93UGF0aFJlcGF0Y2g7Cit9Owor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yVHlwZT4KK2NsYXNzIEpJVE1hdGhJQyB7Citw
dWJsaWM6CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgZG9uZUxvY2F0aW9uKCkgeyByZXR1cm4gbV9p
bmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1faW5saW5lU2l6ZSk7IH0KKyAgICBDb2RlTG9jYXRp
b25MYWJlbCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0Lmxh
YmVsQXRPZmZzZXQobV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCk7IH0KKyAgICBDb2Rl
TG9jYXRpb25DYWxsIHNsb3dQYXRoQ2FsbExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFy
dC5jYWxsQXRPZmZzZXQobV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24pOyB9
CisKKyAgICBib29sIGdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYgaml0LCBNYXRoSUNHZW5l
cmF0aW9uU3RhdGUmIHN0YXRlKQorICAgIHsKKyAgICAgICAgc3RhdGUubV9mYXN0UGF0aFN0YXJ0
ID0gaml0LmxhYmVsKCk7CisgICAgICAgIEpJVE1hdGhJQ0lubGluZVJlc3VsdCByZXN1bHQgPSBt
X2dlbmVyYXRvci5nZW5lcmF0ZUlubGluZShqaXQsIHN0YXRlKTsKKworICAgICAgICBzd2l0Y2gg
KHJlc3VsdCkgeworICAgICAgICBjYXNlIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6R2VuZXJhdGVk
RmFzdFBhdGg6IHsKKyAgICAgICAgICAgIHN0YXRlLm1fc2hvdWxkU2xvd1BhdGhSZXBhdGNoID0g
dHJ1ZTsKKyAgICAgICAgICAgIHN0YXRlLm1fZmFzdFBhdGhFbmQgPSBqaXQubGFiZWwoKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGNhc2UgSklUTWF0aElD
SW5saW5lUmVzdWx0OjpHZW5lcmF0ZUZ1bGxTbmlwcGV0OiB7CisgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7CisgICAgICAgICAgICBib29sIHJlc3VsdCA9
IG1fZ2VuZXJhdG9yLmdlbmVyYXRlRmFzdFBhdGgoaml0LCBlbmRKdW1wTGlzdCwgc3RhdGUubV9z
bG93UGF0aEp1bXBzKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgICAg
ICBzdGF0ZS5tX2Zhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAgICAgICAgICAgc3Rh
dGUubV9zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBlbmRK
dW1wTGlzdC5saW5rKCZqaXQpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNh
c2UgSklUTWF0aElDSW5saW5lUmVzdWx0OjpEb250R2VuZXJhdGU6IHsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgdm9pZCBnZW5lcmF0ZU91dE9mTGluZShWTSYgdm0sIENvZGVCbG9jayogY29k
ZUJsb2NrLCBGdW5jdGlvblB0ciBjYWxsUmVwbGFjZW1lbnQpCisgICAgeworICAgICAgICAvLyBX
ZSByZXdpcmUgdG8gdGhlIGFsdGVybmF0ZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHdl
IGNhbiBhbGxvY2F0ZSB0aGUgb3V0IG9mIGxpbmUgcGF0aAorICAgICAgICAvLyBiZWNhdXNlIGlm
IHdlIGZhaWwgYWxsb2NhdGluZyB0aGUgb3V0IG9mIGxpbmUgcGF0aCwgd2UgZG9uJ3Qgd2FudCB0
byB3YWlzdCB0aW1lIHRyeWluZyB0bworICAgICAgICAvLyBhbGxvY2F0ZSBpdCBpbiB0aGUgZnV0
dXJlLgorICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzbG93UGF0
aENhbGxMb2NhdGlvbigpLCBjYWxsUmVwbGFjZW1lbnQpOworCisgICAgICAgIHsKKyAgICAgICAg
ICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworCisgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7IAorICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcExpc3Q7IAorICAgICAgICAgICAgYm9vbCBlbWl0
dGVkRmFzdFBhdGggPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgZW5kSnVtcExp
c3QsIHNsb3dQYXRoSnVtcExpc3QpOworICAgICAgICAgICAgaWYgKCFlbWl0dGVkRmFzdFBhdGgp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5k
KGppdC5qdW1wKCkpOworCisgICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sIGpp
dCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICAgICAgaWYgKGxp
bmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhlbmRKdW1wTGlzdCwgZG9uZUxvY2F0aW9uKCkp
OworICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dQYXRoSnVtcExpc3QsIHNsb3dQYXRo
U3RhcnRMb2NhdGlvbigpKTsKKworICAgICAgICAgICAgbV9jb2RlID0gRklOQUxJWkVfQ09ERV9G
T1IoCisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBsaW5rQnVmZmVyLCAoIkpJVE1hdGhJQzog
Z2VuZXJhdGluZyBvdXQgb2YgbGluZSBJQyBzbmlwcGV0IikpOworICAgICAgICB9CisKKyAgICAg
ICAgeworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisgICAg
ICAgICAgICBhdXRvIGp1bXAgPSBqaXQuanVtcCgpOworICAgICAgICAgICAgLy8gV2UgZG9uJ3Qg
bmVlZCBhIG5vcCBzbGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBpbmcgaW50
byB0aGUgbWlkZGxlIG9mIGFuIElDLgorICAgICAgICAgICAgYm9vbCBuZWVkc0JyYW5jaENvbXBh
Y3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIG1f
aW5saW5lU3RhcnQuZGF0YUxvY2F0aW9uKCksIGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2Rl
U2l6ZSgpLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkLCBuZWVkc0JyYW5jaENvbXBhY3Rpb24p
OworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOworICAg
ICAgICAgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKG1fY29kZS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICAgICAgRklOQUxJWkVfQ09ERShs
aW5rQnVmZmVyLCAoIkpJVE1hdGhJQzogbGlua2luZyBjb25zdGFudCBqdW1wIHRvIG91dCBvZiBs
aW5lIHN0dWIiKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGZpbmFsaXplSW5saW5l
Q29kZShjb25zdCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRlLCBMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKQorICAgIHsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc3RhcnQgPSBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9mYXN0UGF0aFN0YXJ0KTsKKyAgICAgICAgbV9pbmxpbmVT
dGFydCA9IHN0YXJ0OworCisgICAgICAgIG1faW5saW5lU2l6ZSA9IE1hY3JvQXNzZW1ibGVyOjpk
aWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5s
b2NhdGlvbk9mKHN0YXRlLm1fZmFzdFBhdGhFbmQpKTsKKyAgICAgICAgQVNTRVJUKG1faW5saW5l
U2l6ZSA+IDApOworCisgICAgICAgIG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0
aW9uID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAg
ICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUubV9zbG93UGF0aENhbGwpKTsK
KyAgICAgICAgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCA9IE1hY3JvQXNzZW1ibGVy
OjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKHN0YXRlLm1fc2xvd1BhdGhTdGFydCkpOworICAgIH0KKworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBtX2NvZGU7CisgICAgQ29kZUxvY2F0aW9uTGFiZWwgbV9pbmxpbmVT
dGFydDsKKyAgICBpbnQzMl90IG1faW5saW5lU2l6ZTsKKyAgICBpbnQzMl90IG1fZGVsdGFGcm9t
U3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFy
dFRvU2xvd1BhdGhTdGFydDsKKyAgICBHZW5lcmF0b3JUeXBlIG1fZ2VuZXJhdG9yOworfTsKKwor
dHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsK
KwordGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcj4gY2xhc3MgSklUTWF0aElDOworY2xhc3Mg
SklUQWRkR2VuZXJhdG9yOworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJ
VEFkZElDOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0lubGluZVJlc3VsdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDSW5saW5lUmVz
dWx0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJ
Q0lubGluZVJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIGNsYXNzIEpJVE1hdGhJQ0lu
bGluZVJlc3VsdCB7CisgICAgR2VuZXJhdGVkRmFzdFBhdGgsCisgICAgR2VuZXJhdGVGdWxsU25p
cHBldCwKKyAgICBEb250R2VuZXJhdGUKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVs
R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE11bEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzM1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
OCBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCiBu
YW1lc3BhY2UgSlNDIHsKIAogdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
Q0NhbGxIZWxwZXJzJiBqaXQpCkBAIC0xMzcsNyArMTM5LDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIC8vIERvIGRvdWJsZVZhciAqIGRvdWJsZVZhci4K
ICAgICBqaXQubXVsRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CiAKLSAgICBpZiAoIW1f
cmVzdWx0UHJvZmlsZSkKKyAgICBpZiAoIW1fYXJpdGhQcm9maWxlKQogICAgICAgICBqaXQuYm94
RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogICAgIGVsc2UgewogICAgICAgICAvLyBUaGUg
SW50NTIgb3ZlcmZsb3cgY2hlY2sgYmVsb3cgaW50ZW50aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEg
YXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KQEAgLTE0OSwxOCArMTUxLDE4IEBAIHZv
aWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgaml0Lm1vdmVE
b3VibGVUbzY0KG1fbGVmdEZQUiwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIG5vdE5lZ2F0aXZlWmVybyA9IGppdC5icmFuY2g2NChDQ2FsbEhlbHBl
cnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTY0KG5lZ2F0aXZlWmVyb0JpdHMpKTsKIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxw
ZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7
CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmls
ZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQ
cm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRv
bmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOwot
ICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxl
OjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1
bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkp
KTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQ
Uik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3Nj
cmF0Y2hHUFIpOwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMigweDdmZiks
IG1fc2NyYXRjaEdQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub0ludDUyT3ZlcmZs
b3cgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbk9yRXF1YWwsIG1fc2NyYXRj
aEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMHg0MzEpKTsKIAotICAgICAgICBqaXQu
b3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJm
bG93KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRy
ZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVB
ZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAgbm9JbnQ1
Mk92ZXJmbG93LmxpbmsoJmppdCk7CiAKICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwpAQCAtMTcx
LDE4ICsxNzMsMTggQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
ICAgICAgICBub3ROZWdhdGl2ZVplcm8uYXBwZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6
Ok5vdEVxdWFsLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKDApKSk7CiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5hcHBlbmQoaml0LmJyYW5jaDMyKEND
YWxsSGVscGVyczo6Tm90RXF1YWwsIG1fcmVzdWx0LnRhZ0dQUigpLCBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihuZWdhdGl2ZVplcm9CaXRzID4+IDMyKSkpOwogCi0gICAgICAgIGppdC5vcjMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUp
LCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NP
ZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
QXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmxp
bmsoJmppdCk7Ci0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJl
c3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRk
cmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9y
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOb25OZWdaZXJvRG91
YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJl
c3NPZkJpdHMoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQUigpLCBtX3Nj
cmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUy
IC0gMzIpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJ
bW0zMigweDdmZiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBu
b0ludDUyT3ZlcmZsb3cgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbk9yRXF1
YWwsIG1fc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMHg0MzEpKTsKICAg
ICAgICAgCi0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3Vs
dFByb2ZpbGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyht
X3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0Nh
bGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMo
KSkpOwogCiAgICAgICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKG5vSW50NTJPdmVyZmxvdyk7CiAg
ICAgICAgIGlmIChtX3NjcmF0Y2hHUFIgPT0gbV9yZXN1bHQudGFnR1BSKCkgfHwgbV9zY3JhdGNo
R1BSID09IG1fcmVzdWx0LnBheWxvYWRHUFIoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzMzUxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsNyBAQCBwdWJsaWM6CiAgICAgSklUTXVsR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxl
ZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAg
IEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJS
ZWcgc2NyYXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51
bGxwdHIpCisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAg
ICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVy
YW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAs
IG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNo
RlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAs
IG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9s
ZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc1Bv
c2l0aXZlQ29uc3RJbnQzMigpKTsKICAgICB9CkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAg
ICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJS
ZWcgbV9zY3JhdGNoRlBSOwotICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKKyAg
ICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBh
dGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklU
KQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0
aW9uTW9kZS5oIgpAQCAtMjI0NywxOCArMjI0OCw4NyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVG9JbmRleFN0CiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6
OmZyb20oZXhlYywgaW5kZXgpLnN0cmluZygpKTsKIH0KIAorQUxXQVlTX0lOTElORSBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZEFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZt
ID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7
CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9wMikpOworfQorCitB
TFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZEFkZChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52
bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAor
ICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFs
dWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgQVNTRVJUKGFyaXRo
UHJvZmlsZSk7CisgICAgYXJpdGhQcm9maWxlLT5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsK
KworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIGFyaXRo
UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CisgICAgcmV0dXJuIHVucHJvZmlsZWRBZGQo
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3RQcm9maWxlZE5vdE9wdGltaXplKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKQoreworICAgIHJldHVybiB1bnByb2ZpbGVk
QWRkKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworfQorCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0
aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRBZGQoZXhlYywg
ZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgYXJpdGhQcm9maWxlKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqIGFkZElDKQorewog
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIp
OworCisgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7CisgICAgYXJpdGhQcm9maWxlLT5vYnNlcnZl
TEhTQW5kUkhTKG9wMSwgb3AyKTsKKyAgICBhdXRvIG5vbk9wdGltaXplVmFyaWFudCA9IG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWROb25PcHRpbWl6ZTsKKyAgICBhZGRJQy0+Z2VuZXJhdGVPdXRP
ZkxpbmUoKnZtLCBleGVjLT5jb2RlQmxvY2soKSwgbm9uT3B0aW1pemVWYXJpYW50KTsKICAgICAK
KyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKKyAgICBhcml0aFBy
b2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVBZGRQcm9maWxlZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGUsIEpJVEFkZElDKikKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRBZGQoZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgYXJpdGhQcm9maWxlKTsKK30KKworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgSklUQWRkSUMqIGFkZElDKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworCisgICAgYXV0byBub25PcHRp
bWl6ZVZhcmlhbnQgPSBvcGVyYXRpb25WYWx1ZUFkZE5vbk9wdGltaXplOworICAgIGFkZElDLT5n
ZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBub25PcHRpbWl6ZVZhcmlh
bnQpOworCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7Cisg
ICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9wMikpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMq
KQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjI2Nyw3ICsyMzM3LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDIpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywg
b3AxLCBvcDIpOwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7
CisKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIyODQsNyAr
MjM1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUq
IGFyaXRoUHJvZmlsZSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKQEAgLTIyOTYsNyArMjM2Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBkb3VibGUgYiA9IG9w
Mi50b051bWJlcihleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEg
KiBiKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAg
IGFyaXRoUHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIzMTMsNyArMjM4Myw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGEgLSBiKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJl
c3VsdFByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
U3ViUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKIHsK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKQEAgLTIzMjUsNyArMjM5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsK
ICAgICAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKLSAgICByZXN1bHRQ
cm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIGFyaXRoUHJvZmlsZS0+ZGV0
ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5o
CShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJ
VCkKIAorI2luY2x1ZGUgIkpJVE1hdGhJQ0ZvcndhcmRzLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJT
bG93UGF0aFJldHVyblR5cGUuaCIKQEAgLTQyLDYgKzQzLDcgQEAgY2xhc3MgQXJyYXlQcm9maWxl
OwogY2xhc3MgQ2FsbExpbmtJbmZvOwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgRXhlY1N0YXRl
OworY2xhc3MgSklUQWRkR2VuZXJhdG9yOwogY2xhc3MgSlNBcnJheTsKIGNsYXNzIEpTRnVuY3Rp
b247CiBjbGFzcyBKU0xleGljYWxFbnZpcm9ubWVudDsKQEAgLTU0LDcgKzU2LDcgQEAgY2xhc3Mg
V2F0Y2hwb2ludFNldDsKIAogc3RydWN0IEJ5VmFsSW5mbzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJh
bWU7Ci1zdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKK3N0cnVjdCBBcml0aFByb2ZpbGU7CiAKIHR5cGVk
ZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIApAQCAtNjksNiArNzEsNyBAQCB0eXBlZGVmIGNoYXIq
IFVudXNlZFB0cjsKICAgICBBOiBKU0FycmF5KgogICAgIEFhcDogQXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZSoKICAgICBBcDogQXJyYXlQcm9maWxlKgorICAgIEFycDogQXJpdGhQcm9maWxlKgogICAg
IEJ5OiBCeVZhbEluZm8qCiAgICAgQzogSlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCkBAIC04
MSw2ICs4NCw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIEljZjogSW5saW5lQ2Fs
bEZyYW1lKgogICAgIElkYzogY29uc3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNvZGVkSlNWYWx1
ZQorICAgIEphaWM6IEpJVEFkZElDKgogICAgIEpjcDogY29uc3QgSlNWYWx1ZSoKICAgICBKc2M6
IEpTU2NvcGUqCiAgICAgSnNmOiBKU0Z1bmN0aW9uKgpAQCAtOTIsNyArOTYsNiBAQCB0eXBlZGVm
IGNoYXIqIFVudXNlZFB0cjsKICAgICBROiBpbnQ2NF90CiAgICAgUjogUmVnaXN0ZXIKICAgICBS
ZW86IFJlZ0V4cE9iamVjdCoKLSAgICBScDogUmVzdWx0UHJvZmlsZSoKICAgICBTOiBzaXplX3QK
ICAgICBTcHJ0OiBTbG93UGF0aFJldHVyblR5cGUKICAgICBTc2k6IFN0cnVjdHVyZVN0dWJJbmZv
KgpAQCAtMTMzLDcgKzEzNiw5IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJ
T04gKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0
aW9uX0VKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFy
cmF5UHJvZmlsZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9K
SVRPcGVyYXRpb25fRUpKQnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9O
ICpKX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9P
UEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSlJwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIFJlc3VsdFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkFycCkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcml0aFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkFycEphaWMpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJpdGhQcm9maWxlKiwg
SklUQWRkSUMqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklU
T3BlcmF0aW9uX0VKSkphaWMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgSklUQWRkSUMqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04g
KkpfSklUT3BlcmF0aW9uX0VKc3NaKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpz
c1JlbykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3QqKTsKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKc3NSZW9Kc3MpKEV4
ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKTsKQEAgLTQwOCwx
MSArNDEzLDE2IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmUKIEpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3RyaW5nKEV4ZWNTdGF0ZSosIGlu
dDMyX3QpOwogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRk
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdFBy
b2ZpbGVkTm90T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRk
UHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWROb25PcHRpbWl6ZShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBK
SVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGROb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
UmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZf
SU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2Zp
bGVyTG9nKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShy
ZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJv
ZmlsZS5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC04Myw4ICs4
NSw4IEBAIHZvaWQgSklUU3ViR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICByaWdo
dFdhc0ludGVnZXIubGluaygmaml0KTsKIAogICAgIGppdC5zdWJEb3VibGUobV9yaWdodEZQUiwg
bV9sZWZ0RlBSKTsKLSAgICBpZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3VsdFBy
b2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAg
ICAgIG1fYXJpdGhQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CiAKICAgICBqaXQuYm94RG91
YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVRTdWJHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVm
dE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAg
RlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJl
ZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVs
bHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAg
ICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJh
bmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4
LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwg
bV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hG
UFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwg
bV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0
ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAg
IEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVn
IG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAg
QXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRo
IHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMjAzMzUx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgRnVuY3Rpb25QdHIgcmVhZENhbGxUYXJnZXQoQ29k
ZUJsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIHZvaWQgcmVwYXRjaENhbGwoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVMb2NhdGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3
Q2FsbGVlRnVuY3Rpb24pCit2b2lkIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVG
dW5jdGlvbikKIHsKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICBpZiAoY29kZUJsb2NrLT5qaXRU
eXBlKCkgPT0gSklUQ29kZTo6RlRMSklUKSB7CkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGljIElu
bGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRAogCiAgICAgICAgICAgICAgICAgYm9vbCBn
ZW5lcmF0ZWRDb2RlSW5saW5lID0gSW5saW5lQWNjZXNzOjpnZW5lcmF0ZUFycmF5TGVuZ3RoKCpj
b2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBqc0Nhc3Q8SlNBcnJheSo+KGJhc2VWYWx1ZSkpOwog
ICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5saW5lKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRp
b24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1Yklu
Zm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1
bmN0aW9uKGtpbmQpKTsKICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdEFycmF5TGVu
Z3RoKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlv
biB0cnlDYWNoZUdldEJ5SUQKICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5saW5lKSB7
CiAgICAgICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpHZXRCeUlkU2VsZlBhdGNoLCBzdHJ1
Y3R1cmUtPmNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWUpKTsKICAgICAgICAgICAgICAgICBzdHJ1
Y3R1cmUtPnN0YXJ0V2F0Y2hpbmdQcm9wZXJ0eUZvclJlcGxhY2VtZW50cyh2bSwgc2xvdC5jYWNo
ZWRPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlk
RnVuY3Rpb24oa2luZCkpOworICAgICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2Fs
bChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRl
T3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CiAgICAgICAgICAgICAgICAgc3R1Yklu
Zm8uaW5pdEdldEJ5SWRTZWxmKGNvZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNl
dCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAg
ICAgfQpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgcmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiBl
eGVjLCBKU1YKICAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2Rl
QmxvY2soKS0+bV9sb2NrLCBleGVjLT52bSgpLmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNo
ZUdldEJ5SUQoZXhlYywgYmFzZVZhbHVlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBr
aW5kKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxv
Y2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmlj
R2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxs
KGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHBy
b3ByaWF0ZUdlbmVyaWNHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogfQogCiBzdGF0aWMgVl9KSVRP
cGVyYXRpb25fRVNzaUpKSSBhcHByb3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oY29uc3Qg
UHV0UHJvcGVydHlTbG90ICZzbG90LCBQdXRLaW5kIHB1dEtpbmQpCkBAIC0zNzIsNyArMzcyLDcg
QEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRAogICAgICAgICAgICAg
ICAgIGJvb2wgZ2VuZXJhdGVkQ29kZUlubGluZSA9IElubGluZUFjY2Vzczo6Z2VuZXJhdGVTZWxm
UHJvcGVydHlSZXBsYWNlKHZtLCBzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNl
dCgpKTsKICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewogICAgICAg
ICAgICAgICAgICAgICBMT0dfSUMoKElDRXZlbnQ6OlB1dEJ5SWRTZWxmUGF0Y2gsIHN0cnVjdHVy
ZS0+Y2xhc3NJbmZvKCksIGlkZW50KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxs
KGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVP
cHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNs
b3QsIHB1dEtpbmQpKTsKICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdFB1dEJ5SWRS
ZXBsYWNlKGNvZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgICAgICB9
CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCByZXBhdGNoUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMs
IEpTVgogICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGV4ZWMtPmNvZGVCbG9j
aygpLT5tX2xvY2ssIGV4ZWMtPnZtKCkuaGVhcCk7CiAgICAgCiAgICAgaWYgKHRyeUNhY2hlUHV0
QnlJRChleGVjLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHVi
SW5mbywgcHV0S2luZCkgPT0gR2l2ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhl
Yy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJp
YXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CisgICAgICAgIGZ0bFRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1
dEtpbmQpKTsKIH0KIAogc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeVJlcGF0Y2hJbigKQEAg
LTUyOSw3ICs1MjksNyBAQCB2b2lkIHJlcGF0Y2hJbigKIHsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgaWYgKHRyeVJlcGF0Y2hJbihleGVjLCBi
YXNlLCBpZGVudCwgd2FzRm91bmQsIHNsb3QsIHN0dWJJbmZvKSA9PSBHaXZlVXBPbkNhY2hlKQot
ICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uSW4pOworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRj
aENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCks
IG9wZXJhdGlvbkluKTsKIH0KIAogc3RhdGljIHZvaWQgbGlua1Nsb3dGb3IoVk0qLCBDYWxsTGlu
a0luZm8mIGNhbGxMaW5rSW5mbywgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGVSZWYpCkBAIC05
MDEsNyArOTAxLDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogCiB2b2lkIHJlc2V0R2V0
QnlJRChDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBH
ZXRCeUlES2luZCBraW5kKQogewotICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8u
c2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0
aW9uKGtpbmQpKTsKKyAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlk
RnVuY3Rpb24oa2luZCkpOwogICAgIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCgqY29k
ZUJsb2NrLT52bSgpLCBzdHViSW5mbywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkp
OwogfQogCkBAIC05MjAsNyArOTIwLDcgQEAgdm9pZCByZXNldFB1dEJ5SUQoQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIAogICAgICAgICBvcHRpbWl6ZWRGdW5jdGlvbiA9IG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3ROb25TdHJpY3RPcHRpbWl6ZTsKICAgICB9CiAKLSAgICByZXBhdGNoQ2FsbChjb2RlQmxv
Y2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wdGltaXplZEZ1bmN0aW9uKTsK
KyAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0
aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRGdW5jdGlvbik7CiAgICAgSW5saW5lQWNjZXNzOjpy
ZXdpcmVTdHViQXNKdW1wKCpjb2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24oKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5oCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCB2b2lkIGxpbmtQb2x5bW9y
cGhpY0NhbGwoRXhlY1N0YXRlKiwgQ2FsCiB2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBT
dHJ1Y3R1cmVTdHViSW5mbyYsIEdldEJ5SURLaW5kKTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVC
bG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0SW4oQ29kZUJsb2NrKiwgU3Ry
dWN0dXJlU3R1YkluZm8mKTsKK3ZvaWQgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKENvZGVCbG9j
ayosIENvZGVMb2NhdGlvbkNhbGwsIEZ1bmN0aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludERhdGEuY3BwCShyZXZpc2lvbiAyMDMzNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgogCisjaW5jbHVkZSAiQXJp
dGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvZGVUeXBlLmgiCkBAIC0yMjMsNiArMjI0LDQ3IEBA
IHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogI2VuZGlmCiAKICAgICBBU1NF
UlQoU3RyaW5nSW1wbDo6c19oYXNoRmxhZzhCaXRCdWZmZXIgPT0gOCk7CisKKyAgICB7CisgICAg
ICAgIHVpbnQzMl90IGJpdHMgPSAweDEyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMp
OworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2Zp
bGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd0ludDMyKCk7Cisg
ICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBBU1NF
UlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUlu
dDMyKCkpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09i
c2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQz
Ml90IGJpdHMgPSAweDIyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAg
ICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3
TnVtYmVyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOworICAgICAgICBB
U1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRo
UHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7
CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRU
eXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0
cyA9IDB4MjQwMDAwOworICAgICAgICBVTlVTRURfUEFSQU0oYml0cyk7CisgICAgICAgIEFyaXRo
UHJvZmlsZSBhcml0aFByb2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZS5saHNTYXdOdW1iZXIo
KTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQo
YXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmls
ZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAg
ICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCku
aXNPbmx5TnVtYmVyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAw
eDE0MDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2Zp
bGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAg
ICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQ
cm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJv
bUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNT
RVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlO
dW1iZXIoKSk7CisgICAgfQogfQogI2lmIENPTVBJTEVSKENMQU5HKQogI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDIwMzM1MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDE0LDYgKzEwMTQsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDAs
IHQyLCB0MCkKICAgICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDFOb3RJbnQKICAgICBiaW5lcSB0
MywgSW50MzJUYWcsIC5vcDJOb3RJbnQKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUp
CisgICAgb3JpIEFyaXRoUHJvZmlsZUludEludCwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlv
bih0NSwgNCkKICAgICBsb2FkaSA0W1BDXSwgdDIKICAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3Rv
cmUodDMsIHQxLCB0MCwgLnNsb3csIHQyKQogICAgIGRpc3BhdGNoKDUpCkBAIC0xMDIzLDEwICsx
MDI2LDE2IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBi
aWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAgICBiaWIgdDMsIExvd2VzdFRhZywgLm9wMU5vdElu
dE9wMkRvdWJsZQogICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNsb3cKKyAgICBsb2FkaXNGcm9t
SW5zdHJ1Y3Rpb24oNCwgdDUpCisgICAgb3JpIEFyaXRoUHJvZmlsZU51bWJlckludCwgdDUKKyAg
ICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0NSwgNCkKICAgICBjaTJkIHQxLCBmdDEKICAgICBqbXAg
Lm9wMU5vdEludFJlYWR5CiAub3AxTm90SW50T3AyRG91YmxlOgogICAgIGZpaTJkIHQxLCB0Mywg
ZnQxCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1KQorICAgIG9yaSBBcml0aFByb2Zp
bGVOdW1iZXJOdW1iZXIsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDUsIDQpCiAub3Ax
Tm90SW50UmVhZHk6CiAgICAgbG9hZGkgNFtQQ10sIHQxCiAgICAgZmlpMmQgdDAsIHQyLCBmdDAK
QEAgLTEwMzgsNiArMTA0Nyw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9w
ZXJhdGkKICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNv
bmQgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IG5vdC4KICAgICBsb2FkaSA0W1BDXSwgdDIKICAgICBi
aWEgdDMsIExvd2VzdFRhZywgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUp
CisgICAgb3JpIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVj
dGlvbih0NSwgNCkKICAgICBjaTJkIHQwLCBmdDAKICAgICBmaWkyZCB0MSwgdDMsIGZ0MQogICAg
IGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyMDMz
NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQkod29ya2luZyBjb3B5KQpAQCAtODkzLDYgKzg5Myw5IEBAIG1hY3JvIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBicWIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJO
b3RJbnQKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAgaW50ZWdlck9wZXJh
dGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
big0LCB0MSkKKyAgICBvcmkgQXJpdGhQcm9maWxlSW50SW50LCB0MQorICAgIHN0b3JlaXNUb0lu
c3RydWN0aW9uKHQxLCA0KQogICAgIGRpc3BhdGNoKDUpCiAKIC5vcDFOb3RJbnQ6CkBAIC05MDIs
OCArOTA1LDE0IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAg
ICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdwogICAgIGFkZHEgdGFnVHlwZU51bWJlciwg
dDEKICAgICBmcTJkIHQxLCBmdDEKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisg
ICAgb3JpIEFyaXRoUHJvZmlsZU51bWJlck51bWJlciwgdDIKKyAgICBzdG9yZWlzVG9JbnN0cnVj
dGlvbih0MiwgNCkKICAgICBqbXAgLm9wMU5vdEludFJlYWR5CiAub3AxTm90SW50T3AySW50Ogor
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAgICBvcmkgQXJpdGhQcm9maWxlTnVt
YmVySW50LCB0MgorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGNpMmQgdDEs
IGZ0MQogLm9wMU5vdEludFJlYWR5OgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikK
QEAgLTkxOSw2ICs5MjgsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVy
YXRpCiAgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25k
IGlzIGRlZmluaXRlbHkgbm90LgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKICAg
ICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
big0LCB0MykKKyAgICBvcmkgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0MworICAgIHN0b3JlaXNU
b0luc3RydWN0aW9uKHQzLCA0KQogICAgIGNpMmQgdDAsIGZ0MAogICAgIGFkZHEgdGFnVHlwZU51
bWJlciwgdDEKICAgICBmcTJkIHQxLCBmdDEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDIwMzM1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQko
d29ya2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1MiwxMiBAQCBjb25zdCBJc0ludmFsaWRhdGVkID0g
MgogIyBTaGFkb3dDaGlja2VuIGRhdGEKIGNvbnN0IFNoYWRvd0NoaWNrZW5UYWlsTWFya2VyID0g
MHg3YTExCiAKKyMgQXJpdGhQcm9maWxlIGRhdGEKK2NvbnN0IEFyaXRoUHJvZmlsZUludEludCA9
IDB4MTIwMDAwCitjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJJbnQgPSAweDIyMDAwMAorY29uc3Qg
QXJpdGhQcm9maWxlTnVtYmVyTnVtYmVyID0gMHgyNDAwMDAKK2NvbnN0IEFyaXRoUHJvZmlsZUlu
dE51bWJlciA9IDB4MTQwMDAwCisKICMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KIGlmIEpT
VkFMVUU2NAogICAgICMgLSBVc2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhl
IFBDOiBvbmUgcmVnaXN0ZXIgZm9yIHRoZQpAQCAtMjg2LDYgKzI5MiwxMCBAQCBpZiBKU1ZBTFVF
NjQKICAgICAgICAgbG9hZHAgb2Zmc2V0ICogOFtQQiwgUEMsIDhdLCBkZXN0CiAgICAgZW5kCiAg
ICAgCisgICAgbWFjcm8gc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKKyAgICAg
ICAgc3RvcmVpIHZhbHVlLCBvZmZzZXQgKiA4W1BCLCBQQywgOF0KKyAgICBlbmQKKwogICAgIG1h
Y3JvIHN0b3JlcFRvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKICAgICAgICAgc3RvcmVwIHZh
bHVlLCBvZmZzZXQgKiA4W1BCLCBQQywgOF0KICAgICBlbmQKQEAgLTI5OSw2ICszMDksMTAgQEAg
ZWxzZQogICAgIG1hY3JvIGxvYWRwRnJvbUluc3RydWN0aW9uKG9mZnNldCwgZGVzdCkKICAgICAg
ICAgbG9hZHAgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAgICBlbmQKKworICAgIG1hY3JvIHN0b3Jl
aXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCisgICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zm
c2V0ICogNFtQQ10KKyAgICBlbmQKIGVuZAogCiBpZiBYODZfNjRfV0lOCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAkocmV2aXNpb24gMjAzMzUxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDQ2ICszMiw0OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAg
ICBmcmllbmQgc3RydWN0IE9wZXJhbmRUeXBlczsKIAotICAgICAgICB0eXBlZGVmIGNoYXIgVHlw
ZTsKKyAgICAgICAgdHlwZWRlZiB1aW50OF90IFR5cGU7CiAgICAgICAgIHN0YXRpYyBjb25zdCBU
eXBlIFR5cGVJbnQzMiA9IDE7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBU
eXBlTWF5YmVOdW1iZXIgPSAweDA0OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5
YmVTdHJpbmcgPSAweDA4OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxs
ICAgPSAweDEwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAw
eDIwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQwOwor
ICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDAyOworICAgICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA0OworICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDA4OworICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDEwOworICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlTWF5YmVPdGhlciAgPSAweDIwOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5
cGVCaXRzID0gVHlwZU1heWJlTnVtYmVyIHwgVHlwZU1heWJlU3RyaW5nIHwgVHlwZU1heWJlTnVs
bCB8IFR5cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsKIAorICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBudW1CaXRzTmVlZGVkID0gNjsKKyAgICAgICAgc3RhdGljX2Fz
c2VydCgoVHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRlZCkgLSAxKSkgPT0gVHlwZUJpdHMs
ICJUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MuIik7CisKICAgICAgICAgZXhwbGlj
aXQgUmVzdWx0VHlwZShUeXBlIHR5cGUpCi0gICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAg
ICAgICAgICAgOiBtX2JpdHModHlwZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICBwdWJs
aWM6CiAgICAgICAgIGJvb2wgaXNJbnQzMigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBtX3R5cGUgJiBUeXBlSW50MzI7CisgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYg
VHlwZUludDMyOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNOdW1iZXIo
KSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRz
KSA9PSBUeXBlTWF5YmVOdW1iZXI7CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVC
aXRzKSA9PSBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGJv
b2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOworICAgICAgICAgICAg
cmV0dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOwogICAgICAgICB9
CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNCb29sZWFuKCkgY29uc3QKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlQm9vbDsK
KyAgICAgICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7
CiAgICAgICAgIH0KIAogICAgICAgICBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbV90eXBlICYgVHlwZU1heWJlTnVtYmVyOworICAgICAg
ICAgICAgcmV0dXJuIG1fYml0cyAmIFR5cGVNYXliZU51bWJlcjsKICAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgaXNOb3ROdW1iZXIoKSBjb25zdApAQCAtMTQxLDggKzE0MywxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAgICAg
ICB9CiAKKyAgICAgICAgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKICAg
ICBwcml2YXRlOgotICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgVHlwZSBtX2JpdHM7CiAg
ICAgfTsKICAgICAKICAgICBzdHJ1Y3QgT3BlcmFuZFR5cGVzCkBAIC0xNTIsOCArMTU2LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGluaXRpYWxpemUgb25l
IG9mIHRoZSBpbnQgdG8gZW5zdXJlIHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgc3Ry
dWN0IGlzIGluaXRpYWxpemVkLgogICAgICAgICAgICAgbV91LmkgPSAwOwotICAgICAgICAgICAg
bV91LnJkcy5maXJzdCA9IGZpcnN0Lm1fdHlwZTsKLSAgICAgICAgICAgIG1fdS5yZHMuc2Vjb25k
ID0gc2Vjb25kLm1fdHlwZTsKKyAgICAgICAgICAgIG1fdS5yZHMuZmlyc3QgPSBmaXJzdC5tX2Jp
dHM7CisgICAgICAgICAgICBtX3UucmRzLnNlY29uZCA9IHNlY29uZC5tX2JpdHM7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHVuaW9uIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjAzMzUxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgpAQCAtMzU5LDIyICszNjAsMjEgQEAgU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX25lZ2F0ZSkKIH0KIAogI2lmIEVOQUJMRShERkdfSklUKQotc3RhdGljIHZvaWQg
dXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJbnN0
cnVjdGlvbiogcGMsIEpTVmFsdWUgcmVzdWx0LCBKU1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmlnaHQp
CitzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0
ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBKU1ZhbHVlIHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBK
U1ZhbHVlIHJpZ2h0KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJs
b2NrKCk7Ci0gICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjb2RlQmxvY2stPmJ5dGVjb2Rl
T2Zmc2V0KHBjKTsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gY29kZUJsb2NrLT5lbnN1
cmVSZXN1bHRQcm9maWxlKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUmIHByb2Zp
bGUgPSBjb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKHBjKTsKIAogICAgIGlmIChyZXN1bHQu
aXNOdW1iZXIoKSkgewogICAgICAgICBpZiAoIXJlc3VsdC5pc0ludDMyKCkpIHsKICAgICAgICAg
ICAgIGlmIChsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMyKCkpCi0gICAgICAgICAgICAg
ICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCk7CisgICAgICAgICAgICAgICAg
cHJvZmlsZS5zZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKTsKIAogICAgICAgICAgICAgZG91Ymxl
IGRvdWJsZVZhbCA9IHJlc3VsdC5hc051bWJlcigpOwogICAgICAgICAgICAgaWYgKCFkb3VibGVW
YWwgJiYgc3RkOjpzaWduYml0KGRvdWJsZVZhbCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZS0+
c2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRP
YnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOworICAgICAgICAgICAg
ICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7CiAKICAgICAgICAgICAg
ICAgICAvLyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sgaGVyZSBpbnRlbnRpb25hbGx5IG9taXRz
IDFsbCA8PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVlLgogICAgICAgICAgICAg
ICAgIC8vIFRoZXJlZm9yZSwgd2Ugd2lsbCBnZXQgYSBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgcmVz
dWx0IGlzIHRoYXQgdmFsdWUuIFRoaXMgaXMgaW50ZW50aW9uYWxseQpAQCAtMzgyLDE0ICszODIs
MTQgQEAgc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeQogICAgICAgICAg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IGludDUyT3ZlcmZsb3dQb2ludCA9ICgxbGwgPDwg
NTEpOwogICAgICAgICAgICAgICAgIGludDY0X3QgaW50NjRWYWwgPSBzdGF0aWNfY2FzdDxpbnQ2
NF90PihzdGQ6OmFicyhkb3VibGVWYWwpKTsKICAgICAgICAgICAgICAgICBpZiAoaW50NjRWYWwg
Pj0gaW50NTJPdmVyZmxvd1BvaW50KQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRP
YnNlcnZlZEludDUyT3ZlcmZsb3coKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRP
YnNlcnZlZEludDUyT3ZlcmZsb3coKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0g
ZWxzZQotICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5vbk51bWJlcigpOworICAgICAgICBw
cm9maWxlLnNldE9ic2VydmVkTm9uTnVtYmVyKCk7CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgdXBk
YXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24q
LCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7IH0KK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRo
UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBKU1ZhbHVl
LCBKU1ZhbHVlLCBKU1ZhbHVlKSB7IH0KICNlbmRpZgogCiBTTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfdG9fbnVtYmVyKQpAQCAtNDA3LDYgKzQwNyw5IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9hZGQpCiAgICAgSlNWYWx1ZSB2MiA9IE9QX0MoMykuanNWYWx1ZSgpOwogICAgIEpTVmFsdWUg
cmVzdWx0OwogCisgICAgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUgPSBleGVjLT5jb2RlQmxv
Y2soKS0+YXJpdGhQcm9maWxlRm9yUEMocGMpOworICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhT
QW5kUkhTKHYxLCB2Mik7CisKICAgICBpZiAodjEuaXNTdHJpbmcoKSAmJiAhdjIuaXNPYmplY3Qo
KSkKICAgICAgICAgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgYXNTdHJpbmcodjEpLCB2Mi50b1N0
cmluZyhleGVjKSk7CiAgICAgZWxzZSBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigp
KQpAQCAtNDE1LDcgKzQxOCw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAgICAg
ICAgIHJlc3VsdCA9IGpzQWRkU2xvd0Nhc2UoZXhlYywgdjEsIHYyKTsKIAogICAgIFJFVFVSTl9X
SVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJp
bmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgdjEsIHYyKTsKKyAgICAgICAgdXBkYXRlQXJp
dGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCB2MSwgdjIpOwogICAg
IH0pOwogfQogCkBAIC00MzIsNyArNDM1LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211
bCkKICAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNOdW1iZXIoYSAqIGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQs
IHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMs
IHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5h
cnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApA
QCAtNDQ1LDcgKzQ0OCw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zdWIpCiAgICAgZG91
YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVt
YmVyKGEgLSBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAg
IHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChl
eGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1OCw3ICs0
NjEsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGl2KQogICAgIGRvdWJsZSBiID0gcmln
aHQudG9OdW1iZXIoZXhlYyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC8gYik7
CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1
bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7
CisgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJl
c3VsdCwgbGVmdCwgcmlnaHQpOwogICAgIH0pOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL29wLWFkZC1leGNlcHRpb25zLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wLWFkZC1l
eGNlcHRpb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkgQEAKK2Z1bmN0aW9uIGFz
c2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCEiKTsK
K30KK25vSW5saW5lKGFzc2VydCk7CisKK2Z1bmN0aW9uIGYxKCkgeyByZXR1cm4gImYxIjsgfQor
bm9JbmxpbmUoZjEpOworZnVuY3Rpb24gZjIoKSB7IHJldHVybiAiZjIiOyB9Citub0lubGluZShm
Mik7CitmdW5jdGlvbiBmMygpIHsgcmV0dXJuICJmMyI7IH0KK25vSW5saW5lKGYzKTsKKworbGV0
IG9FeGNlcHRpb24gPSB7CisgICAgdmFsdWVPZigpIHsgdGhyb3cgbmV3IEVycm9yKCIiKTsgfQor
fTsKKworZnVuY3Rpb24gZm9vKGFyZzEsIGFyZzIpIHsKKyAgICBsZXQgYSA9IGYxKCk7CisgICAg
bGV0IGIgPSBmMigpOworICAgIGxldCBjID0gZjMoKTsKKyAgICB0cnkgeworICAgICAgICBhcmcx
ICsgYXJnMjsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgYXNzZXJ0KGFyZzEgPT09IG9FeGNl
cHRpb24pOworICAgICAgICBhc3NlcnQoYXJnMiA9PT0gb0V4Y2VwdGlvbik7CisgICAgfQorICAg
IGFzc2VydChhID09PSAiZjEiKTsKKyAgICBhc3NlcnQoYiA9PT0gImYyIik7CisgICAgYXNzZXJ0
KGMgPT09ICJmMyIpOworfQorbm9JbmxpbmUoZm9vKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDAwOyBpKyspIHsKKyAgICBmb28oaSwge30pOworICAgIGZvbyh7fSwgaSk7Cit9Citmb28ob0V4
Y2VwdGlvbiwgb0V4Y2VwdGlvbik7Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsK
KyAgICBmb28oaSwge30pOworICAgIGZvbyh7fSwgaSk7Cit9Citmb28ob0V4Y2VwdGlvbiwgb0V4
Y2VwdGlvbik7CisKKworZnVuY3Rpb24gaWRlbnQoeCkgeyByZXR1cm4geDsgfQorbm9JbmxpbmUo
aWRlbnQpOworCitmdW5jdGlvbiBiYXIoYXJnMSwgYXJnMikgeworICAgIGxldCBhID0gZjEoKTsK
KyAgICBsZXQgYiA9IGYyKCk7CisgICAgbGV0IGMgPSBmMygpOworICAgIGxldCB4ID0gaWRlbnQo
YXJnMSk7CisgICAgbGV0IHkgPSBpZGVudChhcmcyKTsKKworICAgIHRyeSB7CisgICAgICAgIGFy
ZzEgKyBhcmcyOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBhc3NlcnQoYXJnMSA9PT0gb0V4
Y2VwdGlvbik7CisgICAgICAgIGFzc2VydChhcmcyID09PSBvRXhjZXB0aW9uKTsKKyAgICAgICAg
YXNzZXJ0KHggPT09IG9FeGNlcHRpb24pOworICAgICAgICBhc3NlcnQoeSA9PT0gb0V4Y2VwdGlv
bik7CisgICAgfQorICAgIGFzc2VydChhID09PSAiZjEiKTsKKyAgICBhc3NlcnQoYiA9PT0gImYy
Iik7CisgICAgYXNzZXJ0KGMgPT09ICJmMyIpOworfQorbm9JbmxpbmUoYmFyKTsKKworZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICBiYXIoaSwge30pOworICAgIGJhcih7fSwg
aSk7Cit9CitiYXIob0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7Citmb3IgKGxldCBpID0gMDsgaSA8
IDEwMDAwOyBpKyspIHsKKyAgICBiYXIoaSwge30pOworICAgIGJhcih7fSwgaSk7Cit9CitiYXIo
b0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDMzNTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxNi0wNy0xOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAg
ICAgICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoT09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaml0L0pJVE1hdGhJQ0Zv
cndhcmRzLmg6IEFkZGVkLgorCiAyMDE2LTA3LTE4ICBZb2F2IFdlaXNzICA8eW9hdkB5b2F2Lndz
PgogCiAgICAgICAgIEFkZCBwcmVsb2FkIHRvIGZlYXR1cmVzLmpzb24KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3
YXJkcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
aml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisj
aWZuZGVmIFdlYkNvcmVfRldEX0pJVE1hdGhJQ0ZvcndhcmRzX2gKKyNkZWZpbmUgV2ViQ29yZV9G
V0RfSklUTWF0aElDRm9yd2FyZHNfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pJVE1hdGhJ
Q0ZvcndhcmRzLmg+CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284150</attachid>
            <date>2016-07-20 14:57:02 -0700</date>
            <delta_ts>2016-07-20 14:59:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>162821</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5MiBA
QAorMjAxNi0wNy0yMCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgQWRkIGFuIElDIGluc2lkZSBhbGwgSklUIHRpZXJzLiBJdCBkb2VzIHNvIGluIGEKKyAgICAg
ICAgc2ltcGxlLCBidXQgZWZmZWN0aXZlLCB3YXkuIFdlIHdpbGwgdHJ5IHRvIGdlbmVyYXRlIGFu
IGludCtpbnQgYWRkCisgICAgICAgIHRoYXQgd2lsbCByZXBhdGNoIGl0c2VsZiBpZiBpdHMgdHlw
ZSBjaGVja3MgZmFpbC4gU29tZXRpbWVzIHRob3VnaCwKKyAgICAgICAgd2UgaGF2ZSBydW50aW1l
IHR5cGUgZGF0YSBzYXlpbmcgdGhhdCB0aGUgYWRkIHdvbid0IGJlIGludCtpbnQuCisgICAgICAg
IEluIHRob3NlIGNhc2VzLCB3ZSB3aWxsIGp1c3QgZ2VuZXJhdGUgYSBmdWxsIHNuaXBwZXQgdGhh
dCBkb2Vzbid0IHBhdGNoIGl0c2VsZi4KKyAgICAgICAgT3RoZXIgdGltZXMsIHdlIG1heSBnZW5l
cmF0ZSBubyBpbmxpbmUgY29kZSBhbmQgZGVmZXIgdG8gbWFraW5nIGEgQyBjYWxsLiBBIGxvdAor
ICAgICAgICBvZiB0aGlzIHBhdGNoIGlzIGp1c3QgcmVmYWN0b3JpbmcgUmVzdWx0UHJvZmlsZSBp
bnRvIHdoYXQgd2UncmUgbm93IGNhbGxpbmcgQXJpdGhQcm9maWxlLgorICAgICAgICBBcml0aFBy
b2ZpbGUgZG9lcyBldmVyeXRoaW5nIFJlc3VsdFByb2ZpbGUgdXNlZCB0byBkbywgYW5kIG1vcmUu
IEl0IHJlY29yZHMgc2ltcGxlIHR5cGUKKyAgICAgICAgZGF0YSBhYm91dCB0aGUgTEhTL1JIUyBv
cGVyYW5kcyBpdCBzZWVzLiBUaGlzIGFsbG93cyB1cyB0byBkZXRlcm1pbmUgaWYgYW4gb3BfYWRk
CisgICAgICAgIGhhcyBvbmx5IHNlZW4gaW50K2ludCBvcGVyYW5kcywgZXRjLiBBcml0aFByb2Zp
bGUgd2lsbCBhbHNvIGNvbnRhaW4gdGhlIFJlc3VsdFR5cGUKKyAgICAgICAgZm9yIHRoZSBMSFMv
UkhTIHRoYXQgdGhlIHBhcnNlciBmZWVkcyBpbnRvIG9wX2FkZC4gQXJpdGhQcm9maWxlIG5vdyBm
aXRzIGludG8gMzItYml0cy4KKyAgICAgICAgVGhpcyBtZWFucyBpbnN0ZWFkIG9mIGhhdmluZyBh
IHNpZGUgdGFibGUgbGlrZSB3ZSBkaWQgZm9yIFJlc3VsdFByb2ZpbGUsIHdlIGp1c3QKKyAgICAg
ICAgaW5qZWN0IHRoZSBBcml0aFByb2ZpbGUgaW50byB0aGUgYnl0ZWNvZGUgaW5zdHJ1Y3Rpb24g
c3RyZWFtLiBUaGlzIG1ha2VzIGFza2luZworICAgICAgICBmb3IgQXJpdGhQcm9maWxlIGZhc3Rl
cjsgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gbG9jayBhcm91bmQgdGhpcyBvcGVyYXRpb24uCisKKyAg
ICAgICAgVGhlIHNpemUgb2YgYW4gQWRkIGhhcyBnb25lIGRvd24gb24gYXZlcmFnZSwgYnV0IHdl
IGNhbiBzdGlsbCBkbyBiZXR0ZXIuCisgICAgICAgIFdlIHN0aWxsIGdlbmVyYXRlIGEgbG90IG9m
IGNvZGUgYmVjYXVzZSB3ZSBnZW5lcmF0ZSBjYWxscyB0byB0aGUgc2xvdyBwYXRoLgorICAgICAg
ICBJIHRoaW5rIHdlIGNhbiBtYWtlIHRoaXMgYmV0dGVyIGJ5IG1vdmluZyB0aGUgc2xvdyBwYXRo
IHRvIGEgc2hhcmVkIHRodW5rCisgICAgICAgIHN5c3RlbS4gVGhpcyBwYXRjaCBtb3N0bHkgbGF5
cyB0aGUgZm91bmRhdGlvbiBmb3IgZnV0dXJlIGltcHJvdmVtZW50cyB0byBBZGQsCisgICAgICAg
IGFuZCBhIGZyYW1ld29yayB0byBtb3ZlIGFsbCBvdGhlciBhcml0aG1ldGljIG9wZXJhdGlvbnMg
dG8gYmUgdHlwZWQtYmFzZWQgSUNzLgorCisgICAgICAgIEhlcmUgaXMgc29tZSBkYXRhIEkgdG9v
ayBvbiB0aGUgYXZlcmFnZSBvcF9hZGQvVmFsdWVBZGQgc2l6ZSBvbiB2YXJpb3VzIGJlbmNobWFy
a3M6CisgICAgICAgICAgICAgICAgICAgfCAgIEpldFN0cmVhbSAgfCAgU3BlZWRvbWV0ZXIgfCAg
VW5pdHkgM0QgIHwKKyAgICAgICAgICAgICAtLS0tLS18IC0tLS0tLS0tLS0tLS18LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgT2xkICB8ICAxODkgYnl0ZXMgICB8
ICAxNjkgYnl0ZXMgICB8ICAxOTIgYnl0ZXMgfAorICAgICAgICAgICAgIC0tLS0tLXwgLS0tLS0t
LS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBOZXcg
IHwgIDE0OCBieXRlcyAgIHwgIDEyNCBieXRlcyAgIHwgIDE0MyBieXRlcyB8CisgICAgICAgICAg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyAgICAgICAgTWFraW5nIGFuIGFyaXRobWV0aWMgSUMgaXMgbm93IGVhc3kuIFRoZSBKSVRNYXRo
SUMgY2xhc3Mgd2lsbCBob2xkIGEgc25pcHBldAorICAgICAgICBnZW5lcmF0b3IgYXMgYSBtZW1i
ZXIgdmFyaWFibGUuIFRvIG1ha2UgYSBzbmlwcGV0IGFuIElDLCB5b3UgbmVlZCB0byBpbXBsZW1l
bnQKKyAgICAgICAgYSBnZW5lcmF0ZUlubGluZSguKSBtZXRob2QsIHdoaWNoIGdlbmVyYXRlcyB0
aGUgaW5saW5lIElDLiBUaGVuLCB5b3UgbmVlZCB0bworICAgICAgICBnZW5lcmF0ZSB0aGUgSUMg
d2hlcmUgeW91IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHNuaXBwZXQuIFdoZW4gZ2VuZXJhdGluZyB0
aGUKKyAgICAgICAgSUMsIHdlIG5lZWQgdG8gaW5mb3JtIEpJVE1hdGhJQyBvZiB2YXJpb3VzIGRh
dGEgbGlrZSB3ZSBkbyB3aXRoIFN0cnVjdHVyZVN0dWJJbmZvLgorICAgICAgICBXZSBuZWVkIHRv
IHRlbGwgaXQgYWJvdXQgd2hlcmUgdGhlIHNsb3cgcGF0aCBzdGFydHMsIHdoZXJlIHRoZSBzbG93
IHBhdGggY2FsbCBpcywgZXRjLgorICAgICAgICBXaGVuIGdlbmVyYXRpbmcgYSBKSVRNYXRoSUMs
IGl0IG1heSB0ZWxsIHlvdSB0aGF0IGl0IGRpZG4ndCBnZW5lcmF0ZSBhbnkgY29kZSBpbmxpbmUu
CisgICAgICAgIFRoaXMgaXMgYSByZXF1ZXN0IHRvIHRoZSB1c2VyIG9mIEpJVE1hdGhJQyB0byBq
dXN0IGdlbmVyYXRlIGEgQyBjYWxsIGFsb25nIHRoZQorICAgICAgICBmYXN0IHBhdGguIEpJVE1h
dGhJQyBtYXkgYWxzbyBoYXZlIHRoZSBzbmlwcGV0IHRlbGwgaXQgdG8ganVzdCBnZW5lcmF0ZSB0
aGUgZnVsbAorICAgICAgICBzbmlwcGV0IGluc3RlYWQgb2YgdGhlIGludCtpbnQgcGF0aCBhbG9u
ZyB0aGUgZmFzdCBwYXRoLgorCisgICAgICAgIEluIHN1YnNlcXVlbnQgcGF0Y2hlcywgd2UgY2Fu
IGltcHJvdmUgdXBvbiBob3cgd2UgZGVjaWRlIHRvIGdlbmVyYXRlIGludCtpbnQgb3IKKyAgICAg
ICAgdGhlIGZ1bGwgc25pcHBldC4gSSB0cmllZCB0byBnZXQgY2xldmVyIGJ5IGhhdmluZyBkb3Vi
bGUrZG91YmxlLCBkb3VibGUraW50LCBpbnQrZG91YmxlLAorICAgICAgICBmYXN0IHBhdGhzLCBi
dXQgdGhleSBkaWRuJ3Qgd29yayBvdXQgbmVhcmx5IGFzIHdlbGwgYXMgdGhlIGludCtpbnQgZmFz
dCBwYXRoLiBJIGVuZGVkIHVwCisgICAgICAgIGdlbmVyYXRpbmcgYSBsb3Qgb2YgY29kZSB3aGVu
IEkgZGlkIHRoaXMgYW5kIGVuZGVkIHVwIHVzaW5nIG1vcmUgbWVtb3J5IHRoYW4ganVzdCBnZW5l
cmF0aW5nCisgICAgICAgIHRoZSBmdWxsIHNuaXBwZXQuIFRoZXJlIGlzIHByb2JhYmx5IHNvbWUg
d2F5IHdlIGNhbiBiZSBjbGV2ZXIgYW5kIGdlbmVyYXRlIHNwZWNpYWxpemVkIGZhc3QKKyAgICAg
ICAgcGF0aHMgdGhhdCBhcmUgbW9yZSBzdWNjZXNzZnVsIHRoYW4gd2hhdCBJIHRyaWVkIGltcGxl
bWVudGluZywgYnV0IEkgdGhpbmsgdGhhdCdzIHdvcnRoIGRvaW5nCisgICAgICAgIHRoaXMgaW4g
Zm9sbG93IHVwIHBhdGNoZXMgb25jZSB0aGUgSklUTWF0aElDIGZvdW5kYXRpb24gaGFzIGxhbmRl
ZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgYSBidWcgaW5zaWRlIHRoZSBzbG93
IHBhdGggbGFtYmRhcyBpbiB0aGUgREZHLgorICAgICAgICBCZWZvcmUsIGl0IHdhcyBub3QgbGVn
YWwgdG8gZW1pdCBhbiBleGNlcHRpb24gY2hlY2sgaW5zaWRlIHRoZW0uIE5vdywKKyAgICAgICAg
aXQgaXMuIFNvIGl0J3Mgbm93IGVhc3kgdG8gZGVmaW5lIGFyYml0cmFyeSBsYXRlIHBhdGhzIHVz
aW5nIHRoZSBERkcKKyAgICAgICAgc2xvdyBwYXRoIGxhbWJkYSBBUEkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldERvdWJsZSk6CisgICAgICAgIChK
U0M6OkFyaXRoUHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJv
ZmlsZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmls
ZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAg
ICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6T2Jz
ZXJ2ZWRUeXBlOjpPYnNlcnZlZFR5cGUpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNh
d0ludDMyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc09ubHlJbnQzMik6CisgICAg
ICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6c2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2
ZWRUeXBlOjppc09ubHlOdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNhd05v
bk51bWJlcik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNPbmx5Tm9uTnVtYmVyKToK
KyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6T2Jz
ZXJ2ZWRUeXBlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRoSW50MzIp
OgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OndpdGhOdW1iZXIpOgorICAgICAgICAoSlND
OjpPYnNlcnZlZFR5cGU6OndpdGhOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5
cGU6OndpdGhvdXROb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6Om9wZXJh
dG9yPT0pOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OkFyaXRoUHJvZmlsZSk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZnJvbUludCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJv
ZmlsZTo6bGhzUmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzUmVz
dWx0VHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzT2JzZXJ2ZWRUeXBlKToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNPYnNlcnZlZFR5cGUpOgorICAgICAgICAo
SlNDOjpBcml0aFByb2ZpbGU6OnNldExoc09ic2VydmVkVHlwZSk6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTo6c2V0UmhzT2JzZXJ2ZWRUeXBlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9m
aWxlOjp0b29rU3BlY2lhbEZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpk
aWRPYnNlcnZlTm9uSW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2Vy
dmVEb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVOb25OZWda
ZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlTmVnWmVy
b0RvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZU5vbk51bWJl
cik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3cp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OdW1iZXIpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkSW50MzJPdmVyZmxvdyk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KToKKyAgICAg
ICAgKEpTQzo6QXJpdGhQcm9maWxlOjphZGRyZXNzT2ZCaXRzKToKKyAgICAgICAgKEpTQzo6QXJp
dGhQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmls
ZTo6bGhzU2F3SW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc1Nhd051bWJl
cik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzU2F3Tm9uTnVtYmVyKToKKyAgICAg
ICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNTYXdJbnQzMik6CisgICAgICAgIChKU0M6OkFyaXRo
UHJvZmlsZTo6cmhzU2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNT
YXdOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Om9ic2VydmVMSFNBbmRS
SFMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmJpdHMpOgorICAgICAgICAoSlNDOjpB
cml0aFByb2ZpbGU6Omhhc0JpdHMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldEJp
dCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpk
dW1wQXJpdGhQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUp
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjphZGRKSVRBZGRJQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluZFN0
dWJJbmZvKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXNldEpJVERhdGEpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
OjpkdW1wVmFsdWVQcm9maWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmFyZUNhc2VQ
cm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvclBDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjb3VsZFRha2VT
cGVjaWFsRmFzdENhc2UpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBSZXN1bHRQcm9m
aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNwZWNp
YWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHVi
SW5mb0JlZ2luKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHViSW5mb0VuZCk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6Y291bGRUYWtlU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6Om51bWJlck9mUmVzdWx0UHJvZmlsZXMpOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAq
IGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6
UmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdE51bWVyaWNuZXNzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6Z2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVEb3VibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlTm9uTmVnWmVy
b0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6
ZGlkT2JzZXJ2ZU5vbk51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVz
dWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk51
bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNl
dE9ic2VydmVkSW50NTJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFBy
b2ZpbGU6OmFkZHJlc3NPZkZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJv
ZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlc3VsdFByb2ZpbGU6Omhhc0JpdHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzZXRCaXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZXRSZXN1bHRQ
cm9maWxlQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0QmluYXJ5T3ApOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAgKiBkZmcv
REZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjptZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlRm9yKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjayk6CisgICAgICAgICog
ZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2xvd1BhdGhH
ZW5lcmF0b3I6OmdlbmVyYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJh
dG9ycyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFk
ZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVWYWx1ZUFkZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVTdHJDYXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjplbWl0QmluYXJ5U25pcHBldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmVtaXRBZGRTbmlwcGV0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6ZW1pdEJpbmFyeUJpdE9wU25pcHBldCk6CisgICAgICAgICogaml0L0NDYWxsSGVs
cGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZSk6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1bWVudHMpOgor
ICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQWRkR2VuZXJhdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZSk6CisgICAgICAg
IChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0
L0pJVEFkZEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OkpJVEFk
ZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6ZGlkRW1pdEZhc3RQ
YXRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjplbmRKdW1wTGlz
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6c2xvd1BhdGhKdW1w
TGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfamxlc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93
X29wX3Vyc2hpZnQpOgorICAgICAgICAoSlNDOjpnZXRPcGVyYW5kVHlwZXMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9h
ZGQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGl2KToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX211bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbXVsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N1Yik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3Bfc3ViKToKKyAgICAgICAgKiBqaXQvSklURGl2R2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SklURGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKiBqaXQv
SklURGl2R2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVERpdkdlbmVyYXRvcjo6SklURGl2
R2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRNYXRoSUMuaDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkpJVE1hdGhJQzo6ZG9uZUxvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklU
TWF0aElDOjpzbG93UGF0aFN0YXJ0TG9jYXRpb24pOgorICAgICAgICAoSlNDOjpKSVRNYXRoSUM6
OnNsb3dQYXRoQ2FsbExvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklUTWF0aElDOjpnZW5lcmF0
ZUlubGluZSk6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6Z2VuZXJhdGVPdXRPZkxpbmUpOgor
ICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmZpbmFsaXplSW5saW5lQ29kZSk6CisgICAgICAgICog
aml0L0pJVE1hdGhJQ0ZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9KSVRNYXRoSUNJ
bmxpbmVSZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgICogaml0L0pJVE11bEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRNdWxHZW5lcmF0
b3I6OkpJVE11bEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aCk6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRT
dWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRvcik6CisgICAgICAgICogaml0L1JlcGF0Y2guY3Bw
OgorICAgICAgICAoSlNDOjpyZWFkQ2FsbFRhcmdldCk6CisgICAgICAgIChKU0M6OmZ0bFRodW5r
QXdhcmVSZXBhdGNoQ2FsbCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAg
ICAgIChKU0M6OnJlcGF0Y2hHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6YXBwcm9wcmlhdGVHZW5l
cmljUHV0QnlJZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAg
ICAgICAgKEpTQzo6cmVwYXRjaFB1dEJ5SUQpOgorICAgICAgICAoSlNDOjp0cnlSZXBhdGNoSW4p
OgorICAgICAgICAoSlNDOjpyZXBhdGNoSW4pOgorICAgICAgICAoSlNDOjpsaW5rU2xvd0Zvcik6
CisgICAgICAgIChKU0M6OnJlc2V0R2V0QnlJRCk6CisgICAgICAgIChKU0M6OnJlc2V0UHV0QnlJ
RCk6CisgICAgICAgIChKU0M6OnJlcGF0Y2hDYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQv
UmVwYXRjaC5oOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChKU0M6
OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAg
ICAgICAqIHBhcnNlci9SZXN1bHRUeXBlLmg6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OlJl
c3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjppc0ludDMyKToKKyAgICAgICAg
KEpTQzo6UmVzdWx0VHlwZTo6ZGVmaW5pdGVseUlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6UmVz
dWx0VHlwZTo6ZGVmaW5pdGVseUlzU3RyaW5nKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6
ZGVmaW5pdGVseUlzQm9vbGVhbik6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6Om1pZ2h0QmVO
dW1iZXIpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjppc05vdE51bWJlcik6CisgICAgICAg
IChKU0M6OlJlc3VsdFR5cGU6OmZvckJpdE9wKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6
Yml0cyk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRUeXBlczo6T3BlcmFuZFR5cGVzKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFU
SF9ERUNMKToKKyAgICAgICAgKEpTQzo6dXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhP
cCk6CisgICAgICAgIChKU0M6OnVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKTog
RGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMuanM6IEFk
ZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAgICAgKGYxKToKKyAgICAgICAgKGYyKToKKyAg
ICAgICAgKGYzKToKKyAgICAgICAgKGxldC5vRXhjZXB0aW9uLnZhbHVlT2YpOgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKGlkZW50KToKKyAgICAgICAgKGJhcik6CisKIDIwMTYtMDctMjAgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hPbk92ZXJm
bG93IGluIEpTQzo6WWFycjo6WWFyclBhdHRlcm5Db25zdHJ1Y3Rvcjo6c2V0dXBBbHRlcm5hdGl2
ZU9mZnNldHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVDcmVhdG9yLmNwcAogCiAgICAgYnl0ZWNvZGUv
QWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAKKyAgICBieXRl
Y29kZS9Bcml0aFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmls
ZS5jcHAKICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQnl0ZWNv
ZGVCYXNpY0Jsb2NrLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc5LDE2ICsxMjc5LDIx
IEBACiAJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MDVCQjY3MUQxMjA1MEUw
MDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3OTE2MERCRDFDOEUzRUM4MDA4QzA4NUEgLyogUHJveHlSZXZv
a2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkx
NjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLzsgfTsKIAkJNzkxNjBE
QkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERCQzFDOEUzRUM4MDA4QzA4NUEgLyogUHJv
eHlSZXZva2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4
MzQgLyogSklUTWF0aElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFw
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNC
MzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07CiAJCTc5
MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1QzAwRDEz
QUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1dElu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5NjQ2
NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2Jh
bExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FBMUI4RkNGQjkwMDg0MDBC
QSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xv
YmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdp
bk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk5
RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4
RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5j
cHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QTIyODM0MUQz
NUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKKwkJNzlBRjBCRTQxRDNFRkQ0
QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBRjBCRTMxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJ
VE1hdGhJQ0lubGluZVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVj
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKIAkJ
NzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2QUIwN0UwMDg4
QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNldHRpbmdzID0g
e0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7IH07IH07CiAJ
CTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3RTAwODhDNjVE
IC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUE4OTlG
RTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIxNThGMDBGRDU5
MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFCQTIxNThGMDBG
RDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAgKi87IH07
CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNl
cnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVz
ZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFuZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNGQzZFRjFDMzNC
MTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc3LDEyICszNDgyLDE3IEBACiAJCTc5MDVCQjY3
MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0
aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJQy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNBRjMgLyogUENU
b0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJD
QjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1dEluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxM
ZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxMZXhpY2Fs
RW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5RUY3QzMxQzU2
RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09yaWdpbk1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUwNjcg
LyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5QTIyODM0
MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklUTWF0aElD
SW5saW5lUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJ
Q0lubGluZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCODFD
NkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1Y3Rvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQg
LyogUHJveHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJveHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA2NCw2ICs1
MDc0LDkgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRl
ci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJ
CQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMzQzI5MUQz
NDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBE
MThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLywKKwkJCQk3OUFGMEJFMzFEM0VGRDRDMDBF
OTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8sCiAJCQkJRkUxMjIwMjUxQkU3RjU2
NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAgKi8sCiAJCQkJRkUxMjIwMjYxQkU3RjU2
NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovLAogCQkJCTg2QTkwRUNGMEVFN0Q1MUYw
MEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAqLywKQEAgLTY1NjUsNiArNjU3OCw4IEBACiAJ
CQkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCAq
LywKIAkJCQkwRjYzOTQ1MTE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmNwcCAqLywK
IAkJCQkwRjYzOTQ1MjE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmggKi8sCisJCQkJ
NzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgKi8sCisJCQkJNzlB
MjI4MzQxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oICovLAogCQkJCUMyRkNBRTBD
MTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suY3BwICovLAogCQkJCUMyRkNB
RTBEMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suaCAqLywKIAkJCQkwRjIx
QzI3RTE0QkVBQTgwMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9ucy5oICovLApAQCAtNzA3
Nyw2ICs3MDkyLDcgQEAKIAkJCQlBNUVBNzBFODE5RjVCMTAxMDA5OEY1RUMgLyogQXVnbWVudGFi
bGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODRG
RjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkVDODUwMjFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDMxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
QmFzaWNCbG9ja1V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwNDFCREFDREFDMDA4
MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTc2NTYsNiArNzY3
Miw3IEBACiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAwODA2NkREIC8qIEludGVybmFsRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlENzdDMEVEMjBENzMwMEI4OTYxOSAvKiBJbnRl
cnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8q
IEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0ExQjRF
MEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUy
M0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3NjUsNiArNzc4Miw3IEBACiAJCQkJQTUx
MDA3QzExODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAwNjhBNDZEIC8qIEpTR2xv
YmFsT2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAzRkEyQTE4OEYx
MDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzAxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRT
Y3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDMjE4NUJGQUNDMDA3RTk1QUQg
LyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM0
NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0cy5qc29uIGluIEhlYWRlcnMgKi8sCkBA
IC04MTkwLDYgKzgyMDgsNyBAQAogCQkJCTBGQzgxNTBBMTQwNDNCRjUwMENGQTYwMyAvKiBXcml0
ZUJhcnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4Q0IxNjBFRDEyQjRFMDAx
RDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU5RTkyRTFCRDE3
RkE0MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCisJCQkJNzlCMTc4OEUxRDM5OUI4
MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTE1
MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRC
ODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBpbiBIZWFkZXJzICovLApA
QCAtOTI3NCw2ICs5MjkzLDcgQEAKIAkJCQkwRkVCM0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFj
cm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZDNTY4RTAxMUEyMTNFRTAwMDdG
N0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFQjEzNzU3
MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2MDAwMzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVy
QVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OEM2MzgxQjkwREUwQjAwNDJCQ0IzIC8q
IE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E0QUUwODE3
OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9m
aWxlLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJpdGhQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjaWYgRU5B
QkxFKEpJVCkKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sK
KyAgICBpZiAoIXNob3VsZEVtaXRTZXREb3VibGUoKSAmJiAhc2hvdWxkRW1pdFNldE5vbk51bWJl
cigpKQorICAgICAgICByZXR1cm47CisKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9
IGppdC5icmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBu
b3REb3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUp
OworICAgIGVtaXRTZXREb3VibGUoaml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9
IGppdC5qdW1wKCk7CisgICAgbm90RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51
bWJlcihqaXQpOworICAgIGRvbmUubGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7
Cit9CisKK2Jvb2wgQXJpdGhQcm9maWxlOjpzaG91bGRFbWl0U2V0RG91YmxlKCkgY29uc3QKK3sK
KyAgICB1aW50MzJfdCBtYXNrID0gQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgQXJpdGhQ
cm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgQXJp
dGhQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlOworICAgIHJldHVybiAobV9iaXRzICYgbWFzaykg
IT0gbWFzazsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxw
ZXJzJiBqaXQpCit7CisgICAgaWYgKHNob3VsZEVtaXRTZXREb3VibGUoKSkKKyAgICAgICAgaml0
Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJm
bG93IHwgQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJv
RG91YmxlIHwgQXJpdGhQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mQml0cygpKSk7Cit9CisKK2Jvb2wgQXJpdGhQcm9maWxl
OjpzaG91bGRFbWl0U2V0Tm9uTnVtYmVyKCkgY29uc3QKK3sKKyAgICB1aW50MzJfdCBtYXNrID0g
QXJpdGhQcm9maWxlOjpOb25OdW1iZXI7CisgICAgcmV0dXJuIChtX2JpdHMgJiBtYXNrKSAhPSBt
YXNrOworfQorCit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBl
cnMmIGppdCkKK3sKKyAgICBpZiAoc2hvdWxkRW1pdFNldE5vbk51bWJlcigpKQorICAgICAgICBq
aXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5vbk51bWJl
ciksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2Ug
V1RGIHsKKyAgICAKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBjb25zdCBBcml0aFByb2ZpbGUmIHByb2ZpbGUpCit7CisgICAgY29u
c3QgY2hhciogc2VwYXJhdG9yID0gIiI7CisKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5v
bkludDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOworICAgICAgICBzZXBhcmF0
b3IgPSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5l
Z1plcm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1pl
cm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAg
ICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRv
ciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVt
YmVyKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAg
ICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJm
bG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0
LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgaWYgKHByb2ZpbGUudG9va1NwZWNpYWxGYXN0UGF0aCgpKQor
ICAgICAgICBvdXQucHJpbnQoIiB0b29rIHNwZWNpYWwgZmFzdCBwYXRoLiIpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0
aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJpdGhQcm9maWxlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FyaXRoUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjE5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNs
dWRlICJSZXN1bHRUeXBlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3QgT2JzZXJ2ZWRUeXBl
IHsKKyAgICBPYnNlcnZlZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5KQorICAgICAgICA6
IG1fYml0cyhiaXRzKQorICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigpIGNvbnN0IHsgcmV0
dXJuIG1fYml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50MzIoKSBjb25zdCB7
IHJldHVybiBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdOdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBpc09ubHlOdW1iZXIo
KSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAgIGJvb2wgc2F3Tm9u
TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU5vbk51bWJlcjsgfQorICAgIGJv
b2wgaXNPbmx5Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5cGVOb25OdW1i
ZXI7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9iaXRzOyB9CisgICAg
dWludDhfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKKyAgICBPYnNlcnZlZFR5
cGUgd2l0aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVJ
bnQzMik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9i
c2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRo
Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVOb25O
dW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBPYnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9CisKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9i
aXRzID09IG90aGVyLm1fYml0czsgfQorCisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUVt
cHR5ID0gMHgwOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQzMiA9IDB4MTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKKyAgICBzdGF0aWMgY29u
c3QgdWludDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKworcHJpdmF0ZToKKyAgICB1aW50OF90
IG1fYml0czsKK307CisKK3N0cnVjdCBBcml0aFByb2ZpbGUgeworcHJpdmF0ZToKKyAgICBzdGF0
aWMgY29uc3QgdWludDMyX3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IHJoc1Jlc3VsdFR5cGVTaGlmdCA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9IDExOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBy
aHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE3OworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBsaHNP
YnNlcnZlZFR5cGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b202
Qml0cyA9ICgxIDw8IDYpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgYm90dG9tM0Jp
dHMgPSAoMSA8PCAzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGNsZWFyUmhzT2Jz
ZXJ2ZWRUeXBlQml0cyA9IH4oKDEgPDwgMTcpIHwgKDEgPDwgMTgpIHwgKDEgPDwgMTkpKTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRzID0gfigoMSA8
PCAyMCkgfCAoMSA8PCAyMSkgfCAoMSA8PCAyMikpOworCisgICAgc3RhdGljX2Fzc2VydChSZXN1
bHRUeXBlOjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25nIGFzc3VtcHRpb24g
aGVyZSB0aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpdHMuIik7CisKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qgc3BlY2lhbEZhc3RQYXRoQml0ID0gMSA8PCAyMzsKKworICAg
IEFyaXRoUHJvZmlsZShSZXN1bHRUeXBlIGxocywgUmVzdWx0VHlwZSByaHMpCisgICAgeworICAg
ICAgICBtX2JpdHMgPSAobGhzLmJpdHMoKSA8PCBsaHNSZXN1bHRUeXBlU2hpZnQpIHwgKHJocy5i
aXRzKCkgPDwgcmhzUmVzdWx0VHlwZVNoaWZ0KTsKKyAgICAgICAgQVNTRVJUKGxoc1Jlc3VsdFR5
cGUoKS5iaXRzKCkgPT0gbGhzLmJpdHMoKSAmJiByaHNSZXN1bHRUeXBlKCkuYml0cygpID09IHJo
cy5iaXRzKCkpOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsK
KyAgICAgICAgQVNTRVJUKHJoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7CisgICAgfQorICAg
IEFyaXRoUHJvZmlsZSgpCisgICAgeyB9CisKKyAgICBzdGF0aWMgQXJpdGhQcm9maWxlIGZyb21J
bnQodWludDMyX3QgYml0cykKKyAgICB7CisgICAgICAgIEFyaXRoUHJvZmlsZSByZXN1bHQ7Cisg
ICAgICAgIHJlc3VsdC5tX2JpdHMgPSBiaXRzOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKworICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJs
ZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAg
Tm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEg
PDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKKyAgICB9OworCisgICAg
UmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9i
aXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0KKyAgICBSZXN1bHRU
eXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4g
cmhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorCisgICAgT2JzZXJ2ZWRUeXBl
IGxoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+
IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAmIGJvdHRvbTNCaXRzKTsgfQorICAgIE9ic2VydmVkVHlw
ZSByaHNPYnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+
PiByaHNPYnNlcnZlZFR5cGVTaGlmdCkgJiBib3R0b20zQml0cyk7IH0KKyAgICB2b2lkIHNldExo
c09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90
IGJpdHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0gY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRz
OworICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8IGxoc09ic2VydmVkVHlwZVNoaWZ0Owor
ICAgICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkg
PT0gdHlwZSk7CisgICAgfQorCisgICAgdm9pZCBzZXRSaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRU
eXBlIHR5cGUpCisgICAgeyAKKyAgICAgICAgdWludDMyX3QgYml0cyA9IG1fYml0czsKKyAgICAg
ICAgYml0cyAmPSBjbGVhclJoc09ic2VydmVkVHlwZUJpdHM7CisgICAgICAgIGJpdHMgfD0gdHlw
ZS5iaXRzKCkgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAgIG1fYml0cyA9IGJpdHM7
CisgICAgICAgIEFTU0VSVChyaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsKKyAgICB9CisKKyAg
ICBib29sIHRvb2tTcGVjaWFsRmFzdFBhdGgoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBzcGVj
aWFsRmFzdFBhdGhCaXQ7IH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3Qg
eyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51
bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2Jz
ZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9E
b3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0
dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9i
c2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93
KTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVy
b0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgdm9pZCBzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQg
c2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CisgICAgdm9pZCBz
ZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQorICAg
IHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7
IH0KKworICAgIHZvaWQqIGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9iaXRzOyB9CisKKyAg
ICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBp
ZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodmFs
dWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9IEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRzIHw9IE5vbk51bWJlcjsKKyAg
ICB9CisKKyAgICB2b2lkIGxoc1Nhd0ludDMyKCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhzT2Jz
ZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCBsaHNTYXdOdW1iZXIoKSB7IHNl
dExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkpOyB9CisgICAg
dm9pZCBsaHNTYXdOb25OdW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5
cGUoKS53aXRoTm9uTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNTYXdJbnQzMigpIHsgc2V0Umhz
T2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpKTsgfQorICAgIHZvaWQg
cmhzU2F3TnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0
aE51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3Tm9uTnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZl
ZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigpKTsgfQorCisgICAgdm9pZCBv
YnNlcnZlTEhTQW5kUkhTKEpTVmFsdWUgbGhzLCBKU1ZhbHVlIHJocykKKyAgICB7CisgICAgICAg
IEFyaXRoUHJvZmlsZSBuZXdQcm9maWxlID0gKnRoaXM7CisgICAgICAgIGlmIChsaHMuaXNOdW1i
ZXIoKSkgeworICAgICAgICAgICAgaWYgKGxocy5pc0ludDMyKCkpCisgICAgICAgICAgICAgICAg
bmV3UHJvZmlsZS5saHNTYXdJbnQzMigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG5ld1Byb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgbmV3UHJvZmlsZS5saHNTYXdOb25OdW1iZXIoKTsKKworICAgICAgICBpZiAocmhzLmlzTnVt
YmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChyaHMuaXNJbnQzMigpKQorICAgICAgICAgICAgICAg
IG5ld1Byb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBuZXdQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIG5ld1Byb2ZpbGUucmhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAgbV9iaXRzID0gbmV3
UHJvZmlsZS5iaXRzKCk7CisgICAgfQorCisjaWYgRU5BQkxFKEpJVCkgICAgCisgICAgLy8gU2V0
cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVn
WmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBp
ZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRlY3ROdW1lcmljbmVzcyhD
Q2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdp
c3RlcnMpOworICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93
IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIGJvb2wgc2hvdWxkRW1p
dFNldERvdWJsZSgpIGNvbnN0OworICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMm
KTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1i
ZXIoQ0NhbGxIZWxwZXJzJik7CisgICAgYm9vbCBzaG91bGRFbWl0U2V0Tm9uTnVtYmVyKCkgY29u
c3Q7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworICAgIHVpbnQzMl90IGJpdHMoKSBjb25zdCB7
IHJldHVybiBtX2JpdHM7IH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0JpdHMoaW50IG1hc2sp
IGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIG1hc2s7IH0KKyAgICB2b2lkIHNldEJpdChpbnQgbWFz
aykgeyBtX2JpdHMgfD0gbWFzazsgfQorCisgICAgdWludDMyX3QgbV9iaXRzIHsgMCB9OyAvLyBX
ZSB0YWtlIGNhcmUgdG8gdXBkYXRlIG1fYml0cyBvbmx5IGluIGEgc2luZ2xlIG9wZXJhdGlvbi4g
V2UgZG9uJ3QgZXZlciBzdG9yZSBhbiBpbmNvbnNpc3RlbnQgYml0IHJlcHJlc2VudGF0aW9uIHRv
IGl0LgorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBXVEYgeworCit2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6OkFyaXRoUHJvZmlsZSYpOwor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAj
aW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZVVzZURlZi5o
IgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgIklubGluZUNhbGxGcmFtZS5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVkZSAiSklUTWF0aElD
LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtNzY5LDcgKzc3MSw3IEBAIHZvaWQg
Q29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKFByaW4KICAgICBvdXQucHJpbnQobmFtZSwg
cHJvZmlsZS0+bV9jb3VudGVyKTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6OmR1bXBSZXN1bHRQcm9m
aWxlKFByaW50U3RyZWFtJiBvdXQsIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wmIGhhc1By
aW50ZWRQcm9maWxpbmcpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFyaXRoUHJvZmlsZShQcmludFN0
cmVhbSYgb3V0LCBBcml0aFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxp
bmcpCiB7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICByZXR1cm47CkBAIC0xNzcwLDcgKzE3
NzIsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgIGR1bXBSYXJlQ2FzZVBy
b2ZpbGUob3V0LCAicmFyZSBjYXNlOiAiLCByYXJlQ2FzZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChsb2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHsKICAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgZHVtcFJlc3VsdFByb2ZpbGUo
b3V0LCByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBsb2NhdGlvbiksIGhh
c1ByaW50ZWRQcm9maWxpbmcpOworICAgICAgICBkdW1wQXJpdGhQcm9maWxlKG91dCwgYXJpdGhQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5nKTsK
ICAgICB9CiAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC0zMDAzLDYgKzMwMDUsMTEgQEAg
U3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZgogICAgIHJldHVybiBtX3N0
dWJJbmZvcy5hZGQoYWNjZXNzVHlwZSk7CiB9CiAKK0pJVEFkZElDKiBDb2RlQmxvY2s6OmFkZEpJ
VEFkZElDKCkKK3sKKyAgICByZXR1cm4gbV9hZGRJQ3MuYWRkKCk7Cit9CisKIFN0cnVjdHVyZVN0
dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7
CiAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBtX3N0dWJJbmZvcykgewpA
QCAtMzA0OSwxMSArMzA1Niw2IEBAIHZvaWQgQ29kZUJsb2NrOjpyZXNldEpJVERhdGEoKQogICAg
IC8vIFdlIGNhbiBjbGVhciB0aGlzIGJlY2F1c2UgdGhlIERGRydzIHF1ZXJpZXMgdG8gdGhlc2Ug
ZGF0YSBzdHJ1Y3R1cmVzIGFyZSBndWFyZGVkIGJ5IHdoZXRoZXIKICAgICAvLyB0aGVyZSBpcyBK
SVQgY29kZS4KICAgICBtX3JhcmVDYXNlUHJvZmlsZXMuY2xlYXIoKTsKLSAgICAKLSAgICAvLyBX
ZSBjYW4gY2xlYXIgdGhlc2UgYmVjYXVzZSB0aGUgREZHIG9ubHkgYWNjZXNzZXMgbWVtYmVycyBv
ZiB0aGlzIGRhdGEgc3RydWN0dXJlIHdoZW4KLSAgICAvLyBob2xkaW5nIHRoZSBsb2NrIG9yIGFm
dGVyIHF1ZXJ5aW5nIHdoZXRoZXIgd2UgaGF2ZSBKSVQgY29kZS4KLSAgICBtX3Jlc3VsdFByb2Zp
bGVzLmNsZWFyKCk7Ci0gICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFw
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCkBAIC0zMjgzLDcgKzMyODUsNiBAQCB2b2lkIENvZGVC
bG9jazo6c2hyaW5rVG9GaXQoU2hyaW5rTW9kZSBzCiAgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIobV9sb2NrKTsKIAogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwot
ICAgIG1fcmVzdWx0UHJvZmlsZXMuc2hyaW5rVG9GaXQoKTsKICAgICAKICAgICBpZiAoc2hyaW5r
TW9kZSA9PSBFYXJseVNocmluaykgewogICAgICAgICBtX2NvbnN0YW50UmVnaXN0ZXJzLnNocmlu
a1RvRml0KCk7CkBAIC00MTU5LDExICs0MTYwLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBWYWx1
ZVByb2ZpbGVzKCkKICAgICAgICAgUmFyZUNhc2VQcm9maWxlKiBwcm9maWxlID0gcmFyZUNhc2VQ
cm9maWxlKGkpOwogICAgICAgICBkYXRhTG9nRigiICAgYmMgPSAlZDogJXVcbiIsIHByb2ZpbGUt
Pm1fYnl0ZWNvZGVPZmZzZXQsIHByb2ZpbGUtPm1fY291bnRlcik7CiAgICAgfQotICAgIGRhdGFM
b2coIlJlc3VsdFByb2ZpbGUgZm9yICIsICp0aGlzLCAiOlxuIik7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bWJlck9mUmVzdWx0UHJvZmlsZXMoKTsgKytpKSB7Ci0gICAgICAgIGNv
bnN0IFJlc3VsdFByb2ZpbGUmIHByb2ZpbGUgPSAqcmVzdWx0UHJvZmlsZShpKTsKLSAgICAgICAg
ZGF0YUxvZygiICAgYmMgPSAiLCBwcm9maWxlLmJ5dGVjb2RlT2Zmc2V0KCksICI6ICIsIHByb2Zp
bGUsICJcbiIpOwotICAgIH0KIH0KICNlbmRpZiAvLyBFTkFCTEUoVkVSQk9TRV9WQUxVRV9QUk9G
SUxFKQogCkBAIC00MzY2LDU2ICs0MzYyLDU2IEBAIHVuc2lnbmVkIENvZGVCbG9jazo6cmFyZUNh
c2VQcm9maWxlQ291bnQKICAgICByZXR1cm4gMDsKIH0KIAotUmVzdWx0UHJvZmlsZSogQ29kZUJs
b2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRoUHJvZmlsZSogQ29kZUJsb2NrOjphcml0
aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiB7Ci0gICAgaWYg
KCFtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXApCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQ
cm9maWxlSW5kZXhNYXAtPmZpbmQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmIChpdGVyYXRvciA9
PSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmVuZCgpKQorICAgIGF1
dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25z
KClbYnl0ZWNvZGVPZmZzZXRdLnUub3Bjb2RlKTsKKyAgICBzd2l0Y2ggKG9wY29kZUlEKSB7Cisg
ICAgY2FzZSBvcF9iaXRvcjoKKyAgICBjYXNlIG9wX2JpdGFuZDoKKyAgICBjYXNlIG9wX2JpdHhv
cjoKKyAgICBjYXNlIG9wX2FkZDoKKyAgICBjYXNlIG9wX211bDoKKyAgICBjYXNlIG9wX3N1YjoK
KyAgICBjYXNlIG9wX2RpdjoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuICZtX3Jlc3VsdFByb2ZpbGVzW2l0ZXJhdG9yLT52
YWx1ZV07Ci19CisgICAgfQogCi11bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0Q2FzZVBy
b2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBzcGVjaWFsRmFz
dENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0
KTsKKyAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25zKClbYnl0ZWNv
ZGVPZmZzZXQgKyA0XTsKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PEFyaXRoUHJvZmlsZSo+KCZp
bnN0cnVjdGlvbi0+dS5vcGVyYW5kKTsKIH0KIAotdW5zaWduZWQgQ29kZUJsb2NrOjpzcGVjaWFs
RmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRoUHJvZmlsZSYgQ29kZUJs
b2NrOjphcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiogcGMpCiB7Ci0gICAgUmVzdWx0UHJv
ZmlsZSogcHJvZmlsZSA9IHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5
dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoIXByb2ZpbGUpCi0gICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiBwcm9maWxlLT5zcGVjaWFsRmFzdFBhdGhDb3VudCgpOworICAgIGlmICghQVNTRVJU
X0RJU0FCTEVEKSB7CisgICAgICAgIEFTU0VSVChwYyA+PSBpbnN0cnVjdGlvbnMoKS5iZWdpbigp
ICYmIHBjIDwgaW5zdHJ1Y3Rpb25zKCkuZW5kKCkpOworICAgICAgICBhdXRvIG9wY29kZUlEID0g
dm0oKS0+aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKTsKKyAgICAgICAg
c3dpdGNoIChvcGNvZGVJRCkgeworICAgICAgICBjYXNlIG9wX2JpdG9yOgorICAgICAgICBjYXNl
IG9wX2JpdGFuZDoKKyAgICAgICAgY2FzZSBvcF9iaXR4b3I6CisgICAgICAgIGNhc2Ugb3BfYWRk
OgorICAgICAgICBjYXNlIG9wX211bDoKKyAgICAgICAgY2FzZSBvcF9zdWI6CisgICAgICAgIGNh
c2Ugb3BfZGl2OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biAqYml0d2lzZV9jYXN0PEFyaXRoUHJvZmlsZSo+KCZwY1s0XS51Lm9wZXJhbmQpOwogfQogCiBi
b29sIENvZGVCbG9jazo6Y291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29kZU9mZnNl
dCkKIHsKICAgICBpZiAoIWhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdENhc2VDb3VudCA9IHNwZWNpYWxGYXN0
Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBy
ZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6Y291bGRUYWtlU2xvd0Nhc2VN
aW5pbXVtQ291bnQoKTsKLX0KLQotUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjplbnN1cmVSZXN1
bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1bHRQcm9maWxlKGxvY2tlciwg
Ynl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJl
c3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBpbnQgYnl0ZWNv
ZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IHJlc3VsdFByb2ZpbGVG
b3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoIXByb2Zp
bGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQoUmVzdWx0UHJvZmlsZShieXRl
Y29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgp
OwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgpID09ICZtX3Jlc3VsdFBy
b2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwotICAgICAgICBpZiAoIW1fYnl0
ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgICAgIG1fYnl0ZWNv
ZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNv
ZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAgICAgICAgbV9ieXRlY29kZU9m
ZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNvZGVPZmZzZXQsIG1fcmVzdWx0
UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVybiBwcm9maWxlOworICAgIEFy
aXRoUHJvZmlsZSogcHJvZmlsZSA9IGFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVj
b2RlT2Zmc2V0KTsKKyAgICBpZiAoIXByb2ZpbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gcHJvZmlsZS0+dG9va1NwZWNpYWxGYXN0UGF0aCgpOwogfQogCiAjaWYgRU5BQkxF
KEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkhhbmRs
ZXJJbmZvLmgiCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJKSVRDb2RlLmgi
CisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJKSVRXcml0ZUJhcnJp
ZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpA
QCAtNzksNiArODAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKK2Ns
YXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTTW9kdWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBM
TEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBQQ1RvQ29kZU9yaWdpbk1hcDsKQEAgLTg4LDYg
KzkwLDggQEAgY2xhc3MgVHlwZUxvY2F0aW9uOwogCiBlbnVtIGNsYXNzIEFjY2Vzc1R5cGUgOiBp
bnQ4X3Q7CiAKK3N0cnVjdCBBcml0aFByb2ZpbGU7CisKIHR5cGVkZWYgSGFzaE1hcDxDb2RlT3Jp
Z2luLCBTdHJ1Y3R1cmVTdHViSW5mbyosIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IFN0dWJJ
bmZvTWFwOwogCiBlbnVtIFJlb3B0aW1pemF0aW9uTW9kZSB7IERvbnRDb3VudFJlb3B0aW1pemF0
aW9uLCBDb3VudFJlb3B0aW1pemF0aW9uIH07CkBAIC0yNDUsNiArMjQ5LDcgQEAgcHVibGljOgog
ICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZv
KEFjY2Vzc1R5cGUpOworICAgIEpJVEFkZElDKiBhZGRKSVRBZGRJQygpOwogICAgIEJhZzxTdHJ1
Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvQmVnaW4oKSB7IHJldHVybiBtX3N0dWJJ
bmZvcy5iZWdpbigpOyB9CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1
YkluZm9FbmQoKSB7IHJldHVybiBtX3N0dWJJbmZvcy5lbmQoKTsgfQogICAgIApAQCAtNDQwLDEz
ICs0NDUsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB2YWx1ZSA+PSBPcHRpb25zOjpjb3Vs
ZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpOwogICAgIH0KIAotICAgIFJlc3VsdFByb2ZpbGUq
IGVuc3VyZVJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBSZXN1bHRQcm9m
aWxlKiBlbnN1cmVSZXN1bHRQcm9maWxlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQg
Ynl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIG51bWJlck9mUmVzdWx0UHJvZmlsZXMoKSB7
IHJldHVybiBtX3Jlc3VsdFByb2ZpbGVzLnNpemUoKTsgfQotICAgIFJlc3VsdFByb2ZpbGUqIHJl
c3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
aW50IGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2Zp
bGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQg
Ynl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3Vu
dEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpOworICAg
IEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlRm9yUEMoSW5zdHJ1Y3Rpb24qKTsKIAogICAgIGJv
b2wgY291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29kZU9mZnNldCk7CiAKQEAgLTk1
Nyw3ICs5NTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcFZhbHVlUHJvZmlsaW5nKFByaW50
U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7
CiAgICAgdm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVj
dGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICB2b2lkIGR1bXBSYXJlQ2Fz
ZVByb2ZpbGUoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKiBuYW1lLCBSYXJlQ2FzZVByb2ZpbGUq
LCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKLSAgICB2b2lkIGR1bXBSZXN1bHRQcm9maWxl
KFByaW50U3RyZWFtJiwgUmVzdWx0UHJvZmlsZSosIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcp
OworICAgIHZvaWQgZHVtcEFyaXRoUHJvZmlsZShQcmludFN0cmVhbSYsIEFyaXRoUHJvZmlsZSos
IGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogCiAgICAgYm9vbCBzaG91bGRWaXNpdFN0cm9u
Z2x5KCk7CiAgICAgYm9vbCBzaG91bGRKZXR0aXNvbkR1ZVRvV2Vha1JlZmVyZW5jZSgpOwpAQCAt
MTAxMyw2ICsxMDEzLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSklUKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZWdpc3RlckF0T2Zmc2V0TGlzdD4gbV9jYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAg
IEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7CisgICAgQmFnPEpJVEFkZElDPiBt
X2FkZElDczsKICAgICBCYWc8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7CiAgICAgQmFnPENhbGxM
aW5rSW5mbz4gbV9jYWxsTGlua0luZm9zOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxDYWxsTGlu
a0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdDYWxs
czsKQEAgLTEwMjksOSArMTAzMCw2IEBAIHByaXZhdGU6CiAgICAgUmVmQ291bnRlZEFycmF5PFZh
bHVlUHJvZmlsZT4gbV9hcmd1bWVudFZhbHVlUHJvZmlsZXM7CiAgICAgUmVmQ291bnRlZEFycmF5
PFZhbHVlUHJvZmlsZT4gbV92YWx1ZVByb2ZpbGVzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxSYXJl
Q2FzZVByb2ZpbGUsIDg+IG1fcmFyZUNhc2VQcm9maWxlczsKLSAgICBTZWdtZW50ZWRWZWN0b3I8
UmVzdWx0UHJvZmlsZSwgOD4gbV9yZXN1bHRQcm9maWxlczsKLSAgICB0eXBlZGVmIEhhc2hNYXA8
dW5zaWduZWQsIHVuc2lnbmVkLCBJbnRIYXNoPHVuc2lnbmVkPiwgV1RGOjpVbnNpZ25lZFdpdGha
ZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IEJ5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxl
SW5kZXhNYXA7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9m
aWxlSW5kZXhNYXA+IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcDsKICAg
ICBSZWZDb3VudGVkQXJyYXk8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZT4gbV9hcnJheUFsbG9jYXRp
b25Qcm9maWxlczsKICAgICBBcnJheVByb2ZpbGVWZWN0b3IgbV9hcnJheVByb2ZpbGVzOwogICAg
IFJlZkNvdW50ZWRBcnJheTxPYmplY3RBbGxvY2F0aW9uUHJvZmlsZT4gbV9vYmplY3RBbGxvY2F0
aW9uUHJvZmlsZXM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lv
biAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgpAQCAtNjUsOCArNjYsOCBAQCB2b2lkIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGU6OmVtaXRSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIAotICAgIGNhc2Ug
UmVzdWx0UHJvZmlsZVJlYWR5OiB7Ci0gICAgICAgIHUucmVzdWx0UHJvZmlsZS0+ZW1pdERldGVj
dE51bWVyaWNuZXNzKGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICBjYXNl
IEFyaXRoUHJvZmlsZVJlYWR5OiB7CisgICAgICAgIHUuYXJpdGhQcm9maWxlLT5lbWl0RGV0ZWN0
TnVtZXJpY25lc3Moaml0LCByZWdzLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfSB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHJl
dmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBDb2RlQmxvY2s7CiBj
bGFzcyBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleTsKLXN0cnVjdCBSZXN1bHRQcm9maWxlOwor
c3RydWN0IEFyaXRoUHJvZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgewpAQCAtNTksMTEgKzU5LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQogICAgIAotICAgIE1ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGUoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlKEFyaXRoUHJvZmlsZSogcHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlm
IChwcm9maWxlKSB7Ci0gICAgICAgICAgICBtX2tpbmQgPSBSZXN1bHRQcm9maWxlUmVhZHk7Ci0g
ICAgICAgICAgICB1LnJlc3VsdFByb2ZpbGUgPSBwcm9maWxlOworICAgICAgICAgICAgbV9raW5k
ID0gQXJpdGhQcm9maWxlUmVhZHk7CisgICAgICAgICAgICB1LmFyaXRoUHJvZmlsZSA9IHByb2Zp
bGU7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9raW5kID0gTm9uZTsKICAgICB9CkBA
IC03OSwxNCArNzksMTQgQEAgcHJpdmF0ZToKICAgICBlbnVtIEtpbmQgewogICAgICAgICBOb25l
LAogICAgICAgICBSZWFkeSwKLSAgICAgICAgUmVzdWx0UHJvZmlsZVJlYWR5LAorICAgICAgICBB
cml0aFByb2ZpbGVSZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAg
IEtpbmQgbV9raW5kOwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxl
OwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOworICAgICAgICBBcml0aFBy
b2ZpbGUqIGFyaXRoUHJvZmlsZTsKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIENvZGVC
bG9jayogY29kZUJsb2NrOwogICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNw
cAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zh
bHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcwICszMSw0IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi0jaWYgRU5BQkxFKEpJVCkKLXZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERl
dGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdS
ZWdpc3RlcnNNb2RlIG1vZGUpCi17Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzSW50MzIgPSBq
aXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90
RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihyZWdzLCBtb2RlKTsK
LSAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9yZSBwcmVjaXNlIGhlcmUuCi0gICAgZW1pdFNl
dERvdWJsZShqaXQpOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsK
LSAgICBub3REb3VibGUubGluaygmaml0KTsKLSAgICBlbWl0U2V0Tm9uTnVtYmVyKGppdCk7Ci0g
ICAgZG9uZS5saW5rKCZqaXQpOwotICAgIGlzSW50MzIubGluaygmaml0KTsKLX0KLQotdm9pZCBS
ZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVscGVycyYgaml0KQotewotICAgIGpp
dC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6OkludDMyT3Zl
cmZsb3cgfCBSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgUmVzdWx0UHJvZmlsZTo6TmVn
WmVyb0RvdWJsZSB8IFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBl
cnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7Ci19Ci0KLXZvaWQgUmVzdWx0
UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQu
b3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OdW1iZXIp
LCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7Ci19Ci0j
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQogfSAvLyBuYW1lc3BhY2UgSlNDCi0KLW5hbWVzcGFjZSBX
VEYgewotICAgIAotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIGNvbnN0IFJlc3VsdFByb2ZpbGUmIHByb2ZpbGUpCi17Ci0gICAgY29u
c3QgY2hhciogc2VwYXJhdG9yID0gIiI7Ci0KLSAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5v
bkludDMyKCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwotICAgICAgICBzZXBhcmF0
b3IgPSAifCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5l
Z1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1pl
cm9Eb3VibGUiKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7Ci0gICAgICAg
ICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKLSAgICAgICAgICAgIHNlcGFyYXRv
ciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVt
YmVyKCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgICAg
ICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJm
bG93Iik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgewotICAgICAgICAgICAgb3V0
LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkg
ewotICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7Ci0gICAgICAgIG91
dC5wcmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwotICAgIH0KLX0KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw4OCArMjA5
LDYgQEAgaW5saW5lIGludCBnZXRSYXJlQ2FzZVByb2ZpbGVCeXRlY29kZU9mZgogICAgIHJldHVy
biByYXJlQ2FzZVByb2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQ7CiB9CiAKLXN0cnVjdCBSZXN1bHRQ
cm9maWxlIHsKLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IGludCBudW1iZXJPZkZsYWdCaXRz
ID0gNTsKLQotcHVibGljOgotICAgIFJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KQot
ICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyhieXRlY29kZU9mZnNldCA8PCBudW1i
ZXJPZkZsYWdCaXRzKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCgoYnl0ZWNvZGVPZmZzZXQgPDwg
bnVtYmVyT2ZGbGFnQml0cykgPj4gbnVtYmVyT2ZGbGFnQml0cykgPT0gYnl0ZWNvZGVPZmZzZXQp
OwotICAgIH0KLQotICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTm9uTmVnWmVy
b0RvdWJsZSA9IDEgPDwgMCwKLSAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKLSAg
ICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50MzJPdmVyZmxvdyAg
ICA9IDEgPDwgMywKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKLSAgICB9Owot
Ci0gICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNl
dEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7IH0KLSAgICB1bnNpZ25lZCBzcGVjaWFsRmFz
dFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KLQot
ICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJlcik7IH0KLSAgICBib29sIGRp
ZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUo
KSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBk
aWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0Rv
dWJsZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKE5vbk51bWJlcik7IH0KLSAgICBib29sIGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsgfQotICAgIGJvb2wgZGlkT2Jz
ZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cp
OyB9Ci0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5v
bk5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7
IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIo
KSB7IHNldEJpdChOb25OdW1iZXIpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZs
b3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1
Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7IH0KLQotICAgIHZvaWQqIGFkZHJl
c3NPZkZsYWdzKCkgeyByZXR1cm4gJm1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFnczsgfQotICAgIHZv
aWQqIGFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkgeyByZXR1cm4gJm1fc3BlY2lhbEZh
c3RQYXRoQ291bnQ7IH0KLSAgICAKLSAgICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUg
dmFsdWUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgbV9i
eXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwg
Tm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IE5vbk51bWJlcjsK
LSAgICB9Ci0KLSNpZiBFTkFCTEUoSklUKSAgICAKLSAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93
IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKSBpZiBp
dCBzZWVzIGEKLSAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNlZXMgYSBub24t
bnVtYmVyLgotICAgIHZvaWQgZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYsIEpT
VmFsdWVSZWdzLCBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgCi0g
ICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91
YmxlIHwgTmVnWmVyb0RvdWJsZSkuCi0gICAgdm9pZCBlbWl0U2V0RG91YmxlKENDYWxsSGVscGVy
cyYpOwotICAgIAotICAgIC8vIFNldHMgTm9uTnVtYmVyLgotICAgIHZvaWQgZW1pdFNldE5vbk51
bWJlcihDQ2FsbEhlbHBlcnMmKTsKLSNlbmRpZiAvLyBFTkFCTEUoSklUKQotCi1wcml2YXRlOgot
ICAgIGJvb2wgaGFzQml0cyhpbnQgbWFzaykgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNl
dEFuZEZsYWdzICYgbWFzazsgfQotICAgIHZvaWQgc2V0Qml0KGludCBtYXNrKSB7IG1fYnl0ZWNv
ZGVPZmZzZXRBbmRGbGFncyB8PSBtYXNrOyB9Ci0KLSAgICBpbnQgbV9ieXRlY29kZU9mZnNldEFu
ZEZsYWdzOwotICAgIHVuc2lnbmVkIG1fc3BlY2lhbEZhc3RQYXRoQ291bnQgeyAwIH07Ci19Owot
Ci1pbmxpbmUgaW50IGdldFJlc3VsdFByb2ZpbGVCeXRlY29kZU9mZnNldChSZXN1bHRQcm9maWxl
KiBwcm9maWxlKQotewotICAgIHJldHVybiBwcm9maWxlLT5ieXRlY29kZU9mZnNldCgpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotbmFtZXNwYWNlIFdURiB7Ci0KLXZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYsIGNvbnN0IEpTQzo6UmVzdWx0UHJvZmlsZSYpOwotCi19IC8vIG5h
bWVzcGFjZSBXVEYKLQogI2VuZGlmIC8vIFZhbHVlUHJvZmlsZV9oCi0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgi
CiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJs
ZXMuaCIKICNpbmNsdWRlICJCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMuaCIKICNpbmNsdWRlICJJ
bnRlcnByZXRlci5oIgpAQCAtMTYwMCw3ICsxNjAxLDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRCaW5hcgogCiAgICAgaWYgKG9wY29kZUlEID09IG9wX2JpdG9yIHx8IG9w
Y29kZUlEID09IG9wX2JpdGFuZCB8fCBvcGNvZGVJRCA9PSBvcF9iaXR4b3IgfHwKICAgICAgICAg
b3Bjb2RlSUQgPT0gb3BfYWRkIHx8IG9wY29kZUlEID09IG9wX211bCB8fCBvcGNvZGVJRCA9PSBv
cF9zdWIgfHwgb3Bjb2RlSUQgPT0gb3BfZGl2KQotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQodHlwZXMudG9JbnQoKSk7CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChBcml0aFBy
b2ZpbGUodHlwZXMuZmlyc3QoKSwgdHlwZXMuc2Vjb25kKCkpLmJpdHMoKSk7CiAKICAgICByZXR1
cm4gZHN0OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgog
I2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRp
b24uaCIKICNpbmNsdWRlICJDYWxsTGlua1N0YXR1cy5oIgpAQCAtOTE0LDI5ICs5MTUsMjggQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBub2RlOwogCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmls
ZWRCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2Zp
bGUgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChsb2NrZXIsIG1fY3VycmVudEluZGV4KTsKLSAgICAgICAgICAgIGlmIChy
ZXN1bHRQcm9maWxlKSB7CisgICAgICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9
IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+YXJpdGhQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZSkg
ewogICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewogICAgICAgICAgICAgICAg
IGNhc2UgQXJpdGhBZGQ6CiAgICAgICAgICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAgICAg
ICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJv
ZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQ
cm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
LT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJl
c3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpCisgICAgICAgICAgICAgICAg
ICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDUyKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQzMk92
ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQ
cm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJ
bkJhc2VsaW5lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSB8fCBtX2lu
bGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBO
ZWdhdGl2ZVplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhO
b2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJp
dGhQcm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJl
clJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAyMDM0
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU0OCw5ICsxNTQ4LDggQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBH
cmFwaDo6bWV0aAogICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmls
ZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsK
ICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7CiAgICAgICAgICAgICBpZiAocHJvZmlsZWRCbG9j
ay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewotICAgICAgICAgICAgICAgIGlmIChSZXN1
bHRQcm9maWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobG9ja2VyLCBub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCkpCisg
ICAgICAgICAgICAgICAgaWYgKEFyaXRoUHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVj
b2RlSW5kZXgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAg
ICAgfQogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
bXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNCw3ICs2MDQsNyBA
QCB2b2lkIEpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjaygpCiAgICAgSGFuZGxlckluZm8qIGV4
Y2VwdGlvbkhhbmRsZXI7CiAgICAgYm9vbCB3aWxsQ2F0Y2hFeGNlcHRpb24gPSBtX2dyYXBoLndp
bGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG1fc3BlY3VsYXRpdmUtPm1fY3VycmVudE5v
ZGUtPm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyKTsgCiAg
ICAgaWYgKHdpbGxDYXRjaEV4Y2VwdGlvbikgewotICAgICAgICB1bnNpZ25lZCBzdHJlYW1JbmRl
eCA9IG1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggIT0gVUlOVF9NQVggPyBt
X3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4IDogbV9zcGVjdWxhdGl2ZS0+bV9z
dHJlYW0tPnNpemUoKTsKKyAgICAgICAgdW5zaWduZWQgc3RyZWFtSW5kZXggPSBtX3NwZWN1bGF0
aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4ID8gKm1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5l
U3RyZWFtSW5kZXggOiBtX3NwZWN1bGF0aXZlLT5tX3N0cmVhbS0+c2l6ZSgpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBoYWRFeGNlcHRpb24gPSBlbWl0Tm9uUGF0Y2hhYmxlRXhjZXB0
aW9uQ2hlY2soKTsKICAgICAgICAgLy8gV2UgYXNzdW1lIGhlcmUgdGhhdCB0aGlzIGlzIGNhbGxl
ZCBhZnRlciBjYWxsT3BlYXJ0aW9uKCkvYXBwZW5kQ2FsbCgpIGlzIGNhbGxlZC4KICAgICAgICAg
YXBwZW5kRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0KEV4Y2VwdGlvbkNoZWNrLCBzdHJlYW1JbmRl
eCwgb3BDYXRjaE9yaWdpbiwgZXhjZXB0aW9uSGFuZGxlciwgbV9qaXRDb2RlLT5jb21tb24ubGFz
dENhbGxTaXRlKCksIGhhZEV4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDM0NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBqaXQtPm1fb3V0T2ZMaW5l
U3RyZWFtSW5kZXggPSBtX3N0cmVhbUluZGV4OwogICAgICAgICBqaXQtPm1fb3JpZ2luID0gbV9v
cmlnaW47CiAgICAgICAgIGdlbmVyYXRlSW50ZXJuYWwoaml0KTsKLSAgICAgICAgaml0LT5tX291
dE9mTGluZVN0cmVhbUluZGV4ID0gVUlOVF9NQVg7CisgICAgICAgIGppdC0+bV9vdXRPZkxpbmVT
dHJlYW1JbmRleCA9IE51bGxvcHQ7CiAgICAgICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKQogICAg
ICAgICAgICAgaml0LT5tX2ppdC5hYm9ydFdpdGhSZWFzb24oREZHU2xvd1BhdGhHZW5lcmF0b3JG
ZWxsVGhyb3VnaCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSklUQml0WG9yR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SklURGl2R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmgiCisj
aW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklUTXVsR2VuZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSklUUmlnaHRTaGlmdEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRv
ci5oIgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIldyaXRlQmFycmll
ckJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC0zNjIsNyArMzY0LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0bwogCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbGFt
YmRhKQogewotICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihsYW1i
ZGEsIG1fY3VycmVudE5vZGUpKTsKKyAgICBtX3Nsb3dQYXRoTGFtYmRhcy5hcHBlbmQoU2xvd1Bh
dGhMYW1iZGF7IGxhbWJkYSwgbV9jdXJyZW50Tm9kZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1f
c3RyZWFtLT5zaXplKCkpIH0pOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpydW5TbG93UGF0
aEdlbmVyYXRvcnMoUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyJiBwY1RvQ29kZU9yaWdpbk1hcEJ1
aWxkZXIpCkBAIC0zNzEsMTEgKzM3MywxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpydW5TbG93
UGF0aEdlbmVyYXRvCiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5hcHBlbmRJdGVt
KG1faml0LmxhYmVsKCksIHNsb3dQYXRoR2VuZXJhdG9yLT5vcmlnaW4oKS5zZW1hbnRpYyk7CiAg
ICAgICAgIHNsb3dQYXRoR2VuZXJhdG9yLT5nZW5lcmF0ZSh0aGlzKTsKICAgICB9Ci0gICAgZm9y
IChhdXRvJiBnZW5lcmF0b3JQYWlyIDogbV9zbG93UGF0aExhbWJkYXMpIHsKLSAgICAgICAgTm9k
ZSogY3VycmVudE5vZGUgPSBnZW5lcmF0b3JQYWlyLnNlY29uZDsKKyAgICBmb3IgKGF1dG8mIHNs
b3dQYXRoTGFtYmRhIDogbV9zbG93UGF0aExhbWJkYXMpIHsKKyAgICAgICAgTm9kZSogY3VycmVu
dE5vZGUgPSBzbG93UGF0aExhbWJkYS5jdXJyZW50Tm9kZTsKICAgICAgICAgbV9jdXJyZW50Tm9k
ZSA9IGN1cnJlbnROb2RlOworICAgICAgICBtX291dE9mTGluZVN0cmVhbUluZGV4ID0gc2xvd1Bh
dGhMYW1iZGEuc3RyZWFtSW5kZXg7CiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5h
cHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGN1cnJlbnROb2RlLT5vcmlnaW4uc2VtYW50aWMpOwot
ICAgICAgICBnZW5lcmF0b3JQYWlyLmZpcnN0KCk7CisgICAgICAgIHNsb3dQYXRoTGFtYmRhLmdl
bmVyYXRvcigpOworICAgICAgICBtX291dE9mTGluZVN0cmVhbUluZGV4ID0gTnVsbG9wdDsKICAg
ICB9CiB9CiAKQEAgLTMzNzksMzEgKzMzODMsNjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVZhbHVlQWRkKE5vZAogICAgICAgICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1ZVJlZ3Mo
KTsKICAgICB9CiAKLSAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9w
ZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGxlZnRGUFIs
IHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aChtX2ppdCk7CisgICAgSklUQWRkSUMqIGFkZElDID0gbV9qaXQuY29kZUJsb2NrKCktPmFk
ZEpJVEFkZElDKCk7CisgICAgQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT4gYWRkSUNHZW5lcmF0
aW9uU3RhdGUgPSBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPjo6Y3JlYXRlKCk7CisgICAgQXJp
dGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtX2ppdC5ncmFwaCgpLmJhc2VsaW5lQ29kZUJsb2Nr
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKKyAgICBhZGRJQy0+bV9nZW5l
cmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgbGVmdEZQUiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIs
IHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CisKKyAgICBib29sIGdlbmVyYXRlZElubGluZSA9
IGFkZElDLT5nZW5lcmF0ZUlubGluZShtX2ppdCwgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKwor
ICAgIGlmIChnZW5lcmF0ZWRJbmxpbmUpIHsKKyAgICAgICAgQVNTRVJUKCFhZGRJQ0dlbmVyYXRp
b25TdGF0ZS0+c2xvd1BhdGhKdW1wcy5lbXB0eSgpKTsKKworICAgICAgICBWZWN0b3I8U2lsZW50
UmVnaXN0ZXJTYXZlUGxhbiwgND4gc2F2ZVBsYW5zOworICAgICAgICBzaWxlbnRTcGlsbEFsbFJl
Z2lzdGVyc0ltcGwoZmFsc2UsIHNhdmVQbGFucywgcmVzdWx0UmVncyk7CisKKyAgICAgICAgYXV0
byBkb25lID0gbV9qaXQubGFiZWwoKTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihb
PV0gKCkgeworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVtcHMu
bGluaygmbV9qaXQpOworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRo
U3RhcnQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAgICBzaWxlbnRTcGlsbChzYXZlUGxh
bnMpOworCisgICAgICAgICAgICBhdXRvIGlubmVyTGVmdFJlZ3MgPSBsZWZ0UmVnczsKKyAgICAg
ICAgICAgIGF1dG8gaW5uZXJSaWdodFJlZ3MgPSByaWdodFJlZ3M7CisgICAgICAgICAgICBpZiAo
bGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICAgICAgaW5uZXJMZWZ0UmVncyA9
IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+
YXNKU1ZhbHVlKCksIGlubmVyTGVmdFJlZ3MpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyaWdo
dE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICAgICAgaW5uZXJSaWdodFJlZ3MgPSBy
ZXN1bHRSZWdzOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmVWYWx1ZShyaWdodENoaWxkLT5h
c0pTVmFsdWUoKSwgaW5uZXJSaWdodFJlZ3MpOworICAgICAgICAgICAgfQogCi0gICAgQVNTRVJU
KGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7Ci0gICAgZ2VuLmVuZEp1bXBMaXN0KCkuYXBwZW5kKG1f
aml0Lmp1bXAoKSk7CisgICAgICAgICAgICBpZiAoYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNob3Vs
ZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+
c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCBy
ZXN1bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgYWRkSUMpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0
aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkLCByZXN1bHRSZWdzLCBpbm5l
ckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncyk7CiAKLSAgICBnZW4uc2xvd1BhdGhKdW1wTGlzdCgp
LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIHNpbGVudEZpbGwoc2F2ZVBsYW5zKTsKKyAgICAg
ICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICBtX2ppdC5qdW1wKCku
bGlua1RvKGRvbmUsICZtX2ppdCk7CiAKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1
bHRSZWdzKTsKKyAgICAgICAgICAgIG1faml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYg
bGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUo
KmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgp
KSB7CisgICAgICAgICAgICBsZWZ0ID0gSlNWYWx1ZU9wZXJhbmQodGhpcywgbGVmdENoaWxkKTsK
KyAgICAgICAgICAgIGxlZnRSZWdzID0gbGVmdC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgfSBl
bHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICByaWdodCA9IEpT
VmFsdWVPcGVyYW5kKHRoaXMsIHJpZ2h0Q2hpbGQpOworICAgICAgICAgICAgcmlnaHRSZWdzID0g
cmlnaHQtPmpzVmFsdWVSZWdzKCk7CisgICAgICAgIH0KIAotICAgIGlmIChsZWZ0T3BlcmFuZC5p
c0NvbnN0KCkpIHsKLSAgICAgICAgbGVmdFJlZ3MgPSByZXN1bHRSZWdzOwotICAgICAgICBtX2pp
dC5tb3ZlVmFsdWUobGVmdENoaWxkLT5hc0pTVmFsdWUoKSwgbGVmdFJlZ3MpOwotICAgIH0gZWxz
ZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkgewotICAgICAgICByaWdodFJlZ3MgPSByZXN1
bHRSZWdzOwotICAgICAgICBtX2ppdC5tb3ZlVmFsdWUocmlnaHRDaGlsZC0+YXNKU1ZhbHVlKCks
IHJpZ2h0UmVncyk7CisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Mp
OworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgIH0KIAotICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Mp
OwotCi0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKLSAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOwotCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmbV9qaXQpOwog
ICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0dXJuOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2
aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODgsMTMgKzM4OCwxNSBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMsIElu
dmFsaWRHUFJSZWcsIEludmFsaWRHUFJSZWcsIGV4Y2x1ZGUpOwogICAgIH0KLSNpZiBVU0UoSlNW
QUxVRTMyXzY0KQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgogICAgIHZv
aWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGJvb2wgZG9TcGlsbCwgQ29sbGVjdGlvblR5
cGUmIHBsYW5zLCBKU1ZhbHVlUmVncyBleGNsdWRlKQogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMs
IGV4Y2x1ZGUudGFnR1BSKCksIGV4Y2x1ZGUucGF5bG9hZEdQUigpKTsKLSAgICB9CisjZWxzZQor
ICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMsIGV4Y2x1
ZGUuZ3ByKCkpOwogI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2lsZW50U3BpbGxBbGxS
ZWdpc3RlcnMoR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBleGNsdWRlMiA9IEludmFsaWRHUFJSZWcs
IEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJlZykKICAgICB7CkBAIC0xMjg1LDYgKzEy
ODcsMTMgQEAgcHVibGljOgogCiAKICNpZiBVU0UoSlNWQUxVRTY0KQorCisgICAgSklUQ29tcGls
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9wZXJhdGlvbiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBK
SVRBZGRJQyogYWRkSUMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOwor
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5ncHIo
KSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJl
ZyBhcmcyLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIodWlkKSk7
CkBAIC0xNzAyLDYgKzE3MTEsMTIgQEAgcHVibGljOgogICAgIH0KICNlbHNlIC8vIFVTRShKU1ZB
TFVFMzJfNjQpCiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdz
IGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBh
cmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIu
dGFnR1BSKCksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENh
bGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BS
KCkpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQ
YXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRh
ZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlf
QVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZElt
bVB0cih1aWQpKTsKQEAgLTI4MzEsOSArMjg0NiwxNCBAQCBwdWJsaWM6CiAgICAgTWluaWZpZWRH
cmFwaCogbV9taW5pZmllZEdyYXBoOwogICAgIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
U2xvd1BhdGhHZW5lcmF0b3I+LCA4PiBtX3Nsb3dQYXRoR2VuZXJhdG9yczsKLSAgICBWZWN0b3I8
c3RkOjpwYWlyPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgTm9kZSo+LCA4PiBtX3Nsb3dQYXRoTGFt
YmRhczsKKyAgICBzdHJ1Y3QgU2xvd1BhdGhMYW1iZGEgeworICAgICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZ2VuZXJhdG9yOworICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZTsKKyAgICAgICAg
dW5zaWduZWQgc3RyZWFtSW5kZXg7CisgICAgfTsKKyAgICBWZWN0b3I8U2xvd1BhdGhMYW1iZGE+
IG1fc2xvd1BhdGhMYW1iZGFzOwogICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBt
X3BsYW5zOwotICAgIHVuc2lnbmVkIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggeyBVSU5UX01BWCB9
OworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX291dE9mTGluZVN0cmVhbUluZGV4OwogfTsKIAog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJK
SVREaXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIgog
I2luY2x1ZGUgIkpJVExlZnRTaGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5o
IgogI2luY2x1ZGUgIkpJVE11bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFJpZ2h0U2hpZnRH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKQEAgLTE1MzgsNyArMTUz
OSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAgIHsK
LSAgICAgICAgZW1pdEJpbmFyeVNuaXBwZXQ8SklUQWRkR2VuZXJhdG9yPihvcGVyYXRpb25WYWx1
ZUFkZCk7CisgICAgICAgIGVtaXRBZGRTbmlwcGV0KCk7CiAgICAgfQogICAgIAogICAgIHZvaWQg
Y29tcGlsZVN0ckNhdCgpCkBAIC04MTUwLDYgKzgxNTEsNzYgQEAgcHJpdmF0ZToKICAgICAgICAg
c2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKICAgICB9CiAKKyAgICB2b2lkIGVtaXRBZGRTbmlwcGV0
KCkKKyAgICB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7CisgICAgICAgIAorICAgICAg
ICBMVmFsdWUgbGVmdCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFs
dWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMigpKTsKKworICAgICAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnJlc3Vs
dFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZChtX3N0YXRlLmZv
ck5vZGUobm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgICAgICAKKyAgICAg
ICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7
CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihsZWZ0KTsKKyAgICAgICAg
cGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKHJpZ2h0KTsKKyAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnTWFza1Jl
Z2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZh
bHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAg
ICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KKyAg
ICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKKyAg
ICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gMTsKKyAgICAgICAgcGF0
Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gMjsKKyAgICAgICAgcGF0Y2hwb2ludC0+
Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOworICAgICAgICBT
dGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAorICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2Ny
YXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgICAgICBC
b3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9ucyA9CisgICAgICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3JlYXRpb24ocGFyYW1zKS0+anVtcHMo
aml0KTsKKworICAgICAgICAgICAgICAgIEpJVEFkZElDKiBhZGRJQyA9IGppdC5jb2RlQmxvY2so
KS0+YWRkSklUQWRkSUMoKTsKKyAgICAgICAgICAgICAgICBCb3g8TWF0aElDR2VuZXJhdGlvblN0
YXRlPiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+Ojpj
cmVhdGUoKTsKKyAgICAgICAgICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IHN0
YXRlLT5ncmFwaC5iYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5h
cml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNv
ZGVJbmRleCk7CisgICAgICAgICAgICAgICAgYWRkSUMtPm1fZ2VuZXJhdG9yID0gSklUQWRkR2Vu
ZXJhdG9yKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5ncHIoKSks
IEpTVmFsdWVSZWdzKHBhcmFtc1syXS5ncHIoKSksIHBhcmFtcy5mcFNjcmF0Y2goMCksCisgICAg
ICAgICAgICAgICAgICAgIHBhcmFtcy5mcFNjcmF0Y2goMSksIHBhcmFtcy5ncFNjcmF0Y2goMCks
IEludmFsaWRGUFJSZWcsIGFyaXRoUHJvZmlsZSk7CisKKyAgICAgICAgICAgICAgICBib29sIGdl
bmVyYXRlZElubGluZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZShqaXQsICphZGRJQ0dlbmVyYXRp
b25TdGF0ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkSW5saW5lKSB7CisgICAg
ICAgICAgICAgICAgICAgIEFTU0VSVCghYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVt
cHMuZW1wdHkoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5sYWJlbCgp
OworICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdp
c3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRk
SUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVtcHMubGluaygmaml0KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aFN0YXJ0ID0gaml0Lmxh
YmVsKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+c2hvdWxkU2xvd1BhdGhSZXBhdGNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2xvd1BhdGhDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKCpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxh
YmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGNlcHRpb25zLmdl
dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25WYWx1ZUFkZE9w
dGltaXplLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigp
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhDYWxsID0gY2FsbC5jYWxs
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFt
cy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9u
VmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3By
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5z
bG93UGF0aENhbGwgPSBjYWxsLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZqaXQpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBs
aW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFsaXpl
SW5saW5lQ29kZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAg
ICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBq
aXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9wZXJhdGlvblZhbHVlQWRkLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sx
XS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOworICAgIH0KKwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEJpbmFyeUJpdE9wR2VuZXJhdG9yPgogICAgIHZvaWQgZW1pdEJpbmFy
eUJpdE9wU25pcHBldChKX0pJVE9wZXJhdGlvbl9FSkogc2xvd1BhdGhGdW5jdGlvbikKICAgICB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlzaW9u
IDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTgyNiw2ICs4MjYsMTggQEAgcHVibGljOgogICAgICAgICBhZGRDYWxs
QXJndW1lbnQoYXJnNik7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1LCBUcnVzdGVkSW1tUHRyIGFyZzYpCisg
ICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3Vt
ZW50KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50
KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmczKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzQpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnNSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsKKyAg
ICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJS
ZWcgYXJnNSwgR1BSUmVnIGFyZzYsIFRydXN0ZWRJbW1QdHIgYXJnNykKICAgICB7CiAgICAgICAg
IHJlc2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtMTU5NCw2ICsxNjA2LDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwogICAg
IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIFRydXN0
ZWRJbW1QdHIgYXJnNSwgVHJ1c3RlZEltbVB0ciBhcmc2KQorICAgIHsKKyAgICAgICAgcG9rZShh
cmc2LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDIpOworICAgICAgICBwb2tlKGFyZzUsIFBPS0Vf
QVJHVU1FTlRfT0ZGU0VUICsgMSk7CisgICAgICAgIHBva2UoYXJnNCwgUE9LRV9BUkdVTUVOVF9P
RkZTRVQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwg
YXJnMyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcg
YXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1KQogICAgIHsKICAgICAgICAgcG9rZShhcmc1LCBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIDEpOwpAQCAtMjA5OSw2ICsyMTE5LDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBU
cnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyPihhcmcxLCBhcmcyKTsK
KyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtb3Zl
KGFyZzQsIEdQUkluZm86OmFyZ3VtZW50R1BSNCk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwg
VHJ1c3RlZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJl
ZyBhcmc1KQogICAgIHsKICAgICAgICAgc2V0dXBUaHJlZVN0dWJBcmdzR1BSPEdQUkluZm86OmFy
Z3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFI0LCBHUFJJbmZvOjphcmd1bWVudEdQUjU+
KGFyZzEsIGFyZzQsIGFyZzUpOwpAQCAtMjIwNyw2ICsyMjM1LDE1IEBAIHB1YmxpYzoKICAgICB9
CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1Zh
bHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5n
cHIoKSk7CisjZWxzZQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8z
MkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5
bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFy
ZzIsIFRydXN0ZWRJbW1QdHIgYXJnMykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIy
MTUsNiArMjI1MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIo
KSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOwogI2VuZGlmCiAgICAg
fQorCisgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1ZVJlZ3MgYXJn
MSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVkSW1tUHRyIGFy
ZzQpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczLCBhcmc0KTsKKyNlbHNlCisg
ICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBh
cmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIu
dGFnR1BSKCksIGFyZzMsIGFyZzQpOworI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2V0
dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0MywxMCBAQAogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCiAjaW5jbHVkZSAiSklURGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJK
U0ludGVyZmFjZUpJVC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBDVG9Db2Rl
T3JpZ2luTWFwLmgiCi0jaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlVudXNlZFBv
aW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MzUsNyArNDM1LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgY29tcGlsZUdldEJ5SWRIb3RQYXRoKGNvbnN0IElkZW50aWZp
ZXIqKTsKIAogICAgICAgICAvLyBBcml0aG1ldGljIG9wY29kZSBoZWxwZXJzCi0gICAgICAgIHZv
aWQgZW1pdFN1YjMyQ29uc3RhbnQoaW50IGRzdCwgaW50IG9wLCBpbnQzMl90IGNvbnN0YW50LCBS
ZXN1bHRUeXBlIG9wVHlwZSk7CiAgICAgICAgIHZvaWQgZW1pdEJpbmFyeURvdWJsZU9wKE9wY29k
ZUlELCBpbnQgZHN0LCBpbnQgb3AxLCBpbnQgb3AyLCBPcGVyYW5kVHlwZXMsIEp1bXBMaXN0JiBu
b3RJbnQzMk9wMSwgSnVtcExpc3QmIG5vdEludDMyT3AyLCBib29sIG9wMUlzSW5SZWdpc3RlcnMg
PSB0cnVlLCBib29sIG9wMklzSW5SZWdpc3RlcnMgPSB0cnVlKTsKIAogI2Vsc2UgLy8gVVNFKEpT
VkFMVUUzMl82NCkKQEAgLTc2Myw3ICs3NjIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkksIGludCwgR1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJS
ZWcsIEdQUlJlZyk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJl
Z3MsIFJlc3VsdFByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywg
SlNWYWx1ZVJlZ3MsIEFyaXRoUHJvZmlsZSopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVS
ZWdzLCBKU1ZhbHVlUmVncyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJwSmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdz
LCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljLCBKU1Zh
bHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKSVRBZGRJQyopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBp
bnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcs
IEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CkBA
IC05NTMsNiArOTU1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUENUb0NvZGVPcmln
aW5NYXBCdWlsZGVyIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyOwogCisgICAgICAgIEhhc2hN
YXA8SW5zdHJ1Y3Rpb24qLCBKSVRBZGRJQyo+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDOworICAg
ICAgICBIYXNoTWFwPEluc3RydWN0aW9uKiwgTWF0aElDR2VuZXJhdGlvblN0YXRlPiBtX2luc3Ry
dWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsKKwogICAgICAgICBib29sIG1fY2FuQmVP
cHRpbWl6ZWQ7CiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZE9ySW5saW5lZDsKICAgICAg
ICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxpbmc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDExICsyNiw1MiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFk
ZEdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiSklU
TWF0aElDLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLXZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYgaml0KQorSklUTWF0aElDSW5saW5lUmVzdWx0IEpJVEFkZEdlbmVyYXRv
cjo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZSYgc3RhdGUpCit7CisgICAgLy8gV2UgZGVmYXVsdCB0byBzcGVjdWxhdGluZyBpbnQzMi4KKyAg
ICBPYnNlcnZlZFR5cGUgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgT2Jz
ZXJ2ZWRUeXBlIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpOworICAgIGlmIChtX2Fy
aXRoUHJvZmlsZSkgeworICAgICAgICBsaHMgPSBtX2FyaXRoUHJvZmlsZS0+bGhzT2JzZXJ2ZWRU
eXBlKCk7CisgICAgICAgIHJocyA9IG1fYXJpdGhQcm9maWxlLT5yaHNPYnNlcnZlZFR5cGUoKTsK
KyAgICAgICAgaWYgKGxocy5pc0VtcHR5KCkgfHwgcmhzLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgICAgICAgICByaHMgPSBP
YnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChs
aHMuaXNPbmx5Tm9uTnVtYmVyKCkgJiYgcmhzLmlzT25seU5vbk51bWJlcigpKQorICAgICAgICBy
ZXR1cm4gSklUTWF0aElDSW5saW5lUmVzdWx0OjpEb250R2VuZXJhdGU7CisKKyAgICBpZiAoKGxo
cy5pc09ubHlJbnQzMigpIHx8IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkpICYmIChyaHMu
aXNPbmx5SW50MzIoKSB8fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkpIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFu
ZC5pc0NvbnN0SW50MzIoKSk7CisgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50
MzIoKSkKKyAgICAgICAgICAgIHN0YXRlLnNsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdEludDMyKG1fbGVmdCkpOworICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJ
bnQzMigpKQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5j
aElmTm90SW50MzIobV9yaWdodCkpOworCisgICAgICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29u
c3RJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CisgICAgICAgICAg
ICBKU1ZhbHVlUmVncyB2YXIgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9yaWdo
dCA6IG1fbGVmdDsKKyAgICAgICAgICAgIGludDMyX3QgY29uc3RWYWx1ZSA9IG1fbGVmdE9wZXJh
bmQuaXNDb25zdEludDMyKCkgPyBtX2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpIDogbV9yaWdo
dE9wZXJhbmQuYXNDb25zdEludDMyKCk7CisgICAgICAgICAgICBzdGF0ZS5zbG93UGF0aEp1bXBz
LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFyLnBheWxv
YWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdFZhbHVlKSwgbV9zY3JhdGNoR1BSKSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5hcHBlbmQo
aml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQ
UigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgaml0LmJv
eEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOworICAgICAgICByZXR1cm4gSklUTWF0aElD
SW5saW5lUmVzdWx0OjpHZW5lcmF0ZWRGYXN0UGF0aDsKKyAgICB9CisKKyAgICByZXR1cm4gSklU
TWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZUZ1bGxTbmlwcGV0OworfQorCitib29sIEpJVEFk
ZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNsb3dQ
YXRoSnVtcExpc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVn
KTsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IG1fbGVmdC5wYXlsb2FkR1BSKCkpOwpAQCAt
NDMsMTIgKzg0LDggQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
CiAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3Bl
cmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgCi0gICAgaWYgKCFtX2xlZnRPcGVyYW5kLm1pZ2h0
QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWlnaHRCZU51bWJlcigpKSB7Ci0gICAgICAg
IEFTU0VSVCghbV9kaWRFbWl0RmFzdFBhdGgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgbV9kaWRFbWl0RmFzdFBhdGggPSB0cnVlOworICAgIGlmICghbV9sZWZ0T3BlcmFuZC5taWdo
dEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwg
bV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFy
ID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmlnaHQgOiBtX2xlZnQ7CkBAIC01
OCwyMCArOTUsMjAgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
ICAgICAgICAvLyBUcnkgdG8gZG8gaW50VmFyICsgaW50Q29uc3RhbnQuCiAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcCBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdEludDMyKHZhcik7CiAKLSAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxw
ZXJzOjpPdmVyZmxvdywgdmFyLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25z
dE9wci5hc0NvbnN0SW50MzIoKSksIG1fc2NyYXRjaEdQUikpOworICAgICAgICBzbG93UGF0aEp1
bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFy
LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdE9wci5hc0NvbnN0SW50MzIo
KSksIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIs
IG1fcmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7Cisg
ICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICBpZiAoIWpp
dC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBM
aXN0LmFwcGVuZChub3RJbnQzMik7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBz
bG93UGF0aEp1bXBMaXN0LmFwcGVuZChub3RJbnQzMik7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRyeSB0byBkbyBkb3VibGVWYXIgKyBkb3VibGUo
aW50Q29uc3RhbnQpLgogICAgICAgICBub3RJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICBpZiAo
IXZhck9wci5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BSKSk7Cisg
ICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIo
dmFyLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0cnVj
dGl2ZSh2YXIsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwogCkBAIC04
OSwyMiArMTI2LDI0IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMK
ICAgICAgICAgbGVmdE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fbGVmdCk7CiAgICAg
ICAgIHJpZ2h0Tm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CiAKLSAgICAg
ICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJz
OjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1f
c2NyYXRjaEdQUikpOworCisgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFu
Y2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9s
ZWZ0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmJveEludDMy
KG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOwotICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChq
aXQuanVtcCgpKTsKKyAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworCiAK
ICAgICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKLSAgICAgICAgICAg
IG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobGVmdE5vdEludCk7Ci0gICAgICAgICAgICBtX3Ns
b3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGxlZnROb3RJbnQpOworICAgICAg
ICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQocmlnaHROb3RJbnQpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBsZWZ0Tm90SW50LmxpbmsoJmppdCk7
CiAgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAg
ICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1f
bGVmdCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKICAgICAgICAg
aWYgKCFtX3JpZ2h0T3BlcmFuZC5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1f
c2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1f
c2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJy
YW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC51
bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1fbGVmdCwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIs
IG1fc2NyYXRjaEZQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCByaWdodElzRG91Ymxl
ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CkBAIC0xMTQsNyArMTUzLDcgQEAgdm9p
ZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgICAgIHJpZ2h0Tm90
SW50LmxpbmsoJmppdCk7CiAgICAgICAgIGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlz
TnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQ
YXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0
Y2hHUFIpKTsKIAogICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUobV9sZWZ0LnBheWxv
YWRHUFIoKSwgbV9sZWZ0RlBSKTsKIApAQCAtMTI4LDEwICsxNjcsMTIgQEAgdm9pZCBKSVRBZGRH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgLy8gRG8gZG91YmxlVmFyICsgZG91
YmxlVmFyLgogICAgIGppdC5hZGREb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKLSAgICBp
ZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3Vi
bGUoaml0KTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAgICAgIG1fYXJpdGhQcm9maWxl
LT5lbWl0U2V0RG91YmxlKGppdCk7CiAgICAgICAgIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0
RlBSLCBtX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2Vu
ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE2ICsyOSwyMyBAQAogI2lmIEVOQUJMRShK
SVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUNJbmxp
bmVSZXN1bHQuaCIKKyNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU25pcHBl
dE9wZXJhbmQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0cnVjdCBNYXRoSUNHZW5lcmF0aW9u
U3RhdGU7CisKIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CisgICAgSklUQWRkR2Vu
ZXJhdG9yKCkKKyAgICB7IH0KKwogICAgIEpJVEFkZEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBs
ZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAg
ICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBS
UmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAg
ICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3Bl
cmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsMTYg
KzU1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAg
ICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3Jh
dGNoRlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAg
ICAsIG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCgh
bV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdElu
dDMyKCkpOwogICAgIH0KIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMm
KTsKLQotICAgIGJvb2wgZGlkRW1pdEZhc3RQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9kaWRFbWl0
RmFzdFBhdGg7IH0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCgpIHsg
cmV0dXJuIG1fZW5kSnVtcExpc3Q7IH0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93
UGF0aEp1bXBMaXN0KCkgeyByZXR1cm4gbV9zbG93UGF0aEp1bXBMaXN0OyB9CisgICAgSklUTWF0
aElDSW5saW5lUmVzdWx0IGdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYsIE1hdGhJQ0dlbmVy
YXRpb25TdGF0ZSYpOworICAgIGJvb2wgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlz
dCYgc2xvd1BhdGhKdW1wTGlzdCk7CiAKIHByaXZhdGU6CiAgICAgU25pcHBldE9wZXJhbmQgbV9s
ZWZ0T3BlcmFuZDsKQEAgLTY5LDExICs3Myw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmln
aHRGUFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBS
OwotICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKLSAgICBib29sIG1fZGlkRW1p
dEZhc3RQYXRoIHsgZmFsc2UgfTsKLQotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRK
dW1wTGlzdDsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wTGlzdDsK
KyAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGht
ZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSklU
KQogI2luY2x1ZGUgIkpJVC5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SklUQml0QW5kR2VuZXJhdG9yLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSklURGl2
R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUSW5saW5lcy5oIgogI2luY2x1ZGUgIkpJVExlZnRT
aGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpJVE11
bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVE5lZ0dlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJ
VE9wZXJhdGlvbnMuaCIKQEAgLTQ0LDExICs0NiwxMSBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIK
ICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlJl
c3VsdFR5cGUuaCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKIAotCiBuYW1lc3BhY2UgSlND
IHsKIAogdm9pZCBKSVQ6OmVtaXRfb3Bfamxlc3MoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKQEAgLTY3NSwyMCArNjc3LDI2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF91cnNoaWZ0
KEluc3RydWN0aW8KICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwogfQogCitBTFdBWVNfSU5MSU5F
IHN0YXRpYyBPcGVyYW5kVHlwZXMgZ2V0T3BlcmFuZFR5cGVzKEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbikKK3sKKyAgICByZXR1cm4gT3BlcmFuZFR5cGVzKEFyaXRoUHJvZmlsZTo6ZnJvbUludChp
bnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpLmxoc1Jlc3VsdFR5cGUoKSwgQXJpdGhQcm9maWxlOjpm
cm9tSW50KGluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKK30KKwog
dm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAg
aW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVz
ID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQp
OwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVy
YW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNW
YWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJl
Z3MgPSBsZWZ0UmVnczsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QyOwogICAgIEZQUlJl
ZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQUlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5
cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJl
Z3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtNjk2LDkgKzcwNCw5IEBAIHZvaWQgSklUOjplbWl0
X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVn
VDI7CiAjZW5kaWYKIAotICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRy
OworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hv
dWxkRW1pdFByb2ZpbGluZygpKQotICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2st
PmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJv
ZmlsZSA9ICZtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9u
KTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAg
IFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC03MTUsNDcg
KzcyMyw0NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAg
aWYgKCFyaWdodE9wZXJhbmQuaXNDb25zdCgpKQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMiwgcmlnaHRSZWdzKTsKIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAg
ICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmls
ZSk7CisgICAgSklUQWRkSUMqIGFkZElDID0gbV9jb2RlQmxvY2stPmFkZEpJVEFkZElDKCk7CiAK
LSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisgICAgbV9pbnN0cnVjdGlvblRvSklU
QWRkSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUMpOworICAgIE1hdGhJQ0dlbmVyYXRp
b25TdGF0ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dl
bmVyYXRpb25TdGF0ZS5hZGQoY3VycmVudEluc3RydWN0aW9uLCBNYXRoSUNHZW5lcmF0aW9uU3Rh
dGUoKSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSkg
ewotICAgICAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5rKHRoaXMpOwotICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7Ci0gICAgICAgIAotICAgICAgICBh
ZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wTGlzdCgpKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBBU1NFUlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEFTU0VSVChnZW4u
c2xvd1BhdGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkg
ewotICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwotICAgICAgICAgICAgaWYg
KHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJl
c3VsdFByb2ZpbGUpOwotICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQs
IHJlc3VsdFJlZ3MpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgSklUU2xvd1BhdGhD
YWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQp
OwotICAgICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKLSAgICAgICAgfQotICAgIH0KKyAg
ICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0
T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgZnBSZWdUMCwgZnBSZWdU
MSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKKworICAgIGJvb2wgZ2Vu
ZXJhdGVkSW5saW5lQ29kZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZSgqdGhpcywgYWRkSUNHZW5l
cmF0aW9uU3RhdGUpOworICAgIGlmICghZ2VuZXJhdGVkSW5saW5lQ29kZSkgeworICAgICAgICBp
ZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAgICAgZWxzZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29u
c3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3Mp
OworCisgICAgICAgIGlmIChhcml0aFByb2ZpbGUpCisgICAgICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJl
Z3MsIGFyaXRoUHJvZmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MpOwor
ICAgIH0gZWxzZQorICAgICAgICBhZGRTbG93Q2FzZShhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93
UGF0aEp1bXBzKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVn
cyk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAg
ICBsaW5rQWxsU2xvd0Nhc2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1f
Ynl0ZWNvZGVPZmZzZXQpOwogCisgICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVy
YXRpb25TdGF0ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQo
Y3VycmVudEluc3RydWN0aW9uKS0+dmFsdWU7CisgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUuc2xv
d1BhdGhTdGFydCA9IGxhYmVsKCk7CisKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
LSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJh
bmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50
SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJl
Z1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogI2Vsc2UKKyAgICBPcGVyYW5k
VHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBK
U1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNW
YWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC03NjksMTggKzc3NywyNiBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjCiAgICAgZWxzZSBpZiAoaXNPcGVy
YW5kQ29uc3RhbnRJbnQob3AyKSkKICAgICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIo
Z2V0T3BlcmFuZENvbnN0YW50SW50KG9wMikpOwogCisgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29u
c3QoKSkKKyAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAg
ICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDIsIHJpZ2h0UmVncyk7CisKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2luc3RydWN0
aW9uVG9KSVRBZGRJQy5nZXQoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBpZiAoc2hvdWxkRW1p
dFByb2ZpbGluZygpKSB7Ci0gICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwotICAgICAgICBp
ZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7
Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7Ci0gICAgICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlv
biwgc2xvd19wYXRoX2FkZCk7Ci0gICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Ci0gICAgfQor
ICAgICAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hcml0aFBy
b2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgICAgICBpZiAoYWRkSUNHZW5lcmF0
aW9uU3RhdGUuc2hvdWxkU2xvd1BhdGhSZXBhdGNoKQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0
aW9uU3RhdGUuc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFBy
b2ZpbGVkT3B0aW1pemUsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFBy
b2ZpbGUsIGFkZElDKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9u
U3RhdGUuc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxlKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUuc2xvd1BhdGhDYWxsID0gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCBhZGRJQyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQs
IHJlc3VsdFJlZ3MpOworCisgICAgYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVm
ZmVyKSB7CisgICAgICAgIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgYWRkSUNHZW5lcmF0aW9uU3Rh
dGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5maW5kKGN1cnJlbnRJ
bnN0cnVjdGlvbiktPnZhbHVlOworICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKGFk
ZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICB9KTsKIH0KIAogdm9pZCBKSVQ6
OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC03ODgsMTQg
KzgwNCwxNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAg
aW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9w
MSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3Bl
cmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlw
ZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJl
Z3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBs
ZWZ0UmVnczsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QyOwogI2Vsc2UKKyAgICBPcGVy
YW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAg
ICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAg
SlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC04MDMsOSArODIwLDkgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0aW9uKiBjdXJyZQogI2VuZGlmCiAgICAgRlBSUmVn
IHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmls
ZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwog
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBt
X2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAg
ICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50
SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmly
c3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsK
QEAgLTgzMSw3ICs4NDgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAg
ICAgSklURGl2R2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRS
ZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBS
ZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAtODYxLDE1ICs4NzgsMTYgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9u
KGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJl
Z1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDIpOwog
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gcmVnVDM7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJ
bnZhbGlkRlBSUmVnOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5k
VHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVm
dFJlZ3M7CkBAIC04NzcsOSArODk1LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0
aW9uKiBjdXJyZQogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0g
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9m
aWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5n
KCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJv
ZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJs
b2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBl
dE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQg
cmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTg5Nyw3ICs5MTUsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklUTXVsR2VuZXJhdG9yIGdlbihsZWZ0
T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAot
ICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQ
cm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQ
UiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApA
QCAtOTA5LDEyICs5MjcsMTIgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBj
dXJyZQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0
eSgpKTsKICAgICAgICAgQVNTRVJUKGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0g
ICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUpIHsK
ICAgICAgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAg
ICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAg
ICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAgICAgICAg
ICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywg
cmlnaHRSZWdzLCBhcml0aFByb2ZpbGUpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
SklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNs
b3dfcGF0aF9tdWwpOwpAQCAtOTMwLDEzICs5NDgsMTQgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X211bChJbnN0cnVjdGlvbiogYwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAg
IE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5
cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0
cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDAp
OwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBl
cyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFs
dWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVl
UmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTk1NSw4ICs5NzQsOCBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiAgICAgICAgICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwogICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9z
aXRpdmVDb25zdEludDMyKCkpCiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MiwgcmlnaHRSZWdzKTsKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1f
Y29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOwotICAgICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxl
ZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBBcml0aFByb2ZpbGUm
IGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5z
dHJ1Y3Rpb24pOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOwogICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwpAQCAtOTY5LDE1ICs5ODgsMTYgQEAgdm9pZCBK
SVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUlu
dChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0
aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAgICAgR1BS
UmVnIHNjcmF0Y2hHUFIgPSByZWdUMjsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRG
UFJSZWc7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhj
dXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJl
Z3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsK
QEAgLTk4NSw5ICsxMDA1LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBj
dXJyZQogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0g
ICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZSht
X2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5h
cml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJh
bmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRP
cGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTk5Niw3ICsxMDE2LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
b3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklUU3ViR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwg
cmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBm
cFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsK
KyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQ
cm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAtMTAyMyw4
ICsxMDQzLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3N1YihJbnN0cnVjdGlvbiogYwogI2Vu
ZGlmCiAKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7Ci0gICAgICAgIFJlc3VsdFBy
b2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZSht
X2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZVN1
YlByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxl
KTsKKyAgICAgICAgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YXJp
dGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKKyAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRS
ZWdzLCAmYXJpdGhQcm9maWxlKTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1
bHQsIHJlc3VsdFJlZ3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBz
bG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfc3ViKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJ
VCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgogCkBAIC0xMDEsOSArMTAyLDkgQEAgdm9p
ZCBKSVREaXZHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIH0KIAogICAgIC8vIElz
IHRoZSByZXN1bHQgYWN0dWFsbHkgYW4gaW50ZWdlcj8gVGhlIERGRyBKSVQgd291bGQgcmVhbGx5
IGxpa2UgdG8ga25vdy4gSWYgaXQncwotICAgIC8vIG5vdCBhbiBpbnRlZ2VyLCB3ZSBpbmNyZW1l
bnQgYSBjb3VudC4gSWYgdGhpcyB0b2dldGhlciB3aXRoIHRoZSBzbG93IGNhc2UgY291bnRlcgot
ICAgIC8vIGFyZSBiZWxvdyB0aHJlc2hvbGQgdGhlbiB0aGUgREZHIEpJVCB3aWxsIGNvbXBpbGUg
dGhpcyBkaXZpc2lvbiB3aXRoIGEgc3BlY3VsYXRpb24KLSAgICAvLyB0aGF0IHRoZSByZW1haW5k
ZXIgaXMgemVyby4KKyAgICAvLyBub3QgYW4gaW50ZWdlciwgd2Ugc2V0IGEgYml0LiBJZiB0aGlz
IHRvZ2V0aGVyIHdpdGggdGhlIHNsb3cgY2FzZSBjb3VudGVyIGFyZSBiZWxvdworICAgIC8vIHRo
cmVzaG9sZCB0aGVuIHRoZSBERkcgSklUIHdpbGwgY29tcGlsZSB0aGlzIGRpdmlzaW9uIHdpdGgg
YSBzcGVjdWxhdGlvbiB0aGF0IHRoZQorICAgIC8vIHJlbWFpbmRlciBpcyB6ZXJvLgogCiAgICAg
Ly8gQXMgd2VsbCwgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIGEgZG91YmxlIHJlc3VsdCBoZXJlIHdv
dWxkIGNhdXNlIGFuIGltcG9ydGFudCBmaWVsZAogICAgIC8vIGluIHRoZSBoZWFwIHRvIHNvbWV0
aW1lcyBoYXZlIGRvdWJsZXMgaW4gaXQsIHJlc3VsdGluZyBpbiBkb3VibGUgcHJlZGljdGlvbnMg
Z2V0dGluZwpAQCAtMTI4LDggKzEyOSw4IEBAIHZvaWQgSklURGl2R2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKEMKIAogICAgIG5vdERvdWJsZVplcm8ubGluaygmaml0KTsKICNlbmRpZgotICAg
IGlmIChtX3Jlc3VsdFByb2ZpbGUpCi0gICAgICAgIGppdC5hZGQzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9m
aWxlLT5hZGRyZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpKSk7CisgICAgaWYgKG1fYXJpdGhQ
cm9maWxlKQorICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0
aFByb2ZpbGU6OnNwZWNpYWxGYXN0UGF0aEJpdCksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRy
ZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICBqaXQuYm94RG91Ymxl
KG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVERpdkdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklURGl2R2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcg
KzM4LDcgQEAgcHVibGljOgogICAgIEpJVERpdkdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0
T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVn
cyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAgICBG
UFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVn
IHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxs
cHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAgICAg
ICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFu
ZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBt
X3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQ
UikKLSAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBt
X2FyaXRoUHJvZmlsZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVm
dE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigp
KTsKICAgICB9CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRG
UFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwot
ICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKKyAgICBBcml0aFByb2ZpbGUqIG1f
YXJpdGhQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MTYsOSAr
NDE2LDMzIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1pbmxp
bmUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VKSlJwIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBK
U1ZhbHVlUmVncyBhcmcyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpKIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBK
U1ZhbHVlUmVncyBhcmcyKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyLCBUcnVzdGVkSW1tUHRyKHJlc3VsdFByb2ZpbGUpKTsKKyAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVzdWx0cyhyZXN1bHQpOwor
ICAgIHJldHVybiBjYWxsOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnAgb3BlcmF0aW9uLCBKU1Zh
bHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEFyaXRo
UHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFyaXRoUHJvZmlsZSkpOworICAgIENhbGwgY2Fs
bCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJl
c3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJw
SmFpYyBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNW
YWx1ZVJlZ3MgYXJnMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJ
QykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3Rl
ZEltbVB0cihhcml0aFByb2ZpbGUpLCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgQ2FsbCBj
YWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVw
UmVzdWx0cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOworfQorCitBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpK
YWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1Zh
bHVlUmVncyBhcmcyLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKICAgICBDYWxsIGNh
bGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgc2V0dXBS
ZXN1bHRzKHJlc3VsdCk7CiAgICAgcmV0dXJuIGNhbGw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE1hdGhJQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUTWF0aElDLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRNYXRoSUMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJK
SVRBZGRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUNJbmxpbmVSZXN1bHQuaCIKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVwYXRjaC5oIgorI2luY2x1ZGUgIlNu
aXBwZXRPcGVyYW5kLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBMaW5rQnVmZmVyOwor
CitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlvblN0YXRlIHsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWwgZmFzdFBhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZmFzdFBhdGhFbmQ7
CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgc2xvd1BhdGhDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBz
bG93UGF0aEp1bXBzOworICAgIGJvb2wgc2hvdWxkU2xvd1BhdGhSZXBhdGNoOworfTsKKwordGVt
cGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvclR5cGU+CitjbGFzcyBKSVRNYXRoSUMgeworcHVibGlj
OgorICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5l
U3RhcnQubGFiZWxBdE9mZnNldChtX2lubGluZVNpemUpOyB9CisgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgc2xvd1BhdGhTdGFydExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0
T2Zmc2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQpOyB9CisgICAgQ29kZUxvY2F0
aW9uQ2FsbCBzbG93UGF0aENhbGxMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQuY2Fs
bEF0T2Zmc2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uKTsgfQorCisg
ICAgYm9vbCBnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmIGppdCwgTWF0aElDR2VuZXJhdGlv
blN0YXRlJiBzdGF0ZSkKKyAgICB7CisgICAgICAgIHN0YXRlLmZhc3RQYXRoU3RhcnQgPSBqaXQu
bGFiZWwoKTsKKyAgICAgICAgSklUTWF0aElDSW5saW5lUmVzdWx0IHJlc3VsdCA9IG1fZ2VuZXJh
dG9yLmdlbmVyYXRlSW5saW5lKGppdCwgc3RhdGUpOworCisgICAgICAgIHN3aXRjaCAocmVzdWx0
KSB7CisgICAgICAgIGNhc2UgSklUTWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZWRGYXN0UGF0
aDogeworICAgICAgICAgICAgc3RhdGUuc2hvdWxkU2xvd1BhdGhSZXBhdGNoID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHN0YXRlLmZhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEpJVE1hdGhJQ0lubGluZVJlc3Vs
dDo6R2VuZXJhdGVGdWxsU25pcHBldDogeworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXBMaXN0IGVuZEp1bXBMaXN0OworICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBtX2dlbmVyYXRv
ci5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgZW5kSnVtcExpc3QsIHN0YXRlLnNsb3dQYXRoSnVtcHMp
OworICAgICAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHN0YXRlLmZhc3RQ
YXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAgICAgICAgICAgc3RhdGUuc2hvdWxkU2xvd1Bh
dGhSZXBhdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZW5kSnVtcExpc3QubGluaygmaml0
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEpJVE1hdGhJQ0lubGlu
ZVJlc3VsdDo6RG9udEdlbmVyYXRlOiB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQg
Z2VuZXJhdGVPdXRPZkxpbmUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgRnVuY3Rpb25Q
dHIgY2FsbFJlcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgLy8gV2UgcmV3aXJlIHRvIHRoZSBh
bHRlcm5hdGUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBjYW4gYWxsb2NhdGUgdGhl
IG91dCBvZiBsaW5lIHBhdGgKKyAgICAgICAgLy8gYmVjYXVzZSBpZiB3ZSBmYWlsIGFsbG9jYXRp
bmcgdGhlIG91dCBvZiBsaW5lIHBhdGgsIHdlIGRvbid0IHdhbnQgdG8gd2Fpc3QgdGltZSB0cnlp
bmcgdG8KKyAgICAgICAgLy8gYWxsb2NhdGUgaXQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgICAgZnRs
VGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwg
Y2FsbFJlcGxhY2VtZW50KTsKKworICAgICAgICB7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnMg
aml0KCZ2bSwgY29kZUJsb2NrKTsKKworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBM
aXN0IGVuZEp1bXBMaXN0OyAKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBz
bG93UGF0aEp1bXBMaXN0OyAKKyAgICAgICAgICAgIGJvb2wgZW1pdHRlZEZhc3RQYXRoID0gbV9n
ZW5lcmF0b3IuZ2VuZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBMaXN0LCBzbG93UGF0aEp1bXBM
aXN0KTsKKyAgICAgICAgICAgIGlmICghZW1pdHRlZEZhc3RQYXRoKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKwor
ICAgICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCBqaXQsIGNvZGVCbG9jaywgSklU
Q29tcGlsYXRpb25DYW5GYWlsKTsKKyAgICAgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxU
b0FsbG9jYXRlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBsaW5r
QnVmZmVyLmxpbmsoZW5kSnVtcExpc3QsIGRvbmVMb2NhdGlvbigpKTsKKyAgICAgICAgICAgIGxp
bmtCdWZmZXIubGluayhzbG93UGF0aEp1bXBMaXN0LCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7
CisKKyAgICAgICAgICAgIG1fY29kZSA9IEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAg
ICAgIGNvZGVCbG9jaywgbGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6IGdlbmVyYXRpbmcgb3V0IG9m
IGxpbmUgSUMgc25pcHBldCIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAg
IENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgYXV0byBqdW1w
ID0gaml0Lmp1bXAoKTsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgYSBub3Agc2xlZCBo
ZXJlIGJlY2F1c2Ugbm9ib2R5IHNob3VsZCBiZSBqdW1waW5nIGludG8gdGhlIG1pZGRsZSBvZiBh
biBJQy4KKyAgICAgICAgICAgIGJvb2wgbmVlZHNCcmFuY2hDb21wYWN0aW9uID0gZmFsc2U7Cisg
ICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBtX2lubGluZVN0YXJ0LmRhdGFM
b2NhdGlvbigpLCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSwgSklUQ29tcGls
YXRpb25NdXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9uKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsKKyAgICAgICAgICAgIGxpbmtCdWZm
ZXIubGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbChtX2NvZGUuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpKTsKKyAgICAgICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJKSVRN
YXRoSUM6IGxpbmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2YgbGluZSBzdHViIikpOworICAg
ICAgICB9CisgICAgfQorCisgICAgdm9pZCBmaW5hbGl6ZUlubGluZUNvZGUoY29uc3QgTWF0aElD
R2VuZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKKyAgICB7Cisg
ICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHN0YXJ0ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0
YXRlLmZhc3RQYXRoU3RhcnQpOworICAgICAgICBtX2lubGluZVN0YXJ0ID0gc3RhcnQ7CisKKyAg
ICAgICAgbV9pbmxpbmVTaXplID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29k
ZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUuZmFz
dFBhdGhFbmQpKTsKKyAgICAgICAgQVNTRVJUKG1faW5saW5lU2l6ZSA+IDApOworCisgICAgICAg
IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJsZXI6
OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVy
LmxvY2F0aW9uT2Yoc3RhdGUuc2xvd1BhdGhDYWxsKSk7CisgICAgICAgIG1fZGVsdGFGcm9tU3Rh
cnRUb1Nsb3dQYXRoU3RhcnQgPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2Rl
UHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5zbG93
UGF0aFN0YXJ0KSk7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG1fY29kZTsK
KyAgICBDb2RlTG9jYXRpb25MYWJlbCBtX2lubGluZVN0YXJ0OworICAgIGludDMyX3QgbV9pbmxp
bmVTaXplOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRp
b247CisgICAgaW50MzJfdCBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0OworICAgIEdl
bmVyYXRvclR5cGUgbV9nZW5lcmF0b3I7Cit9OworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRH
ZW5lcmF0b3I+IEpJVEFkZElDOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0Zvcndh
cmRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNG
b3J3YXJkcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
TWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEpJVCkKKworbmFtZXNwYWNlIEpTQyB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBH
ZW5lcmF0b3I+IGNsYXNzIEpJVE1hdGhJQzsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKKwordHlw
ZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRNYXRoSUNJbmxpbmVSZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0lubGluZVJlc3VsdC5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDSW5saW5lUmVzdWx0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVz
cGFjZSBKU0MgeworCitlbnVtIGNsYXNzIEpJVE1hdGhJQ0lubGluZVJlc3VsdCB7CisgICAgR2Vu
ZXJhdGVkRmFzdFBhdGgsCisgICAgR2VuZXJhdGVGdWxsU25pcHBldCwKKyAgICBEb250R2VuZXJh
dGUKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEpJ
VCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdm9p
ZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCkBA
IC0xMzcsNyArMTM5LDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
QwogICAgIC8vIERvIGRvdWJsZVZhciAqIGRvdWJsZVZhci4KICAgICBqaXQubXVsRG91YmxlKG1f
cmlnaHRGUFIsIG1fbGVmdEZQUik7CiAKLSAgICBpZiAoIW1fcmVzdWx0UHJvZmlsZSkKKyAgICBp
ZiAoIW1fYXJpdGhQcm9maWxlKQogICAgICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9y
ZXN1bHQpOwogICAgIGVsc2UgewogICAgICAgICAvLyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sg
YmVsb3cgaW50ZW50aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJ
bnQ1MiB2YWx1ZS4KQEAgLTE0OSwxOCArMTUxLDE4IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgaml0Lm1vdmVEb3VibGVUbzY0KG1fbGVmdEZQUiwg
bV9yZXN1bHQucGF5bG9hZEdQUigpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdE5l
Z2F0aXZlWmVybyA9IGppdC5icmFuY2g2NChDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3Vs
dC5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KG5lZ2F0aXZlWmVyb0Jp
dHMpKTsKIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Mo
bV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSksIEND
YWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRz
KCkpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAg
ICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOwotICAgICAgICBqaXQub3IzMihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwg
Q0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZG
bGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFy
aXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRy
ZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBqaXQubW92
ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNo
aWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBq
aXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMigweDdmZiksIG1fc2NyYXRjaEdQUik7CiAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBub0ludDUyT3ZlcmZsb3cgPSBqaXQuYnJhbmNoMzIoQ0Nh
bGxIZWxwZXJzOjpMZXNzVGhhbk9yRXF1YWwsIG1fc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMHg0MzEpKTsKIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAg
ICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6SW50
NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxl
LT5hZGRyZXNzT2ZCaXRzKCkpKTsKICAgICAgICAgbm9JbnQ1Mk92ZXJmbG93LmxpbmsoJmppdCk7
CiAKICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwpAQCAtMTcxLDE4ICsxNzMsMTggQEAgdm9pZCBK
SVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBub3ROZWdhdGl2ZVpl
cm8uYXBwZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jlc3VsdC5w
YXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApKSk7CiAgICAgICAgIG5v
dE5lZ2F0aXZlWmVyby5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWws
IG1fcmVzdWx0LnRhZ0dQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihuZWdhdGl2ZVpl
cm9CaXRzID4+IDMyKSkpOwogCi0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29s
dXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAg
aml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOZWdaZXJv
RG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFk
ZHJlc3NPZkJpdHMoKSkpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5q
dW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7Ci0gICAgICAgIGpp
dC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1pl
cm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUt
PmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogCiAgICAg
ICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBq
aXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyIC0gMzIpLCBtX3NjcmF0Y2hHUFIp
OwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMigweDdmZiksIG1fc2NyYXRj
aEdQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub0ludDUyT3ZlcmZsb3cgPSBqaXQu
YnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbk9yRXF1YWwsIG1fc2NyYXRjaEdQUiwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMHg0MzEpKTsKICAgICAgICAgCi0gICAgICAgIGppdC5v
cjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZs
b3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJl
c3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogCiAgICAgICAgIG1fZW5k
SnVtcExpc3QuYXBwZW5kKG5vSW50NTJPdmVyZmxvdyk7CiAgICAgICAgIGlmIChtX3NjcmF0Y2hH
UFIgPT0gbV9yZXN1bHQudGFnR1BSKCkgfHwgbV9zY3JhdGNoR1BSID09IG1fcmVzdWx0LnBheWxv
YWRHUFIoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0
b3IuaAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRN
dWxHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAg
ICAgSklUTXVsR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3Bl
cmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJl
Z3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJS
ZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKLSAgICAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIpCisgICAgICAgIEFyaXRo
UHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5k
KGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAg
ICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNo
R1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQotICAgICAgICAsIG1fcmVz
dWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAsIG1fYXJpdGhQcm9maWxlKGFyaXRo
UHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc1Bvc2l0aXZl
Q29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKTsK
ICAgICB9CkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7
CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAg
IFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKKyAgICBBcml0aFByb2ZpbGUqIG1fYXJp
dGhQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNvbW1v
blNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5oIgpAQCAtMjI0Nywx
OCArMjI0OCw4NyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAg
ICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0
cmluZygpKTsKIH0KIAorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9m
aWxlZEFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1
ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0FkZChleGVjLCBvcDEsIG9wMikpOworfQorCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBwcm9maWxlZEFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJp
dGhQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDIpOworCisgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7CisgICAgYXJpdGhQ
cm9maWxlLT5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKKworICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIGFyaXRoUHJvZmlsZS0+ZGV0ZWN0TnVtZXJp
Y25lc3MocmVzdWx0KTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30K
KwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpCiB7CisgICAgcmV0dXJuIHVucHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMik7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVBZGROb3RQcm9maWxlZE5vdE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiwg
SklUQWRkSUMqKQoreworICAgIHJldHVybiB1bnByb2ZpbGVkQWRkKGV4ZWMsIGVuY29kZWRPcDEs
IGVuY29kZWRPcDIpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmls
ZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9w
MiwgYXJpdGhQcm9maWxlKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUq
IGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqIGFkZElDKQorewogICAgIFZNKiB2bSA9ICZleGVjLT52
bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogICAgIAog
ICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFs
dWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgQVNTRVJUKGFyaXRo
UHJvZmlsZSk7CisgICAgYXJpdGhQcm9maWxlLT5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsK
KyAgICBhdXRvIG5vbk9wdGltaXplVmFyaWFudCA9IG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRO
b25PcHRpbWl6ZTsKKyAgICBhZGRJQy0+Z2VuZXJhdGVPdXRPZkxpbmUoKnZtLCBleGVjLT5jb2Rl
QmxvY2soKSwgbm9uT3B0aW1pemVWYXJpYW50KTsKICAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKKyAgICBhcml0aFByb2ZpbGUtPmRldGVjdE51bWVyaWNu
ZXNzKHJlc3VsdCk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5v
bk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUsIEpJVEFk
ZElDKikKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMiwgYXJpdGhQcm9maWxlKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZUFkZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqIGFkZElDKQor
eworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGV4ZWMpOworCisgICAgYXV0byBub25PcHRpbWl6ZVZhcmlhbnQgPSBvcGVyYXRp
b25WYWx1ZUFkZE5vbk9wdGltaXplOworICAgIGFkZElDLT5nZW5lcmF0ZU91dE9mTGluZSgqdm0s
IGV4ZWMtPmNvZGVCbG9jaygpLCBub25PcHRpbWl6ZVZhcmlhbnQpOworCisgICAgSlNWYWx1ZSBv
cDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Fk
ZChleGVjLCBvcDEsIG9wMikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKQogewogICAgIFZNKiB2bSA9ICZl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpA
QCAtMjI2Nyw3ICsyMzM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYQogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogICAg
IAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOwotICAgIHJlc3Vs
dFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIyODQsNyArMjM1NCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGEgKiBiKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3Vs
dFByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
UHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKIHsKICAg
ICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBleGVjKTsKQEAgLTIyOTYsNyArMjM2Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmEKICAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKICAg
ICAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKLSAgICByZXN1bHRQcm9m
aWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIGFyaXRoUHJvZmlsZS0+ZGV0ZWN0
TnVtZXJpY25lc3MocmVzdWx0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiB9CiAKQEAgLTIzMTMsNyArMjM4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLSBiKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKQEAgLTIz
MjUsNyArMjM5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEK
ICAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmlj
bmVzcyhyZXN1bHQpOworICAgIGFyaXRoUHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMDM0NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkpJVE1h
dGhJQ0ZvcndhcmRzLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjaW5j
bHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJTbG93UGF0aFJldHVyblR5cGUuaCIK
QEAgLTQyLDYgKzQzLDcgQEAgY2xhc3MgQXJyYXlQcm9maWxlOwogY2xhc3MgQ2FsbExpbmtJbmZv
OwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSklUQWRkR2VuZXJh
dG9yOwogY2xhc3MgSlNBcnJheTsKIGNsYXNzIEpTRnVuY3Rpb247CiBjbGFzcyBKU0xleGljYWxF
bnZpcm9ubWVudDsKQEAgLTU0LDcgKzU2LDcgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsKIAogc3Ry
dWN0IEJ5VmFsSW5mbzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7Ci1zdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKK3N0cnVjdCBBcml0aFByb2ZpbGU7CiAKIHR5cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFt
ZTsKIApAQCAtNjksNiArNzEsNyBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBBOiBK
U0FycmF5KgogICAgIEFhcDogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSoKICAgICBBcDogQXJyYXlQ
cm9maWxlKgorICAgIEFycDogQXJpdGhQcm9maWxlKgogICAgIEJ5OiBCeVZhbEluZm8qCiAgICAg
QzogSlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCkBAIC04MSw2ICs4NCw3IEBAIHR5cGVkZWYg
Y2hhciogVW51c2VkUHRyOwogICAgIEljZjogSW5saW5lQ2FsbEZyYW1lKgogICAgIElkYzogY29u
c3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNvZGVkSlNWYWx1ZQorICAgIEphaWM6IEpJVEFkZElD
KgogICAgIEpjcDogY29uc3QgSlNWYWx1ZSoKICAgICBKc2M6IEpTU2NvcGUqCiAgICAgSnNmOiBK
U0Z1bmN0aW9uKgpAQCAtOTIsNyArOTYsNiBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAg
ICBROiBpbnQ2NF90CiAgICAgUjogUmVnaXN0ZXIKICAgICBSZW86IFJlZ0V4cE9iamVjdCoKLSAg
ICBScDogUmVzdWx0UHJvZmlsZSoKICAgICBTOiBzaXplX3QKICAgICBTcHJ0OiBTbG93UGF0aFJl
dHVyblR5cGUKICAgICBTc2k6IFN0cnVjdHVyZVN0dWJJbmZvKgpAQCAtMTMzLDcgKzEzNiw5IEBA
IHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkoKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkFwKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQnkpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CiB0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpK
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKTsKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0
aW9uX0VKSlJwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFJl
c3VsdFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpf
SklUT3BlcmF0aW9uX0VKSkFycCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBBcml0aFByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVS
QVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkFycEphaWMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKTsKK3R5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkphaWMpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgSklUQWRkSUMqKTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKc3Na
KShFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1JlbykoRXhlY1N0YXRlKiwgSlNT
dHJpbmcqLCBSZWdFeHBPYmplY3QqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVS
QVRJT04gKkpfSklUT3BlcmF0aW9uX0VKc3NSZW9Kc3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwg
UmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKTsKQEAgLTQwOCwxMSArNDEzLDE2IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmUKIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25Ub0luZGV4U3RyaW5nKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5B
TDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdFByb2ZpbGVkTm90T3B0aW1pemUoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJp
dGhQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiwg
SklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWROb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUq
LCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb25PcHRp
bWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQ
cm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CiAKIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nKEV4ZWNTdGF0ZSopIFdU
Rl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzU2hhZG93Q2hp
Y2tlbkxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKSVRT
dWJHZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorCiAjaWYgRU5BQkxF
KEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC04Myw4ICs4NSw4IEBAIHZvaWQgSklUU3ViR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICByaWdodFdhc0ludGVnZXIubGluaygmaml0
KTsKIAogICAgIGppdC5zdWJEb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKLSAgICBpZiAo
bV9yZXN1bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3VibGUo
aml0KTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAgICAgIG1fYXJpdGhQcm9maWxlLT5l
bWl0U2V0RG91YmxlKGppdCk7CiAKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1
bHQpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRv
ci5oCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1
YkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICBKSVRTdWJHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVy
YW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVn
cyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJl
ZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQ
cm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQo
bGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAg
ICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAg
ICAsIG1fcmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hH
UFIpCiAgICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1
bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQ
cm9maWxlKQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVy
cyYpOwpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwog
ICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBS
ZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRo
UHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIEND
YWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBz
dGF0aWMgRnVuY3Rpb25QdHIgcmVhZENhbGxUYXJnZXQoQ29kZUJsCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotc3RhdGljIHZvaWQgcmVwYXRjaENhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENv
ZGVMb2NhdGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3Q2FsbGVlRnVuY3Rpb24pCit2b2lk
IGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxvY2F0
aW9uQ2FsbCBjYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVGdW5jdGlvbikKIHsKICNpZiBFTkFC
TEUoRlRMX0pJVCkKICAgICBpZiAoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6RlRM
SklUKSB7CkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNh
Y2hlR2V0QnlJRAogCiAgICAgICAgICAgICAgICAgYm9vbCBnZW5lcmF0ZWRDb2RlSW5saW5lID0g
SW5saW5lQWNjZXNzOjpnZW5lcmF0ZUFycmF5TGVuZ3RoKCpjb2RlQmxvY2stPnZtKCksIHN0dWJJ
bmZvLCBqc0Nhc3Q8SlNBcnJheSo+KGJhc2VWYWx1ZSkpOwogICAgICAgICAgICAgICAgIGlmIChn
ZW5lcmF0ZWRDb2RlSW5saW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxsKGNv
ZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRp
bWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgZnRsVGh1
bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRp
b24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKICAgICAg
ICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdEFycmF5TGVuZ3RoKCk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjIw
LDcgKzIyMCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQKICAg
ICAgICAgICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5saW5lKSB7CiAgICAgICAgICAgICAgICAgTE9H
X0lDKChJQ0V2ZW50OjpHZXRCeUlkU2VsZlBhdGNoLCBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBw
cm9wZXJ0eU5hbWUpKTsKICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPnN0YXJ0V2F0Y2hpbmdQ
cm9wZXJ0eUZvclJlcGxhY2VtZW50cyh2bSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7Ci0gICAgICAg
ICAgICAgICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2Nh
dGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAg
ICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZv
LnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5j
dGlvbihraW5kKSk7CiAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdEdldEJ5SWRTZWxmKGNv
ZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAgICAgfQpAQCAtMzE0LDcgKzMxNCw3
IEBAIHZvaWQgcmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICBHQ1NhZmVD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxvY2soKS0+bV9sb2NrLCBleGVj
LT52bSgpLmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNoZUdldEJ5SUQoZXhlYywgYmFzZVZh
bHVlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBraW5kKSA9PSBHaXZlVXBPbkNhY2hl
KQotICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmljR2V0QnlJZEZ1bmN0aW9uKGtpbmQp
KTsKKyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBz
dHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNHZXRCeUlk
RnVuY3Rpb24oa2luZCkpOwogfQogCiBzdGF0aWMgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBhcHBy
b3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oY29uc3QgUHV0UHJvcGVydHlTbG90ICZzbG90
LCBQdXRLaW5kIHB1dEtpbmQpCkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIElubGluZUNhY2hl
QWN0aW9uIHRyeUNhY2hlUHV0QnlJRAogICAgICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkQ29k
ZUlubGluZSA9IElubGluZUFjY2Vzczo6Z2VuZXJhdGVTZWxmUHJvcGVydHlSZXBsYWNlKHZtLCBz
dHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAg
ICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewogICAgICAgICAgICAgICAgICAgICBMT0dfSUMo
KElDRXZlbnQ6OlB1dEJ5SWRTZWxmUGF0Y2gsIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIGlkZW50
KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8u
c2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nUHV0QnlJZEZ1bmN0
aW9uKHNsb3QsIHB1dEtpbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJl
cGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBw
cm9wcmlhdGVPcHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKICAgICAg
ICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdFB1dEJ5SWRSZXBsYWNlKGNvZGVCbG9jaywgc3Ry
dWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgICAgICB9CkBAIC00NjgsNyArNDY4LDcgQEAg
dm9pZCByZXBhdGNoUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVgogICAgIEdDU2FmZUNvbmN1
cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGV4ZWMtPmNvZGVCbG9jaygpLT5tX2xvY2ssIGV4ZWMtPnZt
KCkuaGVhcCk7CiAgICAgCiAgICAgaWYgKHRyeUNhY2hlUHV0QnlJRChleGVjLCBiYXNlVmFsdWUs
IHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywgcHV0S2luZCkgPT0gR2l2
ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJ
bmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5SWRGdW5j
dGlvbihzbG90LCBwdXRLaW5kKSk7CisgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChl
eGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9w
cmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKIH0KIAogc3RhdGlj
IElubGluZUNhY2hlQWN0aW9uIHRyeVJlcGF0Y2hJbigKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lk
IHJlcGF0Y2hJbigKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShm
YWxzZSk7CiAgICAgaWYgKHRyeVJlcGF0Y2hJbihleGVjLCBiYXNlLCBpZGVudCwgd2FzRm91bmQs
IHNsb3QsIHN0dWJJbmZvKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICByZXBhdGNoQ2FsbChl
eGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3BlcmF0
aW9uSW4pOworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2Nr
KCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wZXJhdGlvbkluKTsKIH0KIAog
c3RhdGljIHZvaWQgbGlua1Nsb3dGb3IoVk0qLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGVSZWYpCkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBs
aW5rUG9seW1vcnBoaWNDYWxsKAogCiB2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqIGNvZGVC
bG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBHZXRCeUlES2luZCBraW5kKQogewot
ICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24o
KSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICBmdGxU
aHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2Nh
dGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogICAg
IElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCgqY29kZUJsb2NrLT52bSgpLCBzdHViSW5m
bywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOwogfQogCkBAIC05MjAsNyArOTIw
LDcgQEAgdm9pZCByZXNldFB1dEJ5SUQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIAogICAgICAgICBv
cHRpbWl6ZWRGdW5jdGlvbiA9IG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6
ZTsKICAgICB9CiAKLSAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRo
Q2FsbExvY2F0aW9uKCksIG9wdGltaXplZEZ1bmN0aW9uKTsKKyAgICBmdGxUaHVua0F3YXJlUmVw
YXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcHRp
bWl6ZWRGdW5jdGlvbik7CiAgICAgSW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wKCpjb2Rl
QmxvY2stPnZtKCksIHN0dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCShyZXZpc2lvbiAyMDM0
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkod29ya2luZyBjb3B5
KQpAQCAtNTQsNiArNTQsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoRXhlY1N0YXRlKiwg
Q2FsCiB2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIEdl
dEJ5SURLaW5kKTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJ
bmZvJik7CiB2b2lkIHJlc2V0SW4oQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mKTsKK3Zv
aWQgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKENvZGVCbG9jayosIENvZGVMb2NhdGlvbkNhbGws
IEZ1bmN0aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCShyZXZpc2lv
biAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkxMSW50RGF0YS5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkNvZGVUeXBlLmgiCkBAIC0yMjMsNiArMjI0LDQ3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFz
c2VydGlvbnMoVk0mIHZtKQogI2VuZGlmCiAKICAgICBBU1NFUlQoU3RyaW5nSW1wbDo6c19oYXNo
RmxhZzhCaXRCdWZmZXIgPT0gOCk7CisKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAw
eDEyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2Zp
bGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAg
ICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd0ludDMyKCk7CisgICAgICAgIEFTU0VSVChhcml0aFBy
b2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9t
SW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgICAgICBBU1NF
UlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seUlu
dDMyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDIyMDAwMDsK
KyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQ
cm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIGFy
aXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJp
dHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRz
KS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChBcml0
aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7
CisgICAgfQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MjQwMDAwOworICAgICAg
ICBVTlVTRURfUEFSQU0oYml0cyk7CisgICAgICAgIEFyaXRoUHJvZmlsZSBhcml0aFByb2ZpbGU7
CisgICAgICAgIGFyaXRoUHJvZmlsZS5saHNTYXdOdW1iZXIoKTsKKyAgICAgICAgYXJpdGhQcm9m
aWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9
PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2Zp
bGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAg
IH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDE0MDAwMDsKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAg
ICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJo
c1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRz
KTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZl
ZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJv
bUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgfQogfQog
I2lmIENPTVBJTEVSKENMQU5HKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDE0LDYgKzEwMTQsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDAsIHQyLCB0MCkKICAgICBiaW5lcSB0
MiwgSW50MzJUYWcsIC5vcDFOb3RJbnQKICAgICBiaW5lcSB0MywgSW50MzJUYWcsIC5vcDJOb3RJ
bnQKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUpCisgICAgb3JpIEFyaXRoUHJvZmls
ZUludEludCwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0NSwgNCkKICAgICBsb2FkaSA0
W1BDXSwgdDIKICAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDMsIHQxLCB0MCwgLnNsb3cs
IHQyKQogICAgIGRpc3BhdGNoKDUpCkBAIC0xMDIzLDEwICsxMDI2LDE2IEBAIG1hY3JvIGJpbmFy
eU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNs
b3cKICAgICBiaWIgdDMsIExvd2VzdFRhZywgLm9wMU5vdEludE9wMkRvdWJsZQogICAgIGJpbmVx
IHQzLCBJbnQzMlRhZywgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUpCisg
ICAgb3JpIEFyaXRoUHJvZmlsZU51bWJlckludCwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlv
bih0NSwgNCkKICAgICBjaTJkIHQxLCBmdDEKICAgICBqbXAgLm9wMU5vdEludFJlYWR5CiAub3Ax
Tm90SW50T3AyRG91YmxlOgogICAgIGZpaTJkIHQxLCB0MywgZnQxCisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDQsIHQ1KQorICAgIG9yaSBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1Cisg
ICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDUsIDQpCiAub3AxTm90SW50UmVhZHk6CiAgICAgbG9h
ZGkgNFtQQ10sIHQxCiAgICAgZmlpMmQgdDAsIHQyLCBmdDAKQEAgLTEwMzgsNiArMTA0Nyw5IEBA
IG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICAjIEZpcnN0IG9w
ZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNvbmQgb3BlcmFuZCBpcyBkZWZpbml0
ZWx5IG5vdC4KICAgICBsb2FkaSA0W1BDXSwgdDIKICAgICBiaWEgdDMsIExvd2VzdFRhZywgLnNs
b3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUpCisgICAgb3JpIEFyaXRoUHJvZmls
ZUludE51bWJlciwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0NSwgNCkKICAgICBjaTJk
IHQwLCBmdDAKICAgICBmaWkyZCB0MSwgdDMsIGZ0MQogICAgIGRvdWJsZU9wZXJhdGlvbihmdDEs
IGZ0MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpA
QCAtODkzLDYgKzg5Myw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJh
dGkKICAgICBicWIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKICAgICBsb2FkaXNGcm9t
SW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQxLCB0MCwg
LnNsb3csIHQyKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MSkKKyAgICBvcmkgQXJp
dGhQcm9maWxlSW50SW50LCB0MQorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQxLCA0KQogICAg
IGRpc3BhdGNoKDUpCiAKIC5vcDFOb3RJbnQ6CkBAIC05MDIsOCArOTA1LDE0IEBAIG1hY3JvIGJp
bmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBidHF6IHQxLCB0YWdUeXBlTnVt
YmVyLCAuc2xvdwogICAgIGFkZHEgdGFnVHlwZU51bWJlciwgdDEKICAgICBmcTJkIHQxLCBmdDEK
KyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisgICAgb3JpIEFyaXRoUHJvZmlsZU51
bWJlck51bWJlciwgdDIKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MiwgNCkKICAgICBqbXAg
Lm9wMU5vdEludFJlYWR5CiAub3AxTm90SW50T3AySW50OgorICAgIGxvYWRpc0Zyb21JbnN0cnVj
dGlvbig0LCB0MikKKyAgICBvcmkgQXJpdGhQcm9maWxlTnVtYmVySW50LCB0MgorICAgIHN0b3Jl
aXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGNpMmQgdDEsIGZ0MQogLm9wMU5vdEludFJlYWR5
OgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKQEAgLTkxOSw2ICs5MjgsOSBAQCBt
YWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgIyBGaXJzdCBvcGVy
YW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25kIGlzIGRlZmluaXRlbHkgbm90Lgog
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKICAgICBidHF6IHQxLCB0YWdUeXBlTnVt
YmVyLCAuc2xvdworICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MykKKyAgICBvcmkgQXJp
dGhQcm9maWxlSW50TnVtYmVyLCB0MworICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQzLCA0KQog
ICAgIGNpMmQgdDAsIGZ0MAogICAgIGFkZHEgdGFnVHlwZU51bWJlciwgdDEKICAgICBmcTJkIHQx
LCBmdDEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjUy
LDYgKzI1MiwxMiBAQCBjb25zdCBJc0ludmFsaWRhdGVkID0gMgogIyBTaGFkb3dDaGlja2VuIGRh
dGEKIGNvbnN0IFNoYWRvd0NoaWNrZW5UYWlsTWFya2VyID0gMHg3YTExCiAKKyMgQXJpdGhQcm9m
aWxlIGRhdGEKK2NvbnN0IEFyaXRoUHJvZmlsZUludEludCA9IDB4MTIwMDAwCitjb25zdCBBcml0
aFByb2ZpbGVOdW1iZXJJbnQgPSAweDIyMDAwMAorY29uc3QgQXJpdGhQcm9maWxlTnVtYmVyTnVt
YmVyID0gMHgyNDAwMDAKK2NvbnN0IEFyaXRoUHJvZmlsZUludE51bWJlciA9IDB4MTQwMDAwCisK
ICMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KIGlmIEpTVkFMVUU2NAogICAgICMgLSBVc2Ug
YSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhlIFBDOiBvbmUgcmVnaXN0ZXIgZm9y
IHRoZQpAQCAtMjg2LDYgKzI5MiwxMCBAQCBpZiBKU1ZBTFVFNjQKICAgICAgICAgbG9hZHAgb2Zm
c2V0ICogOFtQQiwgUEMsIDhdLCBkZXN0CiAgICAgZW5kCiAgICAgCisgICAgbWFjcm8gc3RvcmVp
c1RvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKKyAgICAgICAgc3RvcmVpIHZhbHVlLCBvZmZz
ZXQgKiA4W1BCLCBQQywgOF0KKyAgICBlbmQKKwogICAgIG1hY3JvIHN0b3JlcFRvSW5zdHJ1Y3Rp
b24odmFsdWUsIG9mZnNldCkKICAgICAgICAgc3RvcmVwIHZhbHVlLCBvZmZzZXQgKiA4W1BCLCBQ
QywgOF0KICAgICBlbmQKQEAgLTI5OSw2ICszMDksMTAgQEAgZWxzZQogICAgIG1hY3JvIGxvYWRw
RnJvbUluc3RydWN0aW9uKG9mZnNldCwgZGVzdCkKICAgICAgICAgbG9hZHAgb2Zmc2V0ICogNFtQ
Q10sIGRlc3QKICAgICBlbmQKKworICAgIG1hY3JvIHN0b3JlaXNUb0luc3RydWN0aW9uKHZhbHVl
LCBvZmZzZXQpCisgICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0ICogNFtQQ10KKyAgICBlbmQK
IGVuZAogCiBpZiBYODZfNjRfV0lOCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1Jlc3VsdFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1Jlc3VsdFR5cGUuaAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9SZXN1bHRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDQ2ICszMiw0OCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgc3RydWN0IE9wZXJh
bmRUeXBlczsKIAotICAgICAgICB0eXBlZGVmIGNoYXIgVHlwZTsKKyAgICAgICAgdHlwZWRlZiB1
aW50OF90IFR5cGU7CiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVJbnQzMiA9IDE7Ci0g
ICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDA0
OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA4OwotICAg
ICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDEwOwotICAgICAgICBz
dGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDIwOwotICAgICAgICBzdGF0aWMg
Y29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQwOworICAgICAgICBzdGF0aWMgY29uc3Qg
VHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDAyOworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBU
eXBlTWF5YmVTdHJpbmcgPSAweDA0OworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5
YmVOdWxsICAgPSAweDA4OworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29s
ICAgPSAweDEwOworICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAw
eDIwOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVCaXRzID0gVHlwZU1heWJlTnVt
YmVyIHwgVHlwZU1heWJlU3RyaW5nIHwgVHlwZU1heWJlTnVsbCB8IFR5cGVNYXliZUJvb2wgfCBU
eXBlTWF5YmVPdGhlcjsKIAorICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBu
dW1CaXRzTmVlZGVkID0gNjsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoVHlwZUJpdHMgJiAoKDEg
PDwgbnVtQml0c05lZWRlZCkgLSAxKSkgPT0gVHlwZUJpdHMsICJUaGlzIGlzIG5lY2Vzc2FyeSBm
b3IgY29ycmVjdG5lc3MuIik7CisKICAgICAgICAgZXhwbGljaXQgUmVzdWx0VHlwZShUeXBlIHR5
cGUpCi0gICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAgICAgOiBtX2JpdHModHlw
ZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICBwdWJsaWM6CiAgICAgICAgIGJvb2wgaXNJ
bnQzMigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3R5cGUgJiBUeXBl
SW50MzI7CisgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZUludDMyOwogICAgICAgICB9
CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNOdW1iZXIoKSBjb25zdAogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVOdW1iZXI7
CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVOdW1i
ZXI7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGJvb2wgZGVmaW5pdGVseUlzU3RyaW5n
KCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0
cykgPT0gVHlwZU1heWJlU3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIChtX2JpdHMgJiBUeXBl
Qml0cykgPT0gVHlwZU1heWJlU3RyaW5nOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBkZWZp
bml0ZWx5SXNCb29sZWFuKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICht
X3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlQm9vbDsKKyAgICAgICAgICAgIHJldHVybiAo
bV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7CiAgICAgICAgIH0KIAogICAgICAg
ICBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gbV90eXBlICYgVHlwZU1heWJlTnVtYmVyOworICAgICAgICAgICAgcmV0dXJuIG1fYml0cyAm
IFR5cGVNYXliZU51bWJlcjsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaXNOb3ROdW1iZXIo
KSBjb25zdApAQCAtMTQxLDggKzE0MywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHJldHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAgICAgICB9CiAKKyAgICAgICAgVHlwZSBi
aXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKICAgICBwcml2YXRlOgotICAgICAgICBU
eXBlIG1fdHlwZTsKKyAgICAgICAgVHlwZSBtX2JpdHM7CiAgICAgfTsKICAgICAKICAgICBzdHJ1
Y3QgT3BlcmFuZFR5cGVzCkBAIC0xNTIsOCArMTU2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICAvLyBXZSBoYXZlIHRvIGluaXRpYWxpemUgb25lIG9mIHRoZSBpbnQgdG8gZW5zdXJl
IHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgc3RydWN0IGlzIGluaXRpYWxpemVkLgog
ICAgICAgICAgICAgbV91LmkgPSAwOwotICAgICAgICAgICAgbV91LnJkcy5maXJzdCA9IGZpcnN0
Lm1fdHlwZTsKLSAgICAgICAgICAgIG1fdS5yZHMuc2Vjb25kID0gc2Vjb25kLm1fdHlwZTsKKyAg
ICAgICAgICAgIG1fdS5yZHMuZmlyc3QgPSBmaXJzdC5tX2JpdHM7CisgICAgICAgICAgICBtX3Uu
cmRzLnNlY29uZCA9IHNlY29uZC5tX2JpdHM7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHVuaW9uIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5o
IgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgpA
QCAtMzU5LDIyICszNjAsMjEgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX25lZ2F0ZSkKIH0K
IAogI2lmIEVOQUJMRShERkdfSklUKQotc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZv
ckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogcGMsIEpTVmFsdWUg
cmVzdWx0LCBKU1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmlnaHQpCitzdGF0aWMgdm9pZCB1cGRhdGVB
cml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24q
IHBjLCBKU1ZhbHVlIHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBKU1ZhbHVlIHJpZ2h0KQogewogICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7Ci0gICAgdW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQgPSBjb2RlQmxvY2stPmJ5dGVjb2RlT2Zmc2V0KHBjKTsKLSAgICBSZXN1
bHRQcm9maWxlKiBwcm9maWxlID0gY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKGJ5dGVj
b2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUmIHByb2ZpbGUgPSBjb2RlQmxvY2stPmFyaXRo
UHJvZmlsZUZvclBDKHBjKTsKIAogICAgIGlmIChyZXN1bHQuaXNOdW1iZXIoKSkgewogICAgICAg
ICBpZiAoIXJlc3VsdC5pc0ludDMyKCkpIHsKICAgICAgICAgICAgIGlmIChsZWZ0LmlzSW50MzIo
KSAmJiByaWdodC5pc0ludDMyKCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2
ZWRJbnQzMk92ZXJmbG93KCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZlZElu
dDMyT3ZlcmZsb3coKTsKIAogICAgICAgICAgICAgZG91YmxlIGRvdWJsZVZhbCA9IHJlc3VsdC5h
c051bWJlcigpOwogICAgICAgICAgICAgaWYgKCFkb3VibGVWYWwgJiYgc3RkOjpzaWduYml0KGRv
dWJsZVZhbCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROZWdaZXJvRG91
YmxlKCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUo
KTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2Vy
dmVkTm9uTmVnWmVyb0RvdWJsZSgpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0T2JzZXJ2
ZWROb25OZWdaZXJvRG91YmxlKCk7CiAKICAgICAgICAgICAgICAgICAvLyBUaGUgSW50NTIgb3Zl
cmZsb3cgY2hlY2sgaGVyZSBpbnRlbnRpb25hbGx5IG9taXRzIDFsbCA8PCA1MSBhcyBhIHZhbGlk
IG5lZ2F0aXZlIEludDUyIHZhbHVlLgogICAgICAgICAgICAgICAgIC8vIFRoZXJlZm9yZSwgd2Ug
d2lsbCBnZXQgYSBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgcmVzdWx0IGlzIHRoYXQgdmFsdWUuIFRo
aXMgaXMgaW50ZW50aW9uYWxseQpAQCAtMzgyLDE0ICszODIsMTQgQEAgc3RhdGljIHZvaWQgdXBk
YXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeQogICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBp
bnQ2NF90IGludDUyT3ZlcmZsb3dQb2ludCA9ICgxbGwgPDwgNTEpOwogICAgICAgICAgICAgICAg
IGludDY0X3QgaW50NjRWYWwgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6OmFicyhkb3VibGVW
YWwpKTsKICAgICAgICAgICAgICAgICBpZiAoaW50NjRWYWwgPj0gaW50NTJPdmVyZmxvd1BvaW50
KQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZEludDUyT3ZlcmZsb3co
KTsKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZlZEludDUyT3ZlcmZsb3co
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBwcm9maWxl
LT5zZXRPYnNlcnZlZE5vbk51bWJlcigpOworICAgICAgICBwcm9maWxlLnNldE9ic2VydmVkTm9u
TnVtYmVyKCk7CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJp
bmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBKU1ZhbHVlLCBKU1ZhbHVlLCBK
U1ZhbHVlKSB7IH0KK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRo
T3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7
IH0KICNlbmRpZgogCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG9fbnVtYmVyKQpAQCAtNDA3
LDYgKzQwNyw5IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAgICAgSlNWYWx1ZSB2
MiA9IE9QX0MoMykuanNWYWx1ZSgpOwogICAgIEpTVmFsdWUgcmVzdWx0OwogCisgICAgQXJpdGhQ
cm9maWxlJiBhcml0aFByb2ZpbGUgPSBleGVjLT5jb2RlQmxvY2soKS0+YXJpdGhQcm9maWxlRm9y
UEMocGMpOworICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhTQW5kUkhTKHYxLCB2Mik7CisKICAg
ICBpZiAodjEuaXNTdHJpbmcoKSAmJiAhdjIuaXNPYmplY3QoKSkKICAgICAgICAgcmVzdWx0ID0g
anNTdHJpbmcoZXhlYywgYXNTdHJpbmcodjEpLCB2Mi50b1N0cmluZyhleGVjKSk7CiAgICAgZWxz
ZSBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigpKQpAQCAtNDE1LDcgKzQxOCw3IEBA
IFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAgICAgICAgIHJlc3VsdCA9IGpzQWRkU2xv
d0Nhc2UoZXhlYywgdjEsIHYyKTsKIAogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQs
IHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMs
IHJlc3VsdCwgdjEsIHYyKTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJp
dGhPcChleGVjLCBwYywgcmVzdWx0LCB2MSwgdjIpOwogICAgIH0pOwogfQogCkBAIC00MzIsNyAr
NDM1LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAgICBkb3VibGUgYiA9IHJp
Z2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIp
OwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVz
dWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQp
OworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCBy
ZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApAQCAtNDQ1LDcgKzQ0OCw3IEBAIFNM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zdWIpCiAgICAgZG91YmxlIGIgPSByaWdodC50b051bWJl
cihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKICAgICBSRVRV
Uk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVG
b3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAgICAgICAg
dXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0
LCByaWdodCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1OCw3ICs0NjEsNyBAQCBTTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfZGl2KQogICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7CiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC8gYik7CiAgICAgUkVUVVJOX1dJVEhfUFJP
RklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJp
dGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgIHVwZGF0ZUFyaXRo
UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwog
ICAgIH0pOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29w
LWFkZC1leGNlcHRpb25zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMuanMJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcC1hZGQtZXhjZXB0aW9ucy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACitmdW5jdGlvbiBhc3NlcnQoYikgeworICAgIGlmICgh
YikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIik7Cit9Citub0lubGluZShhc3NlcnQp
OworCitmdW5jdGlvbiBmMSgpIHsgcmV0dXJuICJmMSI7IH0KK25vSW5saW5lKGYxKTsKK2Z1bmN0
aW9uIGYyKCkgeyByZXR1cm4gImYyIjsgfQorbm9JbmxpbmUoZjIpOworZnVuY3Rpb24gZjMoKSB7
IHJldHVybiAiZjMiOyB9Citub0lubGluZShmMyk7CisKK2xldCBvRXhjZXB0aW9uID0geworICAg
IHZhbHVlT2YoKSB7IHRocm93IG5ldyBFcnJvcigiIik7IH0KK307CisKK2Z1bmN0aW9uIGZvbyhh
cmcxLCBhcmcyKSB7CisgICAgbGV0IGEgPSBmMSgpOworICAgIGxldCBiID0gZjIoKTsKKyAgICBs
ZXQgYyA9IGYzKCk7CisgICAgdHJ5IHsKKyAgICAgICAgYXJnMSArIGFyZzI7CisgICAgfSBjYXRj
aChlKSB7CisgICAgICAgIGFzc2VydChhcmcxID09PSBvRXhjZXB0aW9uKTsKKyAgICAgICAgYXNz
ZXJ0KGFyZzIgPT09IG9FeGNlcHRpb24pOworICAgIH0KKyAgICBhc3NlcnQoYSA9PT0gImYxIik7
CisgICAgYXNzZXJ0KGIgPT09ICJmMiIpOworICAgIGFzc2VydChjID09PSAiZjMiKTsKK30KK25v
SW5saW5lKGZvbyk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CisgICAgZm9v
KGksIHt9KTsKKyAgICBmb28oe30sIGkpOworfQorZm9vKG9FeGNlcHRpb24sIG9FeGNlcHRpb24p
OworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgZm9vKGksIHt9KTsKKyAg
ICBmb28oe30sIGkpOworfQorZm9vKG9FeGNlcHRpb24sIG9FeGNlcHRpb24pOworCisKK2Z1bmN0
aW9uIGlkZW50KHgpIHsgcmV0dXJuIHg7IH0KK25vSW5saW5lKGlkZW50KTsKKworZnVuY3Rpb24g
YmFyKGFyZzEsIGFyZzIpIHsKKyAgICBsZXQgYSA9IGYxKCk7CisgICAgbGV0IGIgPSBmMigpOwor
ICAgIGxldCBjID0gZjMoKTsKKyAgICBsZXQgeCA9IGlkZW50KGFyZzEpOworICAgIGxldCB5ID0g
aWRlbnQoYXJnMik7CisKKyAgICB0cnkgeworICAgICAgICBhcmcxICsgYXJnMjsKKyAgICB9IGNh
dGNoKGUpIHsKKyAgICAgICAgYXNzZXJ0KGFyZzEgPT09IG9FeGNlcHRpb24pOworICAgICAgICBh
c3NlcnQoYXJnMiA9PT0gb0V4Y2VwdGlvbik7CisgICAgICAgIGFzc2VydCh4ID09PSBvRXhjZXB0
aW9uKTsKKyAgICAgICAgYXNzZXJ0KHkgPT09IG9FeGNlcHRpb24pOworICAgIH0KKyAgICBhc3Nl
cnQoYSA9PT0gImYxIik7CisgICAgYXNzZXJ0KGIgPT09ICJmMiIpOworICAgIGFzc2VydChjID09
PSAiZjMiKTsKK30KK25vSW5saW5lKGJhcik7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsg
aSsrKSB7CisgICAgYmFyKGksIHt9KTsKKyAgICBiYXIoe30sIGkpOworfQorYmFyKG9FeGNlcHRp
b24sIG9FeGNlcHRpb24pOworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAg
YmFyKGksIHt9KTsKKyAgICBiYXIoe30sIGkpOworfQorYmFyKG9FeGNlcHRpb24sIG9FeGNlcHRp
b24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDctMjAgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgb3BfYWRkL1ZhbHVlQWRk
IHNob3VsZCBiZSBhbiBJQyBpbiBhbGwgSklUIHRpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRo
SUNGb3J3YXJkcy5oOiBBZGRlZC4KKwogMjAxNi0wNy0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIENTU1N0eWxlRGVjbGFyYXRpb24uc2V0UHJvcGVydHkoKSBz
aG91bGQgYmUgYWJsZSB0byB1bnNldCAiaW1wb3J0YW50IiBvbiBhIHByb3BlcnR5CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9qaXQvSklUTWF0
aElDRm9yd2FyZHMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSklUTWF0aElDRm9yd2FyZHNfaAorI2RlZmluZSBX
ZWJDb3JlX0ZXRF9KSVRNYXRoSUNGb3J3YXJkc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SklUTWF0aElDRm9yd2FyZHMuaD4KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284151</attachid>
            <date>2016-07-20 14:59:37 -0700</date>
            <delta_ts>2016-07-21 15:55:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>162799</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5MiBA
QAorMjAxNi0wNy0yMCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgQWRkIGFuIElDIGluc2lkZSBhbGwgSklUIHRpZXJzLiBJdCBkb2VzIHNvIGluIGEKKyAgICAg
ICAgc2ltcGxlLCBidXQgZWZmZWN0aXZlLCB3YXkuIFdlIHdpbGwgdHJ5IHRvIGdlbmVyYXRlIGFu
IGludCtpbnQgYWRkCisgICAgICAgIHRoYXQgd2lsbCByZXBhdGNoIGl0c2VsZiBpZiBpdHMgdHlw
ZSBjaGVja3MgZmFpbC4gU29tZXRpbWVzIHRob3VnaCwKKyAgICAgICAgd2UgaGF2ZSBydW50aW1l
IHR5cGUgZGF0YSBzYXlpbmcgdGhhdCB0aGUgYWRkIHdvbid0IGJlIGludCtpbnQuCisgICAgICAg
IEluIHRob3NlIGNhc2VzLCB3ZSB3aWxsIGp1c3QgZ2VuZXJhdGUgYSBmdWxsIHNuaXBwZXQgdGhh
dCBkb2Vzbid0IHBhdGNoIGl0c2VsZi4KKyAgICAgICAgT3RoZXIgdGltZXMsIHdlIG1heSBnZW5l
cmF0ZSBubyBpbmxpbmUgY29kZSBhbmQgZGVmZXIgdG8gbWFraW5nIGEgQyBjYWxsLiBBIGxvdAor
ICAgICAgICBvZiB0aGlzIHBhdGNoIGlzIGp1c3QgcmVmYWN0b3JpbmcgUmVzdWx0UHJvZmlsZSBp
bnRvIHdoYXQgd2UncmUgbm93IGNhbGxpbmcgQXJpdGhQcm9maWxlLgorICAgICAgICBBcml0aFBy
b2ZpbGUgZG9lcyBldmVyeXRoaW5nIFJlc3VsdFByb2ZpbGUgdXNlZCB0byBkbywgYW5kIG1vcmUu
IEl0IHJlY29yZHMgc2ltcGxlIHR5cGUKKyAgICAgICAgZGF0YSBhYm91dCB0aGUgTEhTL1JIUyBv
cGVyYW5kcyBpdCBzZWVzLiBUaGlzIGFsbG93cyB1cyB0byBkZXRlcm1pbmUgaWYgYW4gb3BfYWRk
CisgICAgICAgIGhhcyBvbmx5IHNlZW4gaW50K2ludCBvcGVyYW5kcywgZXRjLiBBcml0aFByb2Zp
bGUgd2lsbCBhbHNvIGNvbnRhaW4gdGhlIFJlc3VsdFR5cGUKKyAgICAgICAgZm9yIHRoZSBMSFMv
UkhTIHRoYXQgdGhlIHBhcnNlciBmZWVkcyBpbnRvIG9wX2FkZC4gQXJpdGhQcm9maWxlIG5vdyBm
aXRzIGludG8gMzItYml0cy4KKyAgICAgICAgVGhpcyBtZWFucyBpbnN0ZWFkIG9mIGhhdmluZyBh
IHNpZGUgdGFibGUgbGlrZSB3ZSBkaWQgZm9yIFJlc3VsdFByb2ZpbGUsIHdlIGp1c3QKKyAgICAg
ICAgaW5qZWN0IHRoZSBBcml0aFByb2ZpbGUgaW50byB0aGUgYnl0ZWNvZGUgaW5zdHJ1Y3Rpb24g
c3RyZWFtLiBUaGlzIG1ha2VzIGFza2luZworICAgICAgICBmb3IgQXJpdGhQcm9maWxlIGZhc3Rl
cjsgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gbG9jayBhcm91bmQgdGhpcyBvcGVyYXRpb24uCisKKyAg
ICAgICAgVGhlIHNpemUgb2YgYW4gQWRkIGhhcyBnb25lIGRvd24gb24gYXZlcmFnZSwgYnV0IHdl
IGNhbiBzdGlsbCBkbyBiZXR0ZXIuCisgICAgICAgIFdlIHN0aWxsIGdlbmVyYXRlIGEgbG90IG9m
IGNvZGUgYmVjYXVzZSB3ZSBnZW5lcmF0ZSBjYWxscyB0byB0aGUgc2xvdyBwYXRoLgorICAgICAg
ICBJIHRoaW5rIHdlIGNhbiBtYWtlIHRoaXMgYmV0dGVyIGJ5IG1vdmluZyB0aGUgc2xvdyBwYXRo
IHRvIGEgc2hhcmVkIHRodW5rCisgICAgICAgIHN5c3RlbS4gVGhpcyBwYXRjaCBtb3N0bHkgbGF5
cyB0aGUgZm91bmRhdGlvbiBmb3IgZnV0dXJlIGltcHJvdmVtZW50cyB0byBBZGQsCisgICAgICAg
IGFuZCBhIGZyYW1ld29yayB0byBtb3ZlIGFsbCBvdGhlciBhcml0aG1ldGljIG9wZXJhdGlvbnMg
dG8gYmUgdHlwZWQtYmFzZWQgSUNzLgorCisgICAgICAgIEhlcmUgaXMgc29tZSBkYXRhIEkgdG9v
ayBvbiB0aGUgYXZlcmFnZSBvcF9hZGQvVmFsdWVBZGQgc2l6ZSBvbiB2YXJpb3VzIGJlbmNobWFy
a3M6CisgICAgICAgICAgICAgICAgICAgfCAgIEpldFN0cmVhbSAgfCAgU3BlZWRvbWV0ZXIgfCAg
VW5pdHkgM0QgIHwKKyAgICAgICAgICAgICAtLS0tLS18IC0tLS0tLS0tLS0tLS18LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgT2xkICB8ICAxODkgYnl0ZXMgICB8
ICAxNjkgYnl0ZXMgICB8ICAxOTIgYnl0ZXMgfAorICAgICAgICAgICAgIC0tLS0tLXwgLS0tLS0t
LS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBOZXcg
IHwgIDE0OCBieXRlcyAgIHwgIDEyNCBieXRlcyAgIHwgIDE0MyBieXRlcyB8CisgICAgICAgICAg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyAgICAgICAgTWFraW5nIGFuIGFyaXRobWV0aWMgSUMgaXMgbm93IGVhc3kuIFRoZSBKSVRNYXRo
SUMgY2xhc3Mgd2lsbCBob2xkIGEgc25pcHBldAorICAgICAgICBnZW5lcmF0b3IgYXMgYSBtZW1i
ZXIgdmFyaWFibGUuIFRvIG1ha2UgYSBzbmlwcGV0IGFuIElDLCB5b3UgbmVlZCB0byBpbXBsZW1l
bnQKKyAgICAgICAgYSBnZW5lcmF0ZUlubGluZSguKSBtZXRob2QsIHdoaWNoIGdlbmVyYXRlcyB0
aGUgaW5saW5lIElDLiBUaGVuLCB5b3UgbmVlZCB0bworICAgICAgICBnZW5lcmF0ZSB0aGUgSUMg
d2hlcmUgeW91IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHNuaXBwZXQuIFdoZW4gZ2VuZXJhdGluZyB0
aGUKKyAgICAgICAgSUMsIHdlIG5lZWQgdG8gaW5mb3JtIEpJVE1hdGhJQyBvZiB2YXJpb3VzIGRh
dGEgbGlrZSB3ZSBkbyB3aXRoIFN0cnVjdHVyZVN0dWJJbmZvLgorICAgICAgICBXZSBuZWVkIHRv
IHRlbGwgaXQgYWJvdXQgd2hlcmUgdGhlIHNsb3cgcGF0aCBzdGFydHMsIHdoZXJlIHRoZSBzbG93
IHBhdGggY2FsbCBpcywgZXRjLgorICAgICAgICBXaGVuIGdlbmVyYXRpbmcgYSBKSVRNYXRoSUMs
IGl0IG1heSB0ZWxsIHlvdSB0aGF0IGl0IGRpZG4ndCBnZW5lcmF0ZSBhbnkgY29kZSBpbmxpbmUu
CisgICAgICAgIFRoaXMgaXMgYSByZXF1ZXN0IHRvIHRoZSB1c2VyIG9mIEpJVE1hdGhJQyB0byBq
dXN0IGdlbmVyYXRlIGEgQyBjYWxsIGFsb25nIHRoZQorICAgICAgICBmYXN0IHBhdGguIEpJVE1h
dGhJQyBtYXkgYWxzbyBoYXZlIHRoZSBzbmlwcGV0IHRlbGwgaXQgdG8ganVzdCBnZW5lcmF0ZSB0
aGUgZnVsbAorICAgICAgICBzbmlwcGV0IGluc3RlYWQgb2YgdGhlIGludCtpbnQgcGF0aCBhbG9u
ZyB0aGUgZmFzdCBwYXRoLgorCisgICAgICAgIEluIHN1YnNlcXVlbnQgcGF0Y2hlcywgd2UgY2Fu
IGltcHJvdmUgdXBvbiBob3cgd2UgZGVjaWRlIHRvIGdlbmVyYXRlIGludCtpbnQgb3IKKyAgICAg
ICAgdGhlIGZ1bGwgc25pcHBldC4gSSB0cmllZCB0byBnZXQgY2xldmVyIGJ5IGhhdmluZyBkb3Vi
bGUrZG91YmxlLCBkb3VibGUraW50LCBpbnQrZG91YmxlLAorICAgICAgICBmYXN0IHBhdGhzLCBi
dXQgdGhleSBkaWRuJ3Qgd29yayBvdXQgbmVhcmx5IGFzIHdlbGwgYXMgdGhlIGludCtpbnQgZmFz
dCBwYXRoLiBJIGVuZGVkIHVwCisgICAgICAgIGdlbmVyYXRpbmcgYSBsb3Qgb2YgY29kZSB3aGVu
IEkgZGlkIHRoaXMgYW5kIGVuZGVkIHVwIHVzaW5nIG1vcmUgbWVtb3J5IHRoYW4ganVzdCBnZW5l
cmF0aW5nCisgICAgICAgIHRoZSBmdWxsIHNuaXBwZXQuIFRoZXJlIGlzIHByb2JhYmx5IHNvbWUg
d2F5IHdlIGNhbiBiZSBjbGV2ZXIgYW5kIGdlbmVyYXRlIHNwZWNpYWxpemVkIGZhc3QKKyAgICAg
ICAgcGF0aHMgdGhhdCBhcmUgbW9yZSBzdWNjZXNzZnVsIHRoYW4gd2hhdCBJIHRyaWVkIGltcGxl
bWVudGluZywgYnV0IEkgdGhpbmsgdGhhdCdzIHdvcnRoIGRvaW5nCisgICAgICAgIHRoaXMgaW4g
Zm9sbG93IHVwIHBhdGNoZXMgb25jZSB0aGUgSklUTWF0aElDIGZvdW5kYXRpb24gaGFzIGxhbmRl
ZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgYSBidWcgaW5zaWRlIHRoZSBzbG93
IHBhdGggbGFtYmRhcyBpbiB0aGUgREZHLgorICAgICAgICBCZWZvcmUsIGl0IHdhcyBub3QgbGVn
YWwgdG8gZW1pdCBhbiBleGNlcHRpb24gY2hlY2sgaW5zaWRlIHRoZW0uIE5vdywKKyAgICAgICAg
aXQgaXMuIFNvIGl0J3Mgbm93IGVhc3kgdG8gZGVmaW5lIGFyYml0cmFyeSBsYXRlIHBhdGhzIHVz
aW5nIHRoZSBERkcKKyAgICAgICAgc2xvdyBwYXRoIGxhbWJkYSBBUEkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldERvdWJsZSk6CisgICAgICAgIChK
U0M6OkFyaXRoUHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJv
ZmlsZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmls
ZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAg
ICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6T2Jz
ZXJ2ZWRUeXBlOjpPYnNlcnZlZFR5cGUpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNh
d0ludDMyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc09ubHlJbnQzMik6CisgICAg
ICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6c2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2
ZWRUeXBlOjppc09ubHlOdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNhd05v
bk51bWJlcik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNPbmx5Tm9uTnVtYmVyKToK
KyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6T2Jz
ZXJ2ZWRUeXBlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRoSW50MzIp
OgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OndpdGhOdW1iZXIpOgorICAgICAgICAoSlND
OjpPYnNlcnZlZFR5cGU6OndpdGhOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5
cGU6OndpdGhvdXROb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6Om9wZXJh
dG9yPT0pOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OkFyaXRoUHJvZmlsZSk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZnJvbUludCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJv
ZmlsZTo6bGhzUmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzUmVz
dWx0VHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzT2JzZXJ2ZWRUeXBlKToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNPYnNlcnZlZFR5cGUpOgorICAgICAgICAo
SlNDOjpBcml0aFByb2ZpbGU6OnNldExoc09ic2VydmVkVHlwZSk6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTo6c2V0UmhzT2JzZXJ2ZWRUeXBlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9m
aWxlOjp0b29rU3BlY2lhbEZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpk
aWRPYnNlcnZlTm9uSW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2Vy
dmVEb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVOb25OZWda
ZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlTmVnWmVy
b0RvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZU5vbk51bWJl
cik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3cp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OdW1iZXIpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkSW50MzJPdmVyZmxvdyk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KToKKyAgICAg
ICAgKEpTQzo6QXJpdGhQcm9maWxlOjphZGRyZXNzT2ZCaXRzKToKKyAgICAgICAgKEpTQzo6QXJp
dGhQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmls
ZTo6bGhzU2F3SW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc1Nhd051bWJl
cik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzU2F3Tm9uTnVtYmVyKToKKyAgICAg
ICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNTYXdJbnQzMik6CisgICAgICAgIChKU0M6OkFyaXRo
UHJvZmlsZTo6cmhzU2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNT
YXdOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Om9ic2VydmVMSFNBbmRS
SFMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmJpdHMpOgorICAgICAgICAoSlNDOjpB
cml0aFByb2ZpbGU6Omhhc0JpdHMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldEJp
dCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpk
dW1wQXJpdGhQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUp
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjphZGRKSVRBZGRJQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluZFN0
dWJJbmZvKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXNldEpJVERhdGEpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
OjpkdW1wVmFsdWVQcm9maWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmFyZUNhc2VQ
cm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvclBDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjb3VsZFRha2VT
cGVjaWFsRmFzdENhc2UpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBSZXN1bHRQcm9m
aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNwZWNp
YWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHVi
SW5mb0JlZ2luKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHViSW5mb0VuZCk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6Y291bGRUYWtlU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6Om51bWJlck9mUmVzdWx0UHJvZmlsZXMpOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAq
IGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6
UmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdE51bWVyaWNuZXNzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6Z2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVEb3VibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlTm9uTmVnWmVy
b0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6
ZGlkT2JzZXJ2ZU5vbk51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVz
dWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk51
bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNl
dE9ic2VydmVkSW50NTJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFBy
b2ZpbGU6OmFkZHJlc3NPZkZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJv
ZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlc3VsdFByb2ZpbGU6Omhhc0JpdHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzZXRCaXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZXRSZXN1bHRQ
cm9maWxlQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0QmluYXJ5T3ApOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAgKiBkZmcv
REZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjptZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlRm9yKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjayk6CisgICAgICAgICog
ZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2xvd1BhdGhH
ZW5lcmF0b3I6OmdlbmVyYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJh
dG9ycyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFk
ZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVWYWx1ZUFkZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVTdHJDYXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjplbWl0QmluYXJ5U25pcHBldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmVtaXRBZGRTbmlwcGV0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6ZW1pdEJpbmFyeUJpdE9wU25pcHBldCk6CisgICAgICAgICogaml0L0NDYWxsSGVs
cGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZSk6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1bWVudHMpOgor
ICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQWRkR2VuZXJhdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZSk6CisgICAgICAg
IChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0
L0pJVEFkZEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OkpJVEFk
ZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6ZGlkRW1pdEZhc3RQ
YXRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjplbmRKdW1wTGlz
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6c2xvd1BhdGhKdW1w
TGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfamxlc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93
X29wX3Vyc2hpZnQpOgorICAgICAgICAoSlNDOjpnZXRPcGVyYW5kVHlwZXMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9h
ZGQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGl2KToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX211bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbXVsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N1Yik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3Bfc3ViKToKKyAgICAgICAgKiBqaXQvSklURGl2R2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SklURGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKiBqaXQv
SklURGl2R2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVERpdkdlbmVyYXRvcjo6SklURGl2
R2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRNYXRoSUMuaDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkpJVE1hdGhJQzo6ZG9uZUxvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklU
TWF0aElDOjpzbG93UGF0aFN0YXJ0TG9jYXRpb24pOgorICAgICAgICAoSlNDOjpKSVRNYXRoSUM6
OnNsb3dQYXRoQ2FsbExvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklUTWF0aElDOjpnZW5lcmF0
ZUlubGluZSk6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6Z2VuZXJhdGVPdXRPZkxpbmUpOgor
ICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmZpbmFsaXplSW5saW5lQ29kZSk6CisgICAgICAgICog
aml0L0pJVE1hdGhJQ0ZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9KSVRNYXRoSUNJ
bmxpbmVSZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgICogaml0L0pJVE11bEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRNdWxHZW5lcmF0
b3I6OkpJVE11bEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aCk6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRT
dWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRvcik6CisgICAgICAgICogaml0L1JlcGF0Y2guY3Bw
OgorICAgICAgICAoSlNDOjpyZWFkQ2FsbFRhcmdldCk6CisgICAgICAgIChKU0M6OmZ0bFRodW5r
QXdhcmVSZXBhdGNoQ2FsbCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAg
ICAgIChKU0M6OnJlcGF0Y2hHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6YXBwcm9wcmlhdGVHZW5l
cmljUHV0QnlJZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAg
ICAgICAgKEpTQzo6cmVwYXRjaFB1dEJ5SUQpOgorICAgICAgICAoSlNDOjp0cnlSZXBhdGNoSW4p
OgorICAgICAgICAoSlNDOjpyZXBhdGNoSW4pOgorICAgICAgICAoSlNDOjpsaW5rU2xvd0Zvcik6
CisgICAgICAgIChKU0M6OnJlc2V0R2V0QnlJRCk6CisgICAgICAgIChKU0M6OnJlc2V0UHV0QnlJ
RCk6CisgICAgICAgIChKU0M6OnJlcGF0Y2hDYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQv
UmVwYXRjaC5oOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChKU0M6
OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAg
ICAgICAqIHBhcnNlci9SZXN1bHRUeXBlLmg6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OlJl
c3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjppc0ludDMyKToKKyAgICAgICAg
KEpTQzo6UmVzdWx0VHlwZTo6ZGVmaW5pdGVseUlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6UmVz
dWx0VHlwZTo6ZGVmaW5pdGVseUlzU3RyaW5nKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6
ZGVmaW5pdGVseUlzQm9vbGVhbik6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6Om1pZ2h0QmVO
dW1iZXIpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjppc05vdE51bWJlcik6CisgICAgICAg
IChKU0M6OlJlc3VsdFR5cGU6OmZvckJpdE9wKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6
Yml0cyk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRUeXBlczo6T3BlcmFuZFR5cGVzKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFU
SF9ERUNMKToKKyAgICAgICAgKEpTQzo6dXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhP
cCk6CisgICAgICAgIChKU0M6OnVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKTog
RGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMuanM6IEFk
ZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAgICAgKGYxKToKKyAgICAgICAgKGYyKToKKyAg
ICAgICAgKGYzKToKKyAgICAgICAgKGxldC5vRXhjZXB0aW9uLnZhbHVlT2YpOgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKGlkZW50KToKKyAgICAgICAgKGJhcik6CisKIDIwMTYtMDctMjAgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hPbk92ZXJm
bG93IGluIEpTQzo6WWFycjo6WWFyclBhdHRlcm5Db25zdHJ1Y3Rvcjo6c2V0dXBBbHRlcm5hdGl2
ZU9mZnNldHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVDcmVhdG9yLmNwcAogCiAgICAgYnl0ZWNvZGUv
QWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAKKyAgICBieXRl
Y29kZS9Bcml0aFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmls
ZS5jcHAKICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQnl0ZWNv
ZGVCYXNpY0Jsb2NrLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc5LDE2ICsxMjc5LDIx
IEBACiAJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MDVCQjY3MUQxMjA1MEUw
MDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3OTE2MERCRDFDOEUzRUM4MDA4QzA4NUEgLyogUHJveHlSZXZv
a2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkx
NjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLzsgfTsKIAkJNzkxNjBE
QkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERCQzFDOEUzRUM4MDA4QzA4NUEgLyogUHJv
eHlSZXZva2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4
MzQgLyogSklUTWF0aElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFw
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNC
MzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07CiAJCTc5
MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1QzAwRDEz
QUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1dElu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5NjQ2
NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2Jh
bExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FBMUI4RkNGQjkwMDg0MDBC
QSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xv
YmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdp
bk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk5
RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4
RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5j
cHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QTIyODM0MUQz
NUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKKwkJNzlBRjBCRTQxRDNFRkQ0
QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBRjBCRTMxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJ
VE1hdGhJQ0lubGluZVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVj
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKIAkJ
NzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2QUIwN0UwMDg4
QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNldHRpbmdzID0g
e0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7IH07IH07CiAJ
CTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3RTAwODhDNjVE
IC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUE4OTlG
RTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIxNThGMDBGRDU5
MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFCQTIxNThGMDBG
RDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAgKi87IH07
CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNl
cnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVz
ZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFuZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNGQzZFRjFDMzNC
MTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc3LDEyICszNDgyLDE3IEBACiAJCTc5MDVCQjY3
MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0
aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJQy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNBRjMgLyogUENU
b0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJD
QjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1dEluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxM
ZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxMZXhpY2Fs
RW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5RUY3QzMxQzU2
RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09yaWdpbk1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFFMDBEOEUwNjcg
LyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5QTIyODM0
MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklUTWF0aElD
SW5saW5lUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJ
Q0lubGluZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCODFD
NkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1Y3Rvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQg
LyogUHJveHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJveHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA2NCw2ICs1
MDc0LDkgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRl
ci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJ
CQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMzQzI5MUQz
NDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBE
MThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLywKKwkJCQk3OUFGMEJFMzFEM0VGRDRDMDBF
OTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8sCiAJCQkJRkUxMjIwMjUxQkU3RjU2
NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAgKi8sCiAJCQkJRkUxMjIwMjYxQkU3RjU2
NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovLAogCQkJCTg2QTkwRUNGMEVFN0Q1MUYw
MEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAqLywKQEAgLTY1NjUsNiArNjU3OCw4IEBACiAJ
CQkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCAq
LywKIAkJCQkwRjYzOTQ1MTE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmNwcCAqLywK
IAkJCQkwRjYzOTQ1MjE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmggKi8sCisJCQkJ
NzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgKi8sCisJCQkJNzlB
MjI4MzQxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oICovLAogCQkJCUMyRkNBRTBD
MTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suY3BwICovLAogCQkJCUMyRkNB
RTBEMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suaCAqLywKIAkJCQkwRjIx
QzI3RTE0QkVBQTgwMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9ucy5oICovLApAQCAtNzA3
Nyw2ICs3MDkyLDcgQEAKIAkJCQlBNUVBNzBFODE5RjVCMTAxMDA5OEY1RUMgLyogQXVnbWVudGFi
bGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODRG
RjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkVDODUwMjFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDMxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
QmFzaWNCbG9ja1V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwNDFCREFDREFDMDA4
MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTc2NTYsNiArNzY3
Miw3IEBACiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAwODA2NkREIC8qIEludGVybmFsRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlENzdDMEVEMjBENzMwMEI4OTYxOSAvKiBJbnRl
cnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8q
IEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0ExQjRF
MEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUy
M0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3NjUsNiArNzc4Miw3IEBACiAJCQkJQTUx
MDA3QzExODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAwNjhBNDZEIC8qIEpTR2xv
YmFsT2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAzRkEyQTE4OEYx
MDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzAxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRT
Y3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDMjE4NUJGQUNDMDA3RTk1QUQg
LyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM0
NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0cy5qc29uIGluIEhlYWRlcnMgKi8sCkBA
IC04MTkwLDYgKzgyMDgsNyBAQAogCQkJCTBGQzgxNTBBMTQwNDNCRjUwMENGQTYwMyAvKiBXcml0
ZUJhcnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4Q0IxNjBFRDEyQjRFMDAx
RDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU5RTkyRTFCRDE3
RkE0MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCisJCQkJNzlCMTc4OEUxRDM5OUI4
MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTE1
MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRC
ODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBpbiBIZWFkZXJzICovLApA
QCAtOTI3NCw2ICs5MjkzLDcgQEAKIAkJCQkwRkVCM0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFj
cm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZDNTY4RTAxMUEyMTNFRTAwMDdG
N0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFQjEzNzU3
MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2MDAwMzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVy
QVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OEM2MzgxQjkwREUwQjAwNDJCQ0IzIC8q
IE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E0QUUwODE3
OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9m
aWxlLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJpdGhQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjaWYgRU5B
QkxFKEpJVCkKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sK
KyAgICBpZiAoIXNob3VsZEVtaXRTZXREb3VibGUoKSAmJiAhc2hvdWxkRW1pdFNldE5vbk51bWJl
cigpKQorICAgICAgICByZXR1cm47CisKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9
IGppdC5icmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBu
b3REb3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUp
OworICAgIGVtaXRTZXREb3VibGUoaml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9
IGppdC5qdW1wKCk7CisgICAgbm90RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51
bWJlcihqaXQpOworICAgIGRvbmUubGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7
Cit9CisKK2Jvb2wgQXJpdGhQcm9maWxlOjpzaG91bGRFbWl0U2V0RG91YmxlKCkgY29uc3QKK3sK
KyAgICB1aW50MzJfdCBtYXNrID0gQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgQXJpdGhQ
cm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgQXJp
dGhQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlOworICAgIHJldHVybiAobV9iaXRzICYgbWFzaykg
IT0gbWFzazsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxw
ZXJzJiBqaXQpCit7CisgICAgaWYgKHNob3VsZEVtaXRTZXREb3VibGUoKSkKKyAgICAgICAgaml0
Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpJbnQzMk92ZXJm
bG93IHwgQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgQXJpdGhQcm9maWxlOjpOZWdaZXJv
RG91YmxlIHwgQXJpdGhQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mQml0cygpKSk7Cit9CisKK2Jvb2wgQXJpdGhQcm9maWxl
OjpzaG91bGRFbWl0U2V0Tm9uTnVtYmVyKCkgY29uc3QKK3sKKyAgICB1aW50MzJfdCBtYXNrID0g
QXJpdGhQcm9maWxlOjpOb25OdW1iZXI7CisgICAgcmV0dXJuIChtX2JpdHMgJiBtYXNrKSAhPSBt
YXNrOworfQorCit2b2lkIEFyaXRoUHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBl
cnMmIGppdCkKK3sKKyAgICBpZiAoc2hvdWxkRW1pdFNldE5vbk51bWJlcigpKQorICAgICAgICBq
aXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5vbk51bWJl
ciksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2Ug
V1RGIHsKKyAgICAKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBjb25zdCBBcml0aFByb2ZpbGUmIHByb2ZpbGUpCit7CisgICAgY29u
c3QgY2hhciogc2VwYXJhdG9yID0gIiI7CisKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5v
bkludDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOworICAgICAgICBzZXBhcmF0
b3IgPSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5l
Z1plcm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1pl
cm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAg
ICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRv
ciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVt
YmVyKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAg
ICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJm
bG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0
LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgaWYgKHByb2ZpbGUudG9va1NwZWNpYWxGYXN0UGF0aCgpKQor
ICAgICAgICBvdXQucHJpbnQoIiB0b29rIHNwZWNpYWwgZmFzdCBwYXRoLiIpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0
aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJpdGhQcm9maWxlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FyaXRoUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjE5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNs
dWRlICJSZXN1bHRUeXBlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3QgT2JzZXJ2ZWRUeXBl
IHsKKyAgICBPYnNlcnZlZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5KQorICAgICAgICA6
IG1fYml0cyhiaXRzKQorICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigpIGNvbnN0IHsgcmV0
dXJuIG1fYml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50MzIoKSBjb25zdCB7
IHJldHVybiBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdOdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBpc09ubHlOdW1iZXIo
KSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAgIGJvb2wgc2F3Tm9u
TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU5vbk51bWJlcjsgfQorICAgIGJv
b2wgaXNPbmx5Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5cGVOb25OdW1i
ZXI7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9iaXRzOyB9CisgICAg
dWludDhfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKKyAgICBPYnNlcnZlZFR5
cGUgd2l0aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVJ
bnQzMik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9i
c2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRo
Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVOb25O
dW1iZXIpOyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBPYnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9CisKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9i
aXRzID09IG90aGVyLm1fYml0czsgfQorCisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUVt
cHR5ID0gMHgwOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQzMiA9IDB4MTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKKyAgICBzdGF0aWMgY29u
c3QgdWludDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKworcHJpdmF0ZToKKyAgICB1aW50OF90
IG1fYml0czsKK307CisKK3N0cnVjdCBBcml0aFByb2ZpbGUgeworcHJpdmF0ZToKKyAgICBzdGF0
aWMgY29uc3QgdWludDMyX3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IHJoc1Jlc3VsdFR5cGVTaGlmdCA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9IDExOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBy
aHNPYnNlcnZlZFR5cGVTaGlmdCA9IDE3OworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBsaHNP
YnNlcnZlZFR5cGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib3R0b202
Qml0cyA9ICgxIDw8IDYpIC0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgYm90dG9tM0Jp
dHMgPSAoMSA8PCAzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGNsZWFyUmhzT2Jz
ZXJ2ZWRUeXBlQml0cyA9IH4oKDEgPDwgMTcpIHwgKDEgPDwgMTgpIHwgKDEgPDwgMTkpKTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRzID0gfigoMSA8
PCAyMCkgfCAoMSA8PCAyMSkgfCAoMSA8PCAyMikpOworCisgICAgc3RhdGljX2Fzc2VydChSZXN1
bHRUeXBlOjpudW1CaXRzTmVlZGVkID09IDYsICJXZSBtYWtlIGEgc3Ryb25nIGFzc3VtcHRpb24g
aGVyZSB0aGF0IFJlc3VsdFR5cGUgZml0cyBpbiA2IGJpdHMuIik7CisKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qgc3BlY2lhbEZhc3RQYXRoQml0ID0gMSA8PCAyMzsKKworICAg
IEFyaXRoUHJvZmlsZShSZXN1bHRUeXBlIGxocywgUmVzdWx0VHlwZSByaHMpCisgICAgeworICAg
ICAgICBtX2JpdHMgPSAobGhzLmJpdHMoKSA8PCBsaHNSZXN1bHRUeXBlU2hpZnQpIHwgKHJocy5i
aXRzKCkgPDwgcmhzUmVzdWx0VHlwZVNoaWZ0KTsKKyAgICAgICAgQVNTRVJUKGxoc1Jlc3VsdFR5
cGUoKS5iaXRzKCkgPT0gbGhzLmJpdHMoKSAmJiByaHNSZXN1bHRUeXBlKCkuYml0cygpID09IHJo
cy5iaXRzKCkpOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsK
KyAgICAgICAgQVNTRVJUKHJoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7CisgICAgfQorICAg
IEFyaXRoUHJvZmlsZSgpCisgICAgeyB9CisKKyAgICBzdGF0aWMgQXJpdGhQcm9maWxlIGZyb21J
bnQodWludDMyX3QgYml0cykKKyAgICB7CisgICAgICAgIEFyaXRoUHJvZmlsZSByZXN1bHQ7Cisg
ICAgICAgIHJlc3VsdC5tX2JpdHMgPSBiaXRzOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKworICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJs
ZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAg
Tm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEg
PDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKKyAgICB9OworCisgICAg
UmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9i
aXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlmdCkgJiBib3R0b202Qml0cyk7IH0KKyAgICBSZXN1bHRU
eXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4g
cmhzUmVzdWx0VHlwZVNoaWZ0KSAmIGJvdHRvbTZCaXRzKTsgfQorCisgICAgT2JzZXJ2ZWRUeXBl
IGxoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+
IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAmIGJvdHRvbTNCaXRzKTsgfQorICAgIE9ic2VydmVkVHlw
ZSByaHNPYnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+
PiByaHNPYnNlcnZlZFR5cGVTaGlmdCkgJiBib3R0b20zQml0cyk7IH0KKyAgICB2b2lkIHNldExo
c09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90
IGJpdHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0gY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRz
OworICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8IGxoc09ic2VydmVkVHlwZVNoaWZ0Owor
ICAgICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkg
PT0gdHlwZSk7CisgICAgfQorCisgICAgdm9pZCBzZXRSaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRU
eXBlIHR5cGUpCisgICAgeyAKKyAgICAgICAgdWludDMyX3QgYml0cyA9IG1fYml0czsKKyAgICAg
ICAgYml0cyAmPSBjbGVhclJoc09ic2VydmVkVHlwZUJpdHM7CisgICAgICAgIGJpdHMgfD0gdHlw
ZS5iaXRzKCkgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAgIG1fYml0cyA9IGJpdHM7
CisgICAgICAgIEFTU0VSVChyaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsKKyAgICB9CisKKyAg
ICBib29sIHRvb2tTcGVjaWFsRmFzdFBhdGgoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBzcGVj
aWFsRmFzdFBhdGhCaXQ7IH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3Qg
eyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51
bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2Jz
ZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9E
b3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0
dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9i
c2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93
KTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVy
b0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgdm9pZCBzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQg
c2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CisgICAgdm9pZCBz
ZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQorICAg
IHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7
IH0KKworICAgIHZvaWQqIGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9iaXRzOyB9CisKKyAg
ICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBp
ZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodmFs
dWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9IEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRzIHw9IE5vbk51bWJlcjsKKyAg
ICB9CisKKyAgICB2b2lkIGxoc1Nhd0ludDMyKCkgeyBzZXRMaHNPYnNlcnZlZFR5cGUobGhzT2Jz
ZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCBsaHNTYXdOdW1iZXIoKSB7IHNl
dExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkpOyB9CisgICAg
dm9pZCBsaHNTYXdOb25OdW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5
cGUoKS53aXRoTm9uTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNTYXdJbnQzMigpIHsgc2V0Umhz
T2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpKTsgfQorICAgIHZvaWQg
cmhzU2F3TnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0
aE51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3Tm9uTnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZl
ZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigpKTsgfQorCisgICAgdm9pZCBv
YnNlcnZlTEhTQW5kUkhTKEpTVmFsdWUgbGhzLCBKU1ZhbHVlIHJocykKKyAgICB7CisgICAgICAg
IEFyaXRoUHJvZmlsZSBuZXdQcm9maWxlID0gKnRoaXM7CisgICAgICAgIGlmIChsaHMuaXNOdW1i
ZXIoKSkgeworICAgICAgICAgICAgaWYgKGxocy5pc0ludDMyKCkpCisgICAgICAgICAgICAgICAg
bmV3UHJvZmlsZS5saHNTYXdJbnQzMigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG5ld1Byb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgbmV3UHJvZmlsZS5saHNTYXdOb25OdW1iZXIoKTsKKworICAgICAgICBpZiAocmhzLmlzTnVt
YmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChyaHMuaXNJbnQzMigpKQorICAgICAgICAgICAgICAg
IG5ld1Byb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBuZXdQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIG5ld1Byb2ZpbGUucmhzU2F3Tm9uTnVtYmVyKCk7CisKKyAgICAgICAgbV9iaXRzID0gbmV3
UHJvZmlsZS5iaXRzKCk7CisgICAgfQorCisjaWYgRU5BQkxFKEpJVCkgICAgCisgICAgLy8gU2V0
cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVn
WmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBp
ZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRlY3ROdW1lcmljbmVzcyhD
Q2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdp
c3RlcnMpOworICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93
IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIGJvb2wgc2hvdWxkRW1p
dFNldERvdWJsZSgpIGNvbnN0OworICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMm
KTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1i
ZXIoQ0NhbGxIZWxwZXJzJik7CisgICAgYm9vbCBzaG91bGRFbWl0U2V0Tm9uTnVtYmVyKCkgY29u
c3Q7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworICAgIHVpbnQzMl90IGJpdHMoKSBjb25zdCB7
IHJldHVybiBtX2JpdHM7IH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0JpdHMoaW50IG1hc2sp
IGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIG1hc2s7IH0KKyAgICB2b2lkIHNldEJpdChpbnQgbWFz
aykgeyBtX2JpdHMgfD0gbWFzazsgfQorCisgICAgdWludDMyX3QgbV9iaXRzIHsgMCB9OyAvLyBX
ZSB0YWtlIGNhcmUgdG8gdXBkYXRlIG1fYml0cyBvbmx5IGluIGEgc2luZ2xlIG9wZXJhdGlvbi4g
V2UgZG9uJ3QgZXZlciBzdG9yZSBhbiBpbmNvbnNpc3RlbnQgYml0IHJlcHJlc2VudGF0aW9uIHRv
IGl0LgorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBXVEYgeworCit2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6OkFyaXRoUHJvZmlsZSYpOwor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAj
aW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZVVzZURlZi5o
IgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgIklubGluZUNhbGxGcmFtZS5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVkZSAiSklUTWF0aElD
LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtNzY5LDcgKzc3MSw3IEBAIHZvaWQg
Q29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKFByaW4KICAgICBvdXQucHJpbnQobmFtZSwg
cHJvZmlsZS0+bV9jb3VudGVyKTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6OmR1bXBSZXN1bHRQcm9m
aWxlKFByaW50U3RyZWFtJiBvdXQsIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wmIGhhc1By
aW50ZWRQcm9maWxpbmcpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFyaXRoUHJvZmlsZShQcmludFN0
cmVhbSYgb3V0LCBBcml0aFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxp
bmcpCiB7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICByZXR1cm47CkBAIC0xNzcwLDcgKzE3
NzIsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgIGR1bXBSYXJlQ2FzZVBy
b2ZpbGUob3V0LCAicmFyZSBjYXNlOiAiLCByYXJlQ2FzZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChsb2NhdGlvbiksIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgIHsKICAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgZHVtcFJlc3VsdFByb2ZpbGUo
b3V0LCByZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBsb2NhdGlvbiksIGhh
c1ByaW50ZWRQcm9maWxpbmcpOworICAgICAgICBkdW1wQXJpdGhQcm9maWxlKG91dCwgYXJpdGhQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5nKTsK
ICAgICB9CiAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC0zMDAzLDYgKzMwMDUsMTEgQEAg
U3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZgogICAgIHJldHVybiBtX3N0
dWJJbmZvcy5hZGQoYWNjZXNzVHlwZSk7CiB9CiAKK0pJVEFkZElDKiBDb2RlQmxvY2s6OmFkZEpJ
VEFkZElDKCkKK3sKKyAgICByZXR1cm4gbV9hZGRJQ3MuYWRkKCk7Cit9CisKIFN0cnVjdHVyZVN0
dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7
CiAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBtX3N0dWJJbmZvcykgewpA
QCAtMzA0OSwxMSArMzA1Niw2IEBAIHZvaWQgQ29kZUJsb2NrOjpyZXNldEpJVERhdGEoKQogICAg
IC8vIFdlIGNhbiBjbGVhciB0aGlzIGJlY2F1c2UgdGhlIERGRydzIHF1ZXJpZXMgdG8gdGhlc2Ug
ZGF0YSBzdHJ1Y3R1cmVzIGFyZSBndWFyZGVkIGJ5IHdoZXRoZXIKICAgICAvLyB0aGVyZSBpcyBK
SVQgY29kZS4KICAgICBtX3JhcmVDYXNlUHJvZmlsZXMuY2xlYXIoKTsKLSAgICAKLSAgICAvLyBX
ZSBjYW4gY2xlYXIgdGhlc2UgYmVjYXVzZSB0aGUgREZHIG9ubHkgYWNjZXNzZXMgbWVtYmVycyBv
ZiB0aGlzIGRhdGEgc3RydWN0dXJlIHdoZW4KLSAgICAvLyBob2xkaW5nIHRoZSBsb2NrIG9yIGFm
dGVyIHF1ZXJ5aW5nIHdoZXRoZXIgd2UgaGF2ZSBKSVQgY29kZS4KLSAgICBtX3Jlc3VsdFByb2Zp
bGVzLmNsZWFyKCk7Ci0gICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFw
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCkBAIC0zMjgzLDcgKzMyODUsNiBAQCB2b2lkIENvZGVC
bG9jazo6c2hyaW5rVG9GaXQoU2hyaW5rTW9kZSBzCiAgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIobV9sb2NrKTsKIAogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwot
ICAgIG1fcmVzdWx0UHJvZmlsZXMuc2hyaW5rVG9GaXQoKTsKICAgICAKICAgICBpZiAoc2hyaW5r
TW9kZSA9PSBFYXJseVNocmluaykgewogICAgICAgICBtX2NvbnN0YW50UmVnaXN0ZXJzLnNocmlu
a1RvRml0KCk7CkBAIC00MTU5LDExICs0MTYwLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBWYWx1
ZVByb2ZpbGVzKCkKICAgICAgICAgUmFyZUNhc2VQcm9maWxlKiBwcm9maWxlID0gcmFyZUNhc2VQ
cm9maWxlKGkpOwogICAgICAgICBkYXRhTG9nRigiICAgYmMgPSAlZDogJXVcbiIsIHByb2ZpbGUt
Pm1fYnl0ZWNvZGVPZmZzZXQsIHByb2ZpbGUtPm1fY291bnRlcik7CiAgICAgfQotICAgIGRhdGFM
b2coIlJlc3VsdFByb2ZpbGUgZm9yICIsICp0aGlzLCAiOlxuIik7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bWJlck9mUmVzdWx0UHJvZmlsZXMoKTsgKytpKSB7Ci0gICAgICAgIGNv
bnN0IFJlc3VsdFByb2ZpbGUmIHByb2ZpbGUgPSAqcmVzdWx0UHJvZmlsZShpKTsKLSAgICAgICAg
ZGF0YUxvZygiICAgYmMgPSAiLCBwcm9maWxlLmJ5dGVjb2RlT2Zmc2V0KCksICI6ICIsIHByb2Zp
bGUsICJcbiIpOwotICAgIH0KIH0KICNlbmRpZiAvLyBFTkFCTEUoVkVSQk9TRV9WQUxVRV9QUk9G
SUxFKQogCkBAIC00MzY2LDU2ICs0MzYyLDU2IEBAIHVuc2lnbmVkIENvZGVCbG9jazo6cmFyZUNh
c2VQcm9maWxlQ291bnQKICAgICByZXR1cm4gMDsKIH0KIAotUmVzdWx0UHJvZmlsZSogQ29kZUJs
b2NrOjpyZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRoUHJvZmlsZSogQ29kZUJsb2NrOjphcml0
aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiB7Ci0gICAgaWYg
KCFtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXApCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQ
cm9maWxlSW5kZXhNYXAtPmZpbmQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmIChpdGVyYXRvciA9
PSBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXAtPmVuZCgpKQorICAgIGF1
dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25z
KClbYnl0ZWNvZGVPZmZzZXRdLnUub3Bjb2RlKTsKKyAgICBzd2l0Y2ggKG9wY29kZUlEKSB7Cisg
ICAgY2FzZSBvcF9iaXRvcjoKKyAgICBjYXNlIG9wX2JpdGFuZDoKKyAgICBjYXNlIG9wX2JpdHhv
cjoKKyAgICBjYXNlIG9wX2FkZDoKKyAgICBjYXNlIG9wX211bDoKKyAgICBjYXNlIG9wX3N1YjoK
KyAgICBjYXNlIG9wX2RpdjoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuICZtX3Jlc3VsdFByb2ZpbGVzW2l0ZXJhdG9yLT52
YWx1ZV07Ci19CisgICAgfQogCi11bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0Q2FzZVBy
b2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBzcGVjaWFsRmFz
dENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0
KTsKKyAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25zKClbYnl0ZWNv
ZGVPZmZzZXQgKyA0XTsKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PEFyaXRoUHJvZmlsZSo+KCZp
bnN0cnVjdGlvbi0+dS5vcGVyYW5kKTsKIH0KIAotdW5zaWduZWQgQ29kZUJsb2NrOjpzcGVjaWFs
RmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRoUHJvZmlsZSYgQ29kZUJs
b2NrOjphcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiogcGMpCiB7Ci0gICAgUmVzdWx0UHJv
ZmlsZSogcHJvZmlsZSA9IHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5
dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoIXByb2ZpbGUpCi0gICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiBwcm9maWxlLT5zcGVjaWFsRmFzdFBhdGhDb3VudCgpOworICAgIGlmICghQVNTRVJU
X0RJU0FCTEVEKSB7CisgICAgICAgIEFTU0VSVChwYyA+PSBpbnN0cnVjdGlvbnMoKS5iZWdpbigp
ICYmIHBjIDwgaW5zdHJ1Y3Rpb25zKCkuZW5kKCkpOworICAgICAgICBhdXRvIG9wY29kZUlEID0g
dm0oKS0+aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKTsKKyAgICAgICAg
c3dpdGNoIChvcGNvZGVJRCkgeworICAgICAgICBjYXNlIG9wX2JpdG9yOgorICAgICAgICBjYXNl
IG9wX2JpdGFuZDoKKyAgICAgICAgY2FzZSBvcF9iaXR4b3I6CisgICAgICAgIGNhc2Ugb3BfYWRk
OgorICAgICAgICBjYXNlIG9wX211bDoKKyAgICAgICAgY2FzZSBvcF9zdWI6CisgICAgICAgIGNh
c2Ugb3BfZGl2OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biAqYml0d2lzZV9jYXN0PEFyaXRoUHJvZmlsZSo+KCZwY1s0XS51Lm9wZXJhbmQpOwogfQogCiBi
b29sIENvZGVCbG9jazo6Y291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29kZU9mZnNl
dCkKIHsKICAgICBpZiAoIWhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdENhc2VDb3VudCA9IHNwZWNpYWxGYXN0
Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBy
ZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6Y291bGRUYWtlU2xvd0Nhc2VN
aW5pbXVtQ291bnQoKTsKLX0KLQotUmVzdWx0UHJvZmlsZSogQ29kZUJsb2NrOjplbnN1cmVSZXN1
bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1bHRQcm9maWxlKGxvY2tlciwg
Ynl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJl
c3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBpbnQgYnl0ZWNv
ZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IHJlc3VsdFByb2ZpbGVG
b3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoIXByb2Zp
bGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQoUmVzdWx0UHJvZmlsZShieXRl
Y29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgp
OwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgpID09ICZtX3Jlc3VsdFBy
b2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwotICAgICAgICBpZiAoIW1fYnl0
ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAgICAgICAgIG1fYnl0ZWNv
ZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNv
ZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAgICAgICAgbV9ieXRlY29kZU9m
ZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNvZGVPZmZzZXQsIG1fcmVzdWx0
UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVybiBwcm9maWxlOworICAgIEFy
aXRoUHJvZmlsZSogcHJvZmlsZSA9IGFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVj
b2RlT2Zmc2V0KTsKKyAgICBpZiAoIXByb2ZpbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gcHJvZmlsZS0+dG9va1NwZWNpYWxGYXN0UGF0aCgpOwogfQogCiAjaWYgRU5BQkxF
KEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkhhbmRs
ZXJJbmZvLmgiCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJKSVRDb2RlLmgi
CisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJKSVRXcml0ZUJhcnJp
ZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpA
QCAtNzksNiArODAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKK2Ns
YXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTTW9kdWxlRW52aXJvbm1lbnQ7CiBjbGFzcyBM
TEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBQQ1RvQ29kZU9yaWdpbk1hcDsKQEAgLTg4LDYg
KzkwLDggQEAgY2xhc3MgVHlwZUxvY2F0aW9uOwogCiBlbnVtIGNsYXNzIEFjY2Vzc1R5cGUgOiBp
bnQ4X3Q7CiAKK3N0cnVjdCBBcml0aFByb2ZpbGU7CisKIHR5cGVkZWYgSGFzaE1hcDxDb2RlT3Jp
Z2luLCBTdHJ1Y3R1cmVTdHViSW5mbyosIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IFN0dWJJ
bmZvTWFwOwogCiBlbnVtIFJlb3B0aW1pemF0aW9uTW9kZSB7IERvbnRDb3VudFJlb3B0aW1pemF0
aW9uLCBDb3VudFJlb3B0aW1pemF0aW9uIH07CkBAIC0yNDUsNiArMjQ5LDcgQEAgcHVibGljOgog
ICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZv
KEFjY2Vzc1R5cGUpOworICAgIEpJVEFkZElDKiBhZGRKSVRBZGRJQygpOwogICAgIEJhZzxTdHJ1
Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvQmVnaW4oKSB7IHJldHVybiBtX3N0dWJJ
bmZvcy5iZWdpbigpOyB9CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3Igc3R1
YkluZm9FbmQoKSB7IHJldHVybiBtX3N0dWJJbmZvcy5lbmQoKTsgfQogICAgIApAQCAtNDQwLDEz
ICs0NDUsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB2YWx1ZSA+PSBPcHRpb25zOjpjb3Vs
ZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpOwogICAgIH0KIAotICAgIFJlc3VsdFByb2ZpbGUq
IGVuc3VyZVJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBSZXN1bHRQcm9m
aWxlKiBlbnN1cmVSZXN1bHRQcm9maWxlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQg
Ynl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIG51bWJlck9mUmVzdWx0UHJvZmlsZXMoKSB7
IHJldHVybiBtX3Jlc3VsdFByb2ZpbGVzLnNpemUoKTsgfQotICAgIFJlc3VsdFByb2ZpbGUqIHJl
c3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
aW50IGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2Zp
bGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQg
Ynl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3Vu
dEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxl
KiBhcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpOworICAg
IEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlRm9yUEMoSW5zdHJ1Y3Rpb24qKTsKIAogICAgIGJv
b2wgY291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29kZU9mZnNldCk7CiAKQEAgLTk1
Nyw3ICs5NTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcFZhbHVlUHJvZmlsaW5nKFByaW50
U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7
CiAgICAgdm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVj
dGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICB2b2lkIGR1bXBSYXJlQ2Fz
ZVByb2ZpbGUoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKiBuYW1lLCBSYXJlQ2FzZVByb2ZpbGUq
LCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKLSAgICB2b2lkIGR1bXBSZXN1bHRQcm9maWxl
KFByaW50U3RyZWFtJiwgUmVzdWx0UHJvZmlsZSosIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcp
OworICAgIHZvaWQgZHVtcEFyaXRoUHJvZmlsZShQcmludFN0cmVhbSYsIEFyaXRoUHJvZmlsZSos
IGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogCiAgICAgYm9vbCBzaG91bGRWaXNpdFN0cm9u
Z2x5KCk7CiAgICAgYm9vbCBzaG91bGRKZXR0aXNvbkR1ZVRvV2Vha1JlZmVyZW5jZSgpOwpAQCAt
MTAxMyw2ICsxMDEzLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSklUKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZWdpc3RlckF0T2Zmc2V0TGlzdD4gbV9jYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAg
IEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7CisgICAgQmFnPEpJVEFkZElDPiBt
X2FkZElDczsKICAgICBCYWc8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7CiAgICAgQmFnPENhbGxM
aW5rSW5mbz4gbV9jYWxsTGlua0luZm9zOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxDYWxsTGlu
a0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdDYWxs
czsKQEAgLTEwMjksOSArMTAzMCw2IEBAIHByaXZhdGU6CiAgICAgUmVmQ291bnRlZEFycmF5PFZh
bHVlUHJvZmlsZT4gbV9hcmd1bWVudFZhbHVlUHJvZmlsZXM7CiAgICAgUmVmQ291bnRlZEFycmF5
PFZhbHVlUHJvZmlsZT4gbV92YWx1ZVByb2ZpbGVzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxSYXJl
Q2FzZVByb2ZpbGUsIDg+IG1fcmFyZUNhc2VQcm9maWxlczsKLSAgICBTZWdtZW50ZWRWZWN0b3I8
UmVzdWx0UHJvZmlsZSwgOD4gbV9yZXN1bHRQcm9maWxlczsKLSAgICB0eXBlZGVmIEhhc2hNYXA8
dW5zaWduZWQsIHVuc2lnbmVkLCBJbnRIYXNoPHVuc2lnbmVkPiwgV1RGOjpVbnNpZ25lZFdpdGha
ZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IEJ5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxl
SW5kZXhNYXA7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9m
aWxlSW5kZXhNYXA+IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcDsKICAg
ICBSZWZDb3VudGVkQXJyYXk8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZT4gbV9hcnJheUFsbG9jYXRp
b25Qcm9maWxlczsKICAgICBBcnJheVByb2ZpbGVWZWN0b3IgbV9hcnJheVByb2ZpbGVzOwogICAg
IFJlZkNvdW50ZWRBcnJheTxPYmplY3RBbGxvY2F0aW9uUHJvZmlsZT4gbV9vYmplY3RBbGxvY2F0
aW9uUHJvZmlsZXM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lv
biAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgpAQCAtNjUsOCArNjYsOCBAQCB2b2lkIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGU6OmVtaXRSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIAotICAgIGNhc2Ug
UmVzdWx0UHJvZmlsZVJlYWR5OiB7Ci0gICAgICAgIHUucmVzdWx0UHJvZmlsZS0+ZW1pdERldGVj
dE51bWVyaWNuZXNzKGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICBjYXNl
IEFyaXRoUHJvZmlsZVJlYWR5OiB7CisgICAgICAgIHUuYXJpdGhQcm9maWxlLT5lbWl0RGV0ZWN0
TnVtZXJpY25lc3Moaml0LCByZWdzLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfSB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHJl
dmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBDb2RlQmxvY2s7CiBj
bGFzcyBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleTsKLXN0cnVjdCBSZXN1bHRQcm9maWxlOwor
c3RydWN0IEFyaXRoUHJvZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgewpAQCAtNTksMTEgKzU5LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQogICAgIAotICAgIE1ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGUoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlKEFyaXRoUHJvZmlsZSogcHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlm
IChwcm9maWxlKSB7Ci0gICAgICAgICAgICBtX2tpbmQgPSBSZXN1bHRQcm9maWxlUmVhZHk7Ci0g
ICAgICAgICAgICB1LnJlc3VsdFByb2ZpbGUgPSBwcm9maWxlOworICAgICAgICAgICAgbV9raW5k
ID0gQXJpdGhQcm9maWxlUmVhZHk7CisgICAgICAgICAgICB1LmFyaXRoUHJvZmlsZSA9IHByb2Zp
bGU7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9raW5kID0gTm9uZTsKICAgICB9CkBA
IC03OSwxNCArNzksMTQgQEAgcHJpdmF0ZToKICAgICBlbnVtIEtpbmQgewogICAgICAgICBOb25l
LAogICAgICAgICBSZWFkeSwKLSAgICAgICAgUmVzdWx0UHJvZmlsZVJlYWR5LAorICAgICAgICBB
cml0aFByb2ZpbGVSZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAg
IEtpbmQgbV9raW5kOwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxl
OwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOworICAgICAgICBBcml0aFBy
b2ZpbGUqIGFyaXRoUHJvZmlsZTsKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIENvZGVC
bG9jayogY29kZUJsb2NrOwogICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNw
cAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zh
bHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcwICszMSw0IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi0jaWYgRU5BQkxFKEpJVCkKLXZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERl
dGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdS
ZWdpc3RlcnNNb2RlIG1vZGUpCi17Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzSW50MzIgPSBq
aXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90
RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihyZWdzLCBtb2RlKTsK
LSAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9yZSBwcmVjaXNlIGhlcmUuCi0gICAgZW1pdFNl
dERvdWJsZShqaXQpOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsK
LSAgICBub3REb3VibGUubGluaygmaml0KTsKLSAgICBlbWl0U2V0Tm9uTnVtYmVyKGppdCk7Ci0g
ICAgZG9uZS5saW5rKCZqaXQpOwotICAgIGlzSW50MzIubGluaygmaml0KTsKLX0KLQotdm9pZCBS
ZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVscGVycyYgaml0KQotewotICAgIGpp
dC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6OkludDMyT3Zl
cmZsb3cgfCBSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwgUmVzdWx0UHJvZmlsZTo6TmVn
WmVyb0RvdWJsZSB8IFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBl
cnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7Ci19Ci0KLXZvaWQgUmVzdWx0
UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQu
b3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OdW1iZXIp
LCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7Ci19Ci0j
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQogfSAvLyBuYW1lc3BhY2UgSlNDCi0KLW5hbWVzcGFjZSBX
VEYgewotICAgIAotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIGNvbnN0IFJlc3VsdFByb2ZpbGUmIHByb2ZpbGUpCi17Ci0gICAgY29u
c3QgY2hhciogc2VwYXJhdG9yID0gIiI7Ci0KLSAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5v
bkludDMyKCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwotICAgICAgICBzZXBhcmF0
b3IgPSAifCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5l
Z1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1pl
cm9Eb3VibGUiKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7Ci0gICAgICAg
ICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKLSAgICAgICAgICAgIHNlcGFyYXRv
ciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVt
YmVyKCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgICAg
ICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJm
bG93Iik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgewotICAgICAgICAgICAgb3V0
LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkg
ewotICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7Ci0gICAgICAgIG91
dC5wcmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwotICAgIH0KLX0KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw4OCArMjA5
LDYgQEAgaW5saW5lIGludCBnZXRSYXJlQ2FzZVByb2ZpbGVCeXRlY29kZU9mZgogICAgIHJldHVy
biByYXJlQ2FzZVByb2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQ7CiB9CiAKLXN0cnVjdCBSZXN1bHRQ
cm9maWxlIHsKLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IGludCBudW1iZXJPZkZsYWdCaXRz
ID0gNTsKLQotcHVibGljOgotICAgIFJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KQot
ICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyhieXRlY29kZU9mZnNldCA8PCBudW1i
ZXJPZkZsYWdCaXRzKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCgoYnl0ZWNvZGVPZmZzZXQgPDwg
bnVtYmVyT2ZGbGFnQml0cykgPj4gbnVtYmVyT2ZGbGFnQml0cykgPT0gYnl0ZWNvZGVPZmZzZXQp
OwotICAgIH0KLQotICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTm9uTmVnWmVy
b0RvdWJsZSA9IDEgPDwgMCwKLSAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKLSAg
ICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50MzJPdmVyZmxvdyAg
ICA9IDEgPDwgMywKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKLSAgICB9Owot
Ci0gICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNl
dEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7IH0KLSAgICB1bnNpZ25lZCBzcGVjaWFsRmFz
dFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KLQot
ICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJlcik7IH0KLSAgICBib29sIGRp
ZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUo
KSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBk
aWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0Rv
dWJsZSk7IH0KLSAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKE5vbk51bWJlcik7IH0KLSAgICBib29sIGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsgfQotICAgIGJvb2wgZGlkT2Jz
ZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cp
OyB9Ci0KLSAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5v
bk5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7
IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIo
KSB7IHNldEJpdChOb25OdW1iZXIpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZs
b3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQotICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQ1
Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7IH0KLQotICAgIHZvaWQqIGFkZHJl
c3NPZkZsYWdzKCkgeyByZXR1cm4gJm1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFnczsgfQotICAgIHZv
aWQqIGFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkgeyByZXR1cm4gJm1fc3BlY2lhbEZh
c3RQYXRoQ291bnQ7IH0KLSAgICAKLSAgICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpTVmFsdWUg
dmFsdWUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgbV9i
eXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwg
Tm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IE5vbk51bWJlcjsK
LSAgICB9Ci0KLSNpZiBFTkFCTEUoSklUKSAgICAKLSAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93
IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKSBpZiBp
dCBzZWVzIGEKLSAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNlZXMgYSBub24t
bnVtYmVyLgotICAgIHZvaWQgZW1pdERldGVjdE51bWVyaWNuZXNzKENDYWxsSGVscGVycyYsIEpT
VmFsdWVSZWdzLCBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgCi0g
ICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91
YmxlIHwgTmVnWmVyb0RvdWJsZSkuCi0gICAgdm9pZCBlbWl0U2V0RG91YmxlKENDYWxsSGVscGVy
cyYpOwotICAgIAotICAgIC8vIFNldHMgTm9uTnVtYmVyLgotICAgIHZvaWQgZW1pdFNldE5vbk51
bWJlcihDQ2FsbEhlbHBlcnMmKTsKLSNlbmRpZiAvLyBFTkFCTEUoSklUKQotCi1wcml2YXRlOgot
ICAgIGJvb2wgaGFzQml0cyhpbnQgbWFzaykgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNl
dEFuZEZsYWdzICYgbWFzazsgfQotICAgIHZvaWQgc2V0Qml0KGludCBtYXNrKSB7IG1fYnl0ZWNv
ZGVPZmZzZXRBbmRGbGFncyB8PSBtYXNrOyB9Ci0KLSAgICBpbnQgbV9ieXRlY29kZU9mZnNldEFu
ZEZsYWdzOwotICAgIHVuc2lnbmVkIG1fc3BlY2lhbEZhc3RQYXRoQ291bnQgeyAwIH07Ci19Owot
Ci1pbmxpbmUgaW50IGdldFJlc3VsdFByb2ZpbGVCeXRlY29kZU9mZnNldChSZXN1bHRQcm9maWxl
KiBwcm9maWxlKQotewotICAgIHJldHVybiBwcm9maWxlLT5ieXRlY29kZU9mZnNldCgpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotbmFtZXNwYWNlIFdURiB7Ci0KLXZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYsIGNvbnN0IEpTQzo6UmVzdWx0UHJvZmlsZSYpOwotCi19IC8vIG5h
bWVzcGFjZSBXVEYKLQogI2VuZGlmIC8vIFZhbHVlUHJvZmlsZV9oCi0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgi
CiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJs
ZXMuaCIKICNpbmNsdWRlICJCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMuaCIKICNpbmNsdWRlICJJ
bnRlcnByZXRlci5oIgpAQCAtMTYwMCw3ICsxNjAxLDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRCaW5hcgogCiAgICAgaWYgKG9wY29kZUlEID09IG9wX2JpdG9yIHx8IG9w
Y29kZUlEID09IG9wX2JpdGFuZCB8fCBvcGNvZGVJRCA9PSBvcF9iaXR4b3IgfHwKICAgICAgICAg
b3Bjb2RlSUQgPT0gb3BfYWRkIHx8IG9wY29kZUlEID09IG9wX211bCB8fCBvcGNvZGVJRCA9PSBv
cF9zdWIgfHwgb3Bjb2RlSUQgPT0gb3BfZGl2KQotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQodHlwZXMudG9JbnQoKSk7CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChBcml0aFBy
b2ZpbGUodHlwZXMuZmlyc3QoKSwgdHlwZXMuc2Vjb25kKCkpLmJpdHMoKSk7CiAKICAgICByZXR1
cm4gZHN0OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgog
I2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRp
b24uaCIKICNpbmNsdWRlICJDYWxsTGlua1N0YXR1cy5oIgpAQCAtOTE0LDI5ICs5MTUsMjggQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBub2RlOwogCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmls
ZWRCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2Zp
bGUgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChsb2NrZXIsIG1fY3VycmVudEluZGV4KTsKLSAgICAgICAgICAgIGlmIChy
ZXN1bHRQcm9maWxlKSB7CisgICAgICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9
IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+YXJpdGhQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZSkg
ewogICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewogICAgICAgICAgICAgICAg
IGNhc2UgQXJpdGhBZGQ6CiAgICAgICAgICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAgICAg
ICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJv
ZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQ
cm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
LT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJl
c3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpCisgICAgICAgICAgICAgICAg
ICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDUyKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQzMk92
ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQ
cm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJ
bkJhc2VsaW5lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSB8fCBtX2lu
bGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBO
ZWdhdGl2ZVplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhO
b2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJp
dGhQcm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJl
clJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAyMDM0
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU0OCw5ICsxNTQ4LDggQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBH
cmFwaDo6bWV0aAogICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmls
ZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsK
ICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7CiAgICAgICAgICAgICBpZiAocHJvZmlsZWRCbG9j
ay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewotICAgICAgICAgICAgICAgIGlmIChSZXN1
bHRQcm9maWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobG9ja2VyLCBub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCkpCisg
ICAgICAgICAgICAgICAgaWYgKEFyaXRoUHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVj
b2RlSW5kZXgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAg
ICAgfQogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
bXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNCw3ICs2MDQsNyBA
QCB2b2lkIEpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjaygpCiAgICAgSGFuZGxlckluZm8qIGV4
Y2VwdGlvbkhhbmRsZXI7CiAgICAgYm9vbCB3aWxsQ2F0Y2hFeGNlcHRpb24gPSBtX2dyYXBoLndp
bGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG1fc3BlY3VsYXRpdmUtPm1fY3VycmVudE5v
ZGUtPm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyKTsgCiAg
ICAgaWYgKHdpbGxDYXRjaEV4Y2VwdGlvbikgewotICAgICAgICB1bnNpZ25lZCBzdHJlYW1JbmRl
eCA9IG1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggIT0gVUlOVF9NQVggPyBt
X3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4IDogbV9zcGVjdWxhdGl2ZS0+bV9z
dHJlYW0tPnNpemUoKTsKKyAgICAgICAgdW5zaWduZWQgc3RyZWFtSW5kZXggPSBtX3NwZWN1bGF0
aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4ID8gKm1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5l
U3RyZWFtSW5kZXggOiBtX3NwZWN1bGF0aXZlLT5tX3N0cmVhbS0+c2l6ZSgpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBoYWRFeGNlcHRpb24gPSBlbWl0Tm9uUGF0Y2hhYmxlRXhjZXB0
aW9uQ2hlY2soKTsKICAgICAgICAgLy8gV2UgYXNzdW1lIGhlcmUgdGhhdCB0aGlzIGlzIGNhbGxl
ZCBhZnRlciBjYWxsT3BlYXJ0aW9uKCkvYXBwZW5kQ2FsbCgpIGlzIGNhbGxlZC4KICAgICAgICAg
YXBwZW5kRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0KEV4Y2VwdGlvbkNoZWNrLCBzdHJlYW1JbmRl
eCwgb3BDYXRjaE9yaWdpbiwgZXhjZXB0aW9uSGFuZGxlciwgbV9qaXRDb2RlLT5jb21tb24ubGFz
dENhbGxTaXRlKCksIGhhZEV4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDM0NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBqaXQtPm1fb3V0T2ZMaW5l
U3RyZWFtSW5kZXggPSBtX3N0cmVhbUluZGV4OwogICAgICAgICBqaXQtPm1fb3JpZ2luID0gbV9v
cmlnaW47CiAgICAgICAgIGdlbmVyYXRlSW50ZXJuYWwoaml0KTsKLSAgICAgICAgaml0LT5tX291
dE9mTGluZVN0cmVhbUluZGV4ID0gVUlOVF9NQVg7CisgICAgICAgIGppdC0+bV9vdXRPZkxpbmVT
dHJlYW1JbmRleCA9IE51bGxvcHQ7CiAgICAgICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKQogICAg
ICAgICAgICAgaml0LT5tX2ppdC5hYm9ydFdpdGhSZWFzb24oREZHU2xvd1BhdGhHZW5lcmF0b3JG
ZWxsVGhyb3VnaCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSklUQml0WG9yR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SklURGl2R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmgiCisj
aW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSklUTXVsR2VuZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSklUUmlnaHRTaGlmdEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRv
ci5oIgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIldyaXRlQmFycmll
ckJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC0zNjIsNyArMzY0LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0bwogCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbGFt
YmRhKQogewotICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihsYW1i
ZGEsIG1fY3VycmVudE5vZGUpKTsKKyAgICBtX3Nsb3dQYXRoTGFtYmRhcy5hcHBlbmQoU2xvd1Bh
dGhMYW1iZGF7IGxhbWJkYSwgbV9jdXJyZW50Tm9kZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1f
c3RyZWFtLT5zaXplKCkpIH0pOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpydW5TbG93UGF0
aEdlbmVyYXRvcnMoUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyJiBwY1RvQ29kZU9yaWdpbk1hcEJ1
aWxkZXIpCkBAIC0zNzEsMTEgKzM3MywxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpydW5TbG93
UGF0aEdlbmVyYXRvCiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5hcHBlbmRJdGVt
KG1faml0LmxhYmVsKCksIHNsb3dQYXRoR2VuZXJhdG9yLT5vcmlnaW4oKS5zZW1hbnRpYyk7CiAg
ICAgICAgIHNsb3dQYXRoR2VuZXJhdG9yLT5nZW5lcmF0ZSh0aGlzKTsKICAgICB9Ci0gICAgZm9y
IChhdXRvJiBnZW5lcmF0b3JQYWlyIDogbV9zbG93UGF0aExhbWJkYXMpIHsKLSAgICAgICAgTm9k
ZSogY3VycmVudE5vZGUgPSBnZW5lcmF0b3JQYWlyLnNlY29uZDsKKyAgICBmb3IgKGF1dG8mIHNs
b3dQYXRoTGFtYmRhIDogbV9zbG93UGF0aExhbWJkYXMpIHsKKyAgICAgICAgTm9kZSogY3VycmVu
dE5vZGUgPSBzbG93UGF0aExhbWJkYS5jdXJyZW50Tm9kZTsKICAgICAgICAgbV9jdXJyZW50Tm9k
ZSA9IGN1cnJlbnROb2RlOworICAgICAgICBtX291dE9mTGluZVN0cmVhbUluZGV4ID0gc2xvd1Bh
dGhMYW1iZGEuc3RyZWFtSW5kZXg7CiAgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlci5h
cHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGN1cnJlbnROb2RlLT5vcmlnaW4uc2VtYW50aWMpOwot
ICAgICAgICBnZW5lcmF0b3JQYWlyLmZpcnN0KCk7CisgICAgICAgIHNsb3dQYXRoTGFtYmRhLmdl
bmVyYXRvcigpOworICAgICAgICBtX291dE9mTGluZVN0cmVhbUluZGV4ID0gTnVsbG9wdDsKICAg
ICB9CiB9CiAKQEAgLTMzNzksMzEgKzMzODMsNjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVZhbHVlQWRkKE5vZAogICAgICAgICByaWdodFJlZ3MgPSByaWdodC0+anNWYWx1ZVJlZ3Mo
KTsKICAgICB9CiAKLSAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9w
ZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGxlZnRGUFIs
IHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aChtX2ppdCk7CisgICAgSklUQWRkSUMqIGFkZElDID0gbV9qaXQuY29kZUJsb2NrKCktPmFk
ZEpJVEFkZElDKCk7CisgICAgQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT4gYWRkSUNHZW5lcmF0
aW9uU3RhdGUgPSBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPjo6Y3JlYXRlKCk7CisgICAgQXJp
dGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtX2ppdC5ncmFwaCgpLmJhc2VsaW5lQ29kZUJsb2Nr
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKKyAgICBhZGRJQy0+bV9nZW5l
cmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgbGVmdEZQUiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIs
IHNjcmF0Y2hGUFIsIGFyaXRoUHJvZmlsZSk7CisKKyAgICBib29sIGdlbmVyYXRlZElubGluZSA9
IGFkZElDLT5nZW5lcmF0ZUlubGluZShtX2ppdCwgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKwor
ICAgIGlmIChnZW5lcmF0ZWRJbmxpbmUpIHsKKyAgICAgICAgQVNTRVJUKCFhZGRJQ0dlbmVyYXRp
b25TdGF0ZS0+c2xvd1BhdGhKdW1wcy5lbXB0eSgpKTsKKworICAgICAgICBWZWN0b3I8U2lsZW50
UmVnaXN0ZXJTYXZlUGxhbiwgND4gc2F2ZVBsYW5zOworICAgICAgICBzaWxlbnRTcGlsbEFsbFJl
Z2lzdGVyc0ltcGwoZmFsc2UsIHNhdmVQbGFucywgcmVzdWx0UmVncyk7CisKKyAgICAgICAgYXV0
byBkb25lID0gbV9qaXQubGFiZWwoKTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihb
PV0gKCkgeworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVtcHMu
bGluaygmbV9qaXQpOworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRo
U3RhcnQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAgICBzaWxlbnRTcGlsbChzYXZlUGxh
bnMpOworCisgICAgICAgICAgICBhdXRvIGlubmVyTGVmdFJlZ3MgPSBsZWZ0UmVnczsKKyAgICAg
ICAgICAgIGF1dG8gaW5uZXJSaWdodFJlZ3MgPSByaWdodFJlZ3M7CisgICAgICAgICAgICBpZiAo
bGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICAgICAgaW5uZXJMZWZ0UmVncyA9
IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRDaGlsZC0+
YXNKU1ZhbHVlKCksIGlubmVyTGVmdFJlZ3MpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyaWdo
dE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICAgICAgaW5uZXJSaWdodFJlZ3MgPSBy
ZXN1bHRSZWdzOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmVWYWx1ZShyaWdodENoaWxkLT5h
c0pTVmFsdWUoKSwgaW5uZXJSaWdodFJlZ3MpOworICAgICAgICAgICAgfQogCi0gICAgQVNTRVJU
KGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7Ci0gICAgZ2VuLmVuZEp1bXBMaXN0KCkuYXBwZW5kKG1f
aml0Lmp1bXAoKSk7CisgICAgICAgICAgICBpZiAoYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNob3Vs
ZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+
c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCBy
ZXN1bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgYWRkSUMpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0
aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkLCByZXN1bHRSZWdzLCBpbm5l
ckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncyk7CiAKLSAgICBnZW4uc2xvd1BhdGhKdW1wTGlzdCgp
LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIHNpbGVudEZpbGwoc2F2ZVBsYW5zKTsKKyAgICAg
ICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICBtX2ppdC5qdW1wKCku
bGlua1RvKGRvbmUsICZtX2ppdCk7CiAKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1
bHRSZWdzKTsKKyAgICAgICAgICAgIG1faml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYg
bGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUo
KmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgp
KSB7CisgICAgICAgICAgICBsZWZ0ID0gSlNWYWx1ZU9wZXJhbmQodGhpcywgbGVmdENoaWxkKTsK
KyAgICAgICAgICAgIGxlZnRSZWdzID0gbGVmdC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgfSBl
bHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICByaWdodCA9IEpT
VmFsdWVPcGVyYW5kKHRoaXMsIHJpZ2h0Q2hpbGQpOworICAgICAgICAgICAgcmlnaHRSZWdzID0g
cmlnaHQtPmpzVmFsdWVSZWdzKCk7CisgICAgICAgIH0KIAotICAgIGlmIChsZWZ0T3BlcmFuZC5p
c0NvbnN0KCkpIHsKLSAgICAgICAgbGVmdFJlZ3MgPSByZXN1bHRSZWdzOwotICAgICAgICBtX2pp
dC5tb3ZlVmFsdWUobGVmdENoaWxkLT5hc0pTVmFsdWUoKSwgbGVmdFJlZ3MpOwotICAgIH0gZWxz
ZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkgewotICAgICAgICByaWdodFJlZ3MgPSByZXN1
bHRSZWdzOwotICAgICAgICBtX2ppdC5tb3ZlVmFsdWUocmlnaHRDaGlsZC0+YXNKU1ZhbHVlKCks
IHJpZ2h0UmVncyk7CisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Mp
OworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgIH0KIAotICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Mp
OwotCi0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKLSAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOwotCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmbV9qaXQpOwog
ICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0dXJuOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2
aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODgsMTMgKzM4OCwxNSBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMsIElu
dmFsaWRHUFJSZWcsIEludmFsaWRHUFJSZWcsIGV4Y2x1ZGUpOwogICAgIH0KLSNpZiBVU0UoSlNW
QUxVRTMyXzY0KQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgogICAgIHZv
aWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGJvb2wgZG9TcGlsbCwgQ29sbGVjdGlvblR5
cGUmIHBsYW5zLCBKU1ZhbHVlUmVncyBleGNsdWRlKQogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMs
IGV4Y2x1ZGUudGFnR1BSKCksIGV4Y2x1ZGUucGF5bG9hZEdQUigpKTsKLSAgICB9CisjZWxzZQor
ICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMsIGV4Y2x1
ZGUuZ3ByKCkpOwogI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2lsZW50U3BpbGxBbGxS
ZWdpc3RlcnMoR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBleGNsdWRlMiA9IEludmFsaWRHUFJSZWcs
IEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJlZykKICAgICB7CkBAIC0xMjg1LDYgKzEy
ODcsMTMgQEAgcHVibGljOgogCiAKICNpZiBVU0UoSlNWQUxVRTY0KQorCisgICAgSklUQ29tcGls
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9wZXJhdGlvbiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBK
SVRBZGRJQyogYWRkSUMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykpOwor
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5ncHIo
KSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJl
ZyBhcmcyLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIodWlkKSk7
CkBAIC0xNzAyLDYgKzE3MTEsMTIgQEAgcHVibGljOgogICAgIH0KICNlbHNlIC8vIFVTRShKU1ZB
TFVFMzJfNjQpCiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdz
IGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBh
cmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIu
dGFnR1BSKCksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENh
bGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BS
KCkpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQ
YXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRh
ZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlf
QVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZElt
bVB0cih1aWQpKTsKQEAgLTI4MzEsOSArMjg0NiwxNCBAQCBwdWJsaWM6CiAgICAgTWluaWZpZWRH
cmFwaCogbV9taW5pZmllZEdyYXBoOwogICAgIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
U2xvd1BhdGhHZW5lcmF0b3I+LCA4PiBtX3Nsb3dQYXRoR2VuZXJhdG9yczsKLSAgICBWZWN0b3I8
c3RkOjpwYWlyPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgTm9kZSo+LCA4PiBtX3Nsb3dQYXRoTGFt
YmRhczsKKyAgICBzdHJ1Y3QgU2xvd1BhdGhMYW1iZGEgeworICAgICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZ2VuZXJhdG9yOworICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZTsKKyAgICAgICAg
dW5zaWduZWQgc3RyZWFtSW5kZXg7CisgICAgfTsKKyAgICBWZWN0b3I8U2xvd1BhdGhMYW1iZGE+
IG1fc2xvd1BhdGhMYW1iZGFzOwogICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBt
X3BsYW5zOwotICAgIHVuc2lnbmVkIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggeyBVSU5UX01BWCB9
OworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX291dE9mTGluZVN0cmVhbUluZGV4OwogfTsKIAog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJK
SVREaXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIgog
I2luY2x1ZGUgIkpJVExlZnRTaGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5o
IgogI2luY2x1ZGUgIkpJVE11bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFJpZ2h0U2hpZnRH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKQEAgLTE1MzgsNyArMTUz
OSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAgIHsK
LSAgICAgICAgZW1pdEJpbmFyeVNuaXBwZXQ8SklUQWRkR2VuZXJhdG9yPihvcGVyYXRpb25WYWx1
ZUFkZCk7CisgICAgICAgIGVtaXRBZGRTbmlwcGV0KCk7CiAgICAgfQogICAgIAogICAgIHZvaWQg
Y29tcGlsZVN0ckNhdCgpCkBAIC04MTUwLDYgKzgxNTEsNzYgQEAgcHJpdmF0ZToKICAgICAgICAg
c2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKICAgICB9CiAKKyAgICB2b2lkIGVtaXRBZGRTbmlwcGV0
KCkKKyAgICB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7CisgICAgICAgIAorICAgICAg
ICBMVmFsdWUgbGVmdCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFs
dWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMigpKTsKKworICAgICAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnJlc3Vs
dFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZChtX3N0YXRlLmZv
ck5vZGUobm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgICAgICAKKyAgICAg
ICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7
CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihsZWZ0KTsKKyAgICAgICAg
cGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKHJpZ2h0KTsKKyAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnTWFza1Jl
Z2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZh
bHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAg
ICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KKyAg
ICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKKyAg
ICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gMTsKKyAgICAgICAgcGF0
Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gMjsKKyAgICAgICAgcGF0Y2hwb2ludC0+
Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOworICAgICAgICBT
dGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAorICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2Ny
YXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgICAgICBC
b3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9ucyA9CisgICAgICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3JlYXRpb24ocGFyYW1zKS0+anVtcHMo
aml0KTsKKworICAgICAgICAgICAgICAgIEpJVEFkZElDKiBhZGRJQyA9IGppdC5jb2RlQmxvY2so
KS0+YWRkSklUQWRkSUMoKTsKKyAgICAgICAgICAgICAgICBCb3g8TWF0aElDR2VuZXJhdGlvblN0
YXRlPiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+Ojpj
cmVhdGUoKTsKKyAgICAgICAgICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IHN0
YXRlLT5ncmFwaC5iYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5h
cml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNv
ZGVJbmRleCk7CisgICAgICAgICAgICAgICAgYWRkSUMtPm1fZ2VuZXJhdG9yID0gSklUQWRkR2Vu
ZXJhdG9yKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5ncHIoKSks
IEpTVmFsdWVSZWdzKHBhcmFtc1syXS5ncHIoKSksIHBhcmFtcy5mcFNjcmF0Y2goMCksCisgICAg
ICAgICAgICAgICAgICAgIHBhcmFtcy5mcFNjcmF0Y2goMSksIHBhcmFtcy5ncFNjcmF0Y2goMCks
IEludmFsaWRGUFJSZWcsIGFyaXRoUHJvZmlsZSk7CisKKyAgICAgICAgICAgICAgICBib29sIGdl
bmVyYXRlZElubGluZSA9IGFkZElDLT5nZW5lcmF0ZUlubGluZShqaXQsICphZGRJQ0dlbmVyYXRp
b25TdGF0ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkSW5saW5lKSB7CisgICAg
ICAgICAgICAgICAgICAgIEFTU0VSVCghYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVt
cHMuZW1wdHkoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5sYWJlbCgp
OworICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdp
c3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRk
SUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVtcHMubGluaygmaml0KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aFN0YXJ0ID0gaml0Lmxh
YmVsKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+c2hvdWxkU2xvd1BhdGhSZXBhdGNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2xvd1BhdGhDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKCpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxh
YmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGNlcHRpb25zLmdl
dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25WYWx1ZUFkZE9w
dGltaXplLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigp
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhDYWxsID0gY2FsbC5jYWxs
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFt
cy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9u
VmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3By
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5z
bG93UGF0aENhbGwgPSBjYWxsLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZqaXQpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBs
aW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUMtPmZpbmFsaXpl
SW5saW5lQ29kZSgqYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAg
ICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBq
aXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5nZXQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9wZXJhdGlvblZhbHVlQWRkLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sx
XS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOworICAgIH0KKwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEJpbmFyeUJpdE9wR2VuZXJhdG9yPgogICAgIHZvaWQgZW1pdEJpbmFy
eUJpdE9wU25pcHBldChKX0pJVE9wZXJhdGlvbl9FSkogc2xvd1BhdGhGdW5jdGlvbikKICAgICB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlzaW9u
IDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTgyNiw2ICs4MjYsMTggQEAgcHVibGljOgogICAgICAgICBhZGRDYWxs
QXJndW1lbnQoYXJnNik7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1LCBUcnVzdGVkSW1tUHRyIGFyZzYpCisg
ICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3Vt
ZW50KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50
KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmczKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzQpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnNSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsKKyAg
ICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJS
ZWcgYXJnNSwgR1BSUmVnIGFyZzYsIFRydXN0ZWRJbW1QdHIgYXJnNykKICAgICB7CiAgICAgICAg
IHJlc2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtMTU5NCw2ICsxNjA2LDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwogICAg
IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIFRydXN0
ZWRJbW1QdHIgYXJnNSwgVHJ1c3RlZEltbVB0ciBhcmc2KQorICAgIHsKKyAgICAgICAgcG9rZShh
cmc2LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDIpOworICAgICAgICBwb2tlKGFyZzUsIFBPS0Vf
QVJHVU1FTlRfT0ZGU0VUICsgMSk7CisgICAgICAgIHBva2UoYXJnNCwgUE9LRV9BUkdVTUVOVF9P
RkZTRVQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwg
YXJnMyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcg
YXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1KQogICAgIHsKICAgICAgICAgcG9rZShhcmc1LCBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIDEpOwpAQCAtMjA5OSw2ICsyMTE5LDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBU
cnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyPihhcmcxLCBhcmcyKTsK
KyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtb3Zl
KGFyZzQsIEdQUkluZm86OmFyZ3VtZW50R1BSNCk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwg
VHJ1c3RlZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJl
ZyBhcmc1KQogICAgIHsKICAgICAgICAgc2V0dXBUaHJlZVN0dWJBcmdzR1BSPEdQUkluZm86OmFy
Z3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFI0LCBHUFJJbmZvOjphcmd1bWVudEdQUjU+
KGFyZzEsIGFyZzQsIGFyZzUpOwpAQCAtMjIwNyw2ICsyMjM1LDE1IEBAIHB1YmxpYzoKICAgICB9
CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1Zh
bHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5n
cHIoKSk7CisjZWxzZQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8z
MkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5
bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFy
ZzIsIFRydXN0ZWRJbW1QdHIgYXJnMykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIy
MTUsNiArMjI1MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIo
KSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOwogI2VuZGlmCiAgICAg
fQorCisgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1ZVJlZ3MgYXJn
MSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVkSW1tUHRyIGFy
ZzQpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczLCBhcmc0KTsKKyNlbHNlCisg
ICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBh
cmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIu
dGFnR1BSKCksIGFyZzMsIGFyZzQpOworI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2V0
dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0MywxMCBAQAogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCiAjaW5jbHVkZSAiSklURGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJK
U0ludGVyZmFjZUpJVC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBDVG9Db2Rl
T3JpZ2luTWFwLmgiCi0jaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlVudXNlZFBv
aW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MzUsNyArNDM1LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgY29tcGlsZUdldEJ5SWRIb3RQYXRoKGNvbnN0IElkZW50aWZp
ZXIqKTsKIAogICAgICAgICAvLyBBcml0aG1ldGljIG9wY29kZSBoZWxwZXJzCi0gICAgICAgIHZv
aWQgZW1pdFN1YjMyQ29uc3RhbnQoaW50IGRzdCwgaW50IG9wLCBpbnQzMl90IGNvbnN0YW50LCBS
ZXN1bHRUeXBlIG9wVHlwZSk7CiAgICAgICAgIHZvaWQgZW1pdEJpbmFyeURvdWJsZU9wKE9wY29k
ZUlELCBpbnQgZHN0LCBpbnQgb3AxLCBpbnQgb3AyLCBPcGVyYW5kVHlwZXMsIEp1bXBMaXN0JiBu
b3RJbnQzMk9wMSwgSnVtcExpc3QmIG5vdEludDMyT3AyLCBib29sIG9wMUlzSW5SZWdpc3RlcnMg
PSB0cnVlLCBib29sIG9wMklzSW5SZWdpc3RlcnMgPSB0cnVlKTsKIAogI2Vsc2UgLy8gVVNFKEpT
VkFMVUUzMl82NCkKQEAgLTc2Myw3ICs3NjIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkksIGludCwgR1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJS
ZWcsIEdQUlJlZyk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJl
Z3MsIFJlc3VsdFByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywg
SlNWYWx1ZVJlZ3MsIEFyaXRoUHJvZmlsZSopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVS
ZWdzLCBKU1ZhbHVlUmVncyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJwSmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdz
LCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljLCBKU1Zh
bHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKSVRBZGRJQyopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBp
bnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcs
IEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CkBA
IC05NTMsNiArOTU1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUENUb0NvZGVPcmln
aW5NYXBCdWlsZGVyIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyOwogCisgICAgICAgIEhhc2hN
YXA8SW5zdHJ1Y3Rpb24qLCBKSVRBZGRJQyo+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDOworICAg
ICAgICBIYXNoTWFwPEluc3RydWN0aW9uKiwgTWF0aElDR2VuZXJhdGlvblN0YXRlPiBtX2luc3Ry
dWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsKKwogICAgICAgICBib29sIG1fY2FuQmVP
cHRpbWl6ZWQ7CiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZE9ySW5saW5lZDsKICAgICAg
ICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxpbmc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDExICsyNiw1MiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVEFk
ZEdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAiSklU
TWF0aElDLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLXZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYgaml0KQorSklUTWF0aElDSW5saW5lUmVzdWx0IEpJVEFkZEdlbmVyYXRv
cjo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZSYgc3RhdGUpCit7CisgICAgLy8gV2UgZGVmYXVsdCB0byBzcGVjdWxhdGluZyBpbnQzMi4KKyAg
ICBPYnNlcnZlZFR5cGUgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgT2Jz
ZXJ2ZWRUeXBlIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpOworICAgIGlmIChtX2Fy
aXRoUHJvZmlsZSkgeworICAgICAgICBsaHMgPSBtX2FyaXRoUHJvZmlsZS0+bGhzT2JzZXJ2ZWRU
eXBlKCk7CisgICAgICAgIHJocyA9IG1fYXJpdGhQcm9maWxlLT5yaHNPYnNlcnZlZFR5cGUoKTsK
KyAgICAgICAgaWYgKGxocy5pc0VtcHR5KCkgfHwgcmhzLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgICAgICAgICByaHMgPSBP
YnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChs
aHMuaXNPbmx5Tm9uTnVtYmVyKCkgJiYgcmhzLmlzT25seU5vbk51bWJlcigpKQorICAgICAgICBy
ZXR1cm4gSklUTWF0aElDSW5saW5lUmVzdWx0OjpEb250R2VuZXJhdGU7CisKKyAgICBpZiAoKGxo
cy5pc09ubHlJbnQzMigpIHx8IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkpICYmIChyaHMu
aXNPbmx5SW50MzIoKSB8fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkpIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFu
ZC5pc0NvbnN0SW50MzIoKSk7CisgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50
MzIoKSkKKyAgICAgICAgICAgIHN0YXRlLnNsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdEludDMyKG1fbGVmdCkpOworICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJ
bnQzMigpKQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5j
aElmTm90SW50MzIobV9yaWdodCkpOworCisgICAgICAgIGlmIChtX2xlZnRPcGVyYW5kLmlzQ29u
c3RJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CisgICAgICAgICAg
ICBKU1ZhbHVlUmVncyB2YXIgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9yaWdo
dCA6IG1fbGVmdDsKKyAgICAgICAgICAgIGludDMyX3QgY29uc3RWYWx1ZSA9IG1fbGVmdE9wZXJh
bmQuaXNDb25zdEludDMyKCkgPyBtX2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpIDogbV9yaWdo
dE9wZXJhbmQuYXNDb25zdEludDMyKCk7CisgICAgICAgICAgICBzdGF0ZS5zbG93UGF0aEp1bXBz
LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFyLnBheWxv
YWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdFZhbHVlKSwgbV9zY3JhdGNoR1BSKSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5hcHBlbmQo
aml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQ
UigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgaml0LmJv
eEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOworICAgICAgICByZXR1cm4gSklUTWF0aElD
SW5saW5lUmVzdWx0OjpHZW5lcmF0ZWRGYXN0UGF0aDsKKyAgICB9CisKKyAgICByZXR1cm4gSklU
TWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZUZ1bGxTbmlwcGV0OworfQorCitib29sIEpJVEFk
ZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNsb3dQ
YXRoSnVtcExpc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVn
KTsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IG1fbGVmdC5wYXlsb2FkR1BSKCkpOwpAQCAt
NDMsMTIgKzg0LDggQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
CiAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3Bl
cmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgCi0gICAgaWYgKCFtX2xlZnRPcGVyYW5kLm1pZ2h0
QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWlnaHRCZU51bWJlcigpKSB7Ci0gICAgICAg
IEFTU0VSVCghbV9kaWRFbWl0RmFzdFBhdGgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgbV9kaWRFbWl0RmFzdFBhdGggPSB0cnVlOworICAgIGlmICghbV9sZWZ0T3BlcmFuZC5taWdo
dEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwg
bV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFy
ID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmlnaHQgOiBtX2xlZnQ7CkBAIC01
OCwyMCArOTUsMjAgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
ICAgICAgICAvLyBUcnkgdG8gZG8gaW50VmFyICsgaW50Q29uc3RhbnQuCiAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcCBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdEludDMyKHZhcik7CiAKLSAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxw
ZXJzOjpPdmVyZmxvdywgdmFyLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25z
dE9wci5hc0NvbnN0SW50MzIoKSksIG1fc2NyYXRjaEdQUikpOworICAgICAgICBzbG93UGF0aEp1
bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFy
LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdE9wci5hc0NvbnN0SW50MzIo
KSksIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIs
IG1fcmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7Cisg
ICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICBpZiAoIWpp
dC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBM
aXN0LmFwcGVuZChub3RJbnQzMik7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBz
bG93UGF0aEp1bXBMaXN0LmFwcGVuZChub3RJbnQzMik7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRyeSB0byBkbyBkb3VibGVWYXIgKyBkb3VibGUo
aW50Q29uc3RhbnQpLgogICAgICAgICBub3RJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICBpZiAo
IXZhck9wci5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BSKSk7Cisg
ICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIo
dmFyLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0cnVj
dGl2ZSh2YXIsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwogCkBAIC04
OSwyMiArMTI2LDI0IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMK
ICAgICAgICAgbGVmdE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fbGVmdCk7CiAgICAg
ICAgIHJpZ2h0Tm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CiAKLSAgICAg
ICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJz
OjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1f
c2NyYXRjaEdQUikpOworCisgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFu
Y2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9s
ZWZ0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0LmJveEludDMy
KG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOwotICAgICAgICBtX2VuZEp1bXBMaXN0LmFwcGVuZChq
aXQuanVtcCgpKTsKKyAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworCiAK
ICAgICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKLSAgICAgICAgICAg
IG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobGVmdE5vdEludCk7Ci0gICAgICAgICAgICBtX3Ns
b3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGxlZnROb3RJbnQpOworICAgICAg
ICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQocmlnaHROb3RJbnQpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBsZWZ0Tm90SW50LmxpbmsoJmppdCk7
CiAgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAg
ICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1f
bGVmdCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKICAgICAgICAg
aWYgKCFtX3JpZ2h0T3BlcmFuZC5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1f
c2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1f
c2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJy
YW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC51
bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1fbGVmdCwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIs
IG1fc2NyYXRjaEZQUik7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCByaWdodElzRG91Ymxl
ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CkBAIC0xMTQsNyArMTUzLDcgQEAgdm9p
ZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgICAgIHJpZ2h0Tm90
SW50LmxpbmsoJmppdCk7CiAgICAgICAgIGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlz
TnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQ
YXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0
Y2hHUFIpKTsKIAogICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUobV9sZWZ0LnBheWxv
YWRHUFIoKSwgbV9sZWZ0RlBSKTsKIApAQCAtMTI4LDEwICsxNjcsMTIgQEAgdm9pZCBKSVRBZGRH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgLy8gRG8gZG91YmxlVmFyICsgZG91
YmxlVmFyLgogICAgIGppdC5hZGREb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKLSAgICBp
ZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3Vi
bGUoaml0KTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAgICAgIG1fYXJpdGhQcm9maWxl
LT5lbWl0U2V0RG91YmxlKGppdCk7CiAgICAgICAgIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0
RlBSLCBtX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2Vu
ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE2ICsyOSwyMyBAQAogI2lmIEVOQUJMRShK
SVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUNJbmxp
bmVSZXN1bHQuaCIKKyNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU25pcHBl
dE9wZXJhbmQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0cnVjdCBNYXRoSUNHZW5lcmF0aW9u
U3RhdGU7CisKIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CisgICAgSklUQWRkR2Vu
ZXJhdG9yKCkKKyAgICB7IH0KKwogICAgIEpJVEFkZEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBs
ZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAg
ICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBS
UmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBu
dWxscHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAg
ICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3Bl
cmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsMTYg
KzU1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAg
ICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3Jh
dGNoRlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAg
ICAsIG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCgh
bV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdElu
dDMyKCkpOwogICAgIH0KIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMm
KTsKLQotICAgIGJvb2wgZGlkRW1pdEZhc3RQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9kaWRFbWl0
RmFzdFBhdGg7IH0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCgpIHsg
cmV0dXJuIG1fZW5kSnVtcExpc3Q7IH0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBzbG93
UGF0aEp1bXBMaXN0KCkgeyByZXR1cm4gbV9zbG93UGF0aEp1bXBMaXN0OyB9CisgICAgSklUTWF0
aElDSW5saW5lUmVzdWx0IGdlbmVyYXRlSW5saW5lKENDYWxsSGVscGVycyYsIE1hdGhJQ0dlbmVy
YXRpb25TdGF0ZSYpOworICAgIGJvb2wgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlz
dCYgc2xvd1BhdGhKdW1wTGlzdCk7CiAKIHByaXZhdGU6CiAgICAgU25pcHBldE9wZXJhbmQgbV9s
ZWZ0T3BlcmFuZDsKQEAgLTY5LDExICs3Myw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmln
aHRGUFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBS
OwotICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKLSAgICBib29sIG1fZGlkRW1p
dEZhc3RQYXRoIHsgZmFsc2UgfTsKLQotICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRK
dW1wTGlzdDsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fc2xvd1BhdGhKdW1wTGlzdDsK
KyAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGht
ZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSklU
KQogI2luY2x1ZGUgIkpJVC5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SklUQml0QW5kR2VuZXJhdG9yLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSklURGl2
R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUSW5saW5lcy5oIgogI2luY2x1ZGUgIkpJVExlZnRT
aGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2luY2x1ZGUgIkpJVE11
bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVE5lZ0dlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJ
VE9wZXJhdGlvbnMuaCIKQEAgLTQ1LDEwICs0NywxMCBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUg
IlNsb3dQYXRoQ2FsbC5oIgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9qbGVzcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNjc1LDIwICs2Nzcs
MjYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Vyc2hpZnQoSW5zdHJ1Y3RpbwogICAgIHNsb3dQ
YXRoQ2FsbC5jYWxsKCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgc3RhdGljIE9wZXJhbmRUeXBlcyBn
ZXRPcGVyYW5kVHlwZXMoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQoreworICAgIHJldHVybiBP
cGVyYW5kVHlwZXMoQXJpdGhQcm9maWxlOjpmcm9tSW50KGluc3RydWN0aW9uWzRdLnUub3BlcmFu
ZCkubGhzUmVzdWx0VHlwZSgpLCBBcml0aFByb2ZpbGU6OmZyb21JbnQoaW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kKS5yaHNSZXN1bHRUeXBlKCkpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgcmVzdWx0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21J
bnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVj
dGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpT
VmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogICAgIEdQ
UlJlZyBzY3JhdGNoR1BSID0gcmVnVDI7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlk
RlBSUmVnOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMo
Y3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJl
Z3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7
CkBAIC02OTYsOSArNzA0LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBj
dXJyZQogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0g
ICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZSht
X2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5h
cml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJh
bmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRP
cGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTcxNSw0NyArNzIzLDQ3IEBAIHZvaWQgSklUOjpl
bWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAgICBpZiAoIXJpZ2h0T3BlcmFuZC5pc0Nv
bnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwog
Ci0gICAgSklUQWRkR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1
bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBz
Y3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICBKSVRBZGRJQyogYWRk
SUMgPSBtX2NvZGVCbG9jay0+YWRkSklUQWRkSUMoKTsKIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKCp0aGlzKTsKKyAgICBtX2luc3RydWN0aW9uVG9KSVRBZGRJQy5hZGQoY3VycmVudEluc3Ry
dWN0aW9uLCBhZGRJQyk7CisgICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRp
b25TdGF0ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmFkZChjdXJy
ZW50SW5zdHJ1Y3Rpb24sIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSgpKS5pdGVyYXRvci0+dmFsdWU7
CiAKLSAgICBpZiAoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKSB7Ci0gICAgICAgIGdlbi5lbmRKdW1w
TGlzdCgpLmxpbmsodGhpcyk7Ci0gICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0
LCByZXN1bHRSZWdzKTsKLSAgICAgICAgCi0gICAgICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0
aEp1bXBMaXN0KCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExp
c3QoKS5lbXB0eSgpKTsKLSAgICAgICAgQVNTRVJUKGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1w
dHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7Ci0gICAgICAgICAgICBpZiAobGVm
dE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3Qo
KSkKLSAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdz
KTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7Ci0gICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMs
IGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7Ci0gICAgICAgICAgICBzbG93UGF0
aENhbGwuY2FsbCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGFkZElDLT5tX2dlbmVyYXRvciA9
IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBs
ZWZ0UmVncywgcmlnaHRSZWdzLCBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNo
RlBSLCBhcml0aFByb2ZpbGUpOworCisgICAgYm9vbCBnZW5lcmF0ZWRJbmxpbmVDb2RlID0gYWRk
SUMtPmdlbmVyYXRlSW5saW5lKCp0aGlzLCBhZGRJQ0dlbmVyYXRpb25TdGF0ZSk7CisgICAgaWYg
KCFnZW5lcmF0ZWRJbmxpbmVDb2RlKSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0
KCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwor
ICAgICAgICBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisKKyAgICAgICAgaWYgKGFyaXRo
UHJvZmlsZSkKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9m
aWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgYXJpdGhQcm9maWxlKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgfSBlbHNlCisgICAgICAgIGFk
ZFNsb3dDYXNlKGFkZElDR2VuZXJhdGlvblN0YXRlLnNsb3dQYXRoSnVtcHMpOworICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JC
eXRlY29kZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKKyAg
ICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2VuZXJhdGlvblN0YXRlID0gbV9pbnN0cnVj
dGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuZmluZChjdXJyZW50SW5zdHJ1Y3Rpb24pLT52
YWx1ZTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93UGF0aFN0YXJ0ID0gbGFiZWwoKTsK
KwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAg
IGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBl
cyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3Bl
cmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpT
VmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gbGVmdFJlZ3M7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJh
bmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBK
U1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBs
ZWZ0UmVnczsKQEAgLTc2OSwxOCArNzc3LDI2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9hZGQo
SW5zdHJ1Y3Rpb24qIGMKICAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIpKQog
ICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3RhbnRJbnQo
b3AyKSk7CiAKKyAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgIGlmIChyaWdodE9wZXJhbmQuaXND
b25zdCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsK
KworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDLmdldChjdXJy
ZW50SW5zdHJ1Y3Rpb24pOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKLSAgICAg
ICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25z
dCgpKQotICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7
Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5z
dXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRS
ZWdzLCByZXN1bHRQcm9maWxlKTsKLSAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1
bHQsIHJlc3VsdFJlZ3MpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBz
bG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAg
ICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKLSAgICB9CisgICAgICAgIEFyaXRoUHJvZmlsZSYg
YXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0
cnVjdGlvbik7CisgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zaG91bGRTbG93UGF0
aFJlcGF0Y2gpCisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93UGF0aENhbGwg
PSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZSwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgJmFyaXRoUHJvZmlsZSwgYWRkSUMpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93UGF0aENhbGwgPSBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRS
ZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOworICAgIH0gZWxzZQorICAgICAgICBhZGRJ
Q0dlbmVyYXRpb25TdGF0ZS5zbG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlQWRkT3B0aW1pemUsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGFkZElDKTsK
KyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisKKyAgICBh
ZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgTWF0aElD
R2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJ
VEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQoY3VycmVudEluc3RydWN0aW9uKS0+dmFsdWU7Cisg
ICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUoYWRkSUNHZW5lcmF0aW9uU3RhdGUsIGxp
bmtCdWZmZXIpOworICAgIH0pOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTc4OCwxNCArODA0LDE1IEBAIHZvaWQgSklUOjpl
bWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihj
dXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwogICAgIEdQUlJlZyBz
Y3JhdGNoR1BSID0gcmVnVDI7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9w
ZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3Mg
PSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3Mg
PSBsZWZ0UmVnczsKQEAgLTgwMyw5ICs4MjAsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5z
dHJ1Y3Rpb24qIGN1cnJlCiAjZW5kaWYKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7
CiAKLSAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0
aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9m
aWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9j
b2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBT
bmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3Bl
cmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtODMxLDcgKzg0OCw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAKICAgICBKSVREaXZHZW5lcmF0b3IgZ2Vu
KGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJl
Z3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJl
c3VsdFByb2ZpbGUpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3Jh
dGNoRlBSLCBhcml0aFByb2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwogCkBAIC04NjEsMTUgKzg3OCwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAg
aW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5
cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMg
PSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3RydWN0aW9uKSk7
CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgSlNW
YWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMik7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIg
PSByZWdUMzsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRGUFJSZWc7CiAjZWxzZQor
ICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rp
b24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1Qw
KTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIp
OwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTg3Nyw5ICs4OTUs
OSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVn
IHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51
bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJv
ZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQp
OworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBD
KGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0
eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vj
b25kKCkpOwpAQCAtODk3LDcgKzkxNSw3IEBAIHZvaWQgSklUOjplbWl0X29wX211bChJbnN0cnVj
dGlvbiogY3VycmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVn
cyk7CiAKICAgICBKSVRNdWxHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVn
VDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBmcFJl
Z1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0aFByb2ZpbGUpOwogCiAg
ICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC05MDksMTIgKzkyNywxMiBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQo
Z2VuLnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdFByb2Zp
bGUpIHsKKyAgICAgICAgaWYgKGFyaXRoUHJvZmlsZSkgewogICAgICAgICAgICAgaWYgKGxlZnRP
cGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAgICAgICAgICAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAgICAgICAgIGlmIChyaWdodE9wZXJh
bmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywg
cmVzdWx0UHJvZmlsZSk7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVl
TXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGFyaXRoUHJvZmls
ZSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVn
cyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CkBAIC05MzAs
MTMgKzk0OCwxNCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiAg
ICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50
IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0g
T3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5k
VHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3Mgcmln
aHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3Mg
PSBsZWZ0UmVnczsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5
cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRS
ZWdzOwpAQCAtOTU1LDggKzk3NCw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1
Y3Rpb24qIGMKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVn
cyk7CiAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAg
ICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwotICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3Vs
dFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVz
dWx0UHJvZmlsZSk7CisgICAgICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2Rl
QmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJl
Z3MsIHJpZ2h0UmVncywgJmFyaXRoUHJvZmlsZSk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICB9IGVsc2UgewogICAgICAgICBKSVRTbG93
UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRo
X211bCk7CkBAIC05NjksMTUgKzk4OCwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1
Y3Rpb24qIGN1cnJlCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAg
ICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFu
ZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3RydWN0aW9u
KSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CiAgICAg
SlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1Qy
OwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQUlJlZzsKICNlbHNlCisgICAgT3Bl
cmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAg
ICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAg
IEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAg
SlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtOTg1LDkgKzEwMDUsOSBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0
Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7
CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9
IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAg
ICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJl
bnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5m
aXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkp
OwpAQCAtOTk2LDcgKzEwMTYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24q
IGN1cnJlCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAKICAg
ICBKSVRTdWJHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0
Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBmcFJlZ1QwLCBmcFJl
Z1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0aFByb2ZpbGUpOwogCiAgICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC0xMDIzLDggKzEwNDMsOCBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3Bfc3ViKEluc3RydWN0aW9uKiBjCiAjZW5kaWYKIAogICAgIGlmIChzaG91bGRF
bWl0UHJvZmlsaW5nKCkpIHsKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOwotICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBBcml0aFByb2Zp
bGUmIGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50
SW5zdHJ1Y3Rpb24pOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3ViUHJv
ZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOwog
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9zdWIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXRo
Q29tbW9uLmgiCiAKQEAgLTEwMSw5ICsxMDIsOSBAQCB2b2lkIEpJVERpdkdlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aChDCiAgICAgfQogCiAgICAgLy8gSXMgdGhlIHJlc3VsdCBhY3R1YWxseSBh
biBpbnRlZ2VyPyBUaGUgREZHIEpJVCB3b3VsZCByZWFsbHkgbGlrZSB0byBrbm93LiBJZiBpdCdz
Ci0gICAgLy8gbm90IGFuIGludGVnZXIsIHdlIGluY3JlbWVudCBhIGNvdW50LiBJZiB0aGlzIHRv
Z2V0aGVyIHdpdGggdGhlIHNsb3cgY2FzZSBjb3VudGVyCi0gICAgLy8gYXJlIGJlbG93IHRocmVz
aG9sZCB0aGVuIHRoZSBERkcgSklUIHdpbGwgY29tcGlsZSB0aGlzIGRpdmlzaW9uIHdpdGggYSBz
cGVjdWxhdGlvbgotICAgIC8vIHRoYXQgdGhlIHJlbWFpbmRlciBpcyB6ZXJvLgorICAgIC8vIG5v
dCBhbiBpbnRlZ2VyLCB3ZSBzZXQgYSBiaXQuIElmIHRoaXMgdG9nZXRoZXIgd2l0aCB0aGUgc2xv
dyBjYXNlIGNvdW50ZXIgYXJlIGJlbG93CisgICAgLy8gdGhyZXNob2xkIHRoZW4gdGhlIERGRyBK
SVQgd2lsbCBjb21waWxlIHRoaXMgZGl2aXNpb24gd2l0aCBhIHNwZWN1bGF0aW9uIHRoYXQgdGhl
CisgICAgLy8gcmVtYWluZGVyIGlzIHplcm8uCiAKICAgICAvLyBBcyB3ZWxsLCB0aGVyZSBhcmUg
Y2FzZXMgd2hlcmUgYSBkb3VibGUgcmVzdWx0IGhlcmUgd291bGQgY2F1c2UgYW4gaW1wb3J0YW50
IGZpZWxkCiAgICAgLy8gaW4gdGhlIGhlYXAgdG8gc29tZXRpbWVzIGhhdmUgZG91YmxlcyBpbiBp
dCwgcmVzdWx0aW5nIGluIGRvdWJsZSBwcmVkaWN0aW9ucyBnZXR0aW5nCkBAIC0xMjgsOCArMTI5
LDggQEAgdm9pZCBKSVREaXZHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgbm90
RG91YmxlWmVyby5saW5rKCZqaXQpOwogI2VuZGlmCi0gICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkK
LSAgICAgICAgaml0LmFkZDMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBDQ2FsbEhl
bHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZlNwZWNpYWxG
YXN0UGF0aENvdW50KCkpKTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAgICAgIGppdC5v
cjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6c3BlY2lhbEZhc3RQ
YXRoQml0KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFk
ZHJlc3NPZkJpdHMoKSkpOwogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3Iu
aAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZH
ZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAg
SklURGl2R2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFu
ZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3Mg
bGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcg
cmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKLSAgICAgICAg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIpCisgICAgICAgIEFyaXRoUHJv
ZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxl
ZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAg
ICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAg
LCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BS
KQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQotICAgICAgICAsIG1fcmVzdWx0
UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAsIG1fYXJpdGhQcm9maWxlKGFyaXRoUHJv
ZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIo
KSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIH0KQEAgLTcxLDcgKzcx
LDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3Jh
dGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9y
ZXN1bHRQcm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7CiAgICAgYm9v
bCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw5ICs0MTYsMzMgQEAgQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLWlubGluZSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnAgb3BlcmF0aW9uLCBKU1Zh
bHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFJlc3Vs
dFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBKU1Zh
bHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIpCiB7Ci0g
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIo
cmVzdWx0UHJvZmlsZSkpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBh
cmcyKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisK
K0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKSkFycCBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1
ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUp
Cit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJ
bW1QdHIoYXJpdGhQcm9maWxlKSk7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVzdWx0cyhyZXN1bHQpOworICAgIHJl
dHVybiBjYWxsOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnBKYWljIG9wZXJhdGlvbiwgSlNWYWx1
ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBBcml0aFBy
b2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqIGFkZElDKQoreworICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGFyaXRoUHJvZmlsZSks
IFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAg
cmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1ZhbHVl
UmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFkZElD
KiBhZGRJQykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwg
VHJ1c3RlZEltbVB0cihhZGRJQykpOwogICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKICAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKICAgICBy
ZXR1cm4gY2FsbDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUMuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEpJVCkKKworI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgorI2lu
Y2x1ZGUgIkpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
KyNpbmNsdWRlICJSZXBhdGNoLmgiCisjaW5jbHVkZSAiU25pcHBldE9wZXJhbmQuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtCdWZmZXI7CisKK3N0cnVjdCBNYXRoSUNHZW5lcmF0
aW9uU3RhdGUgeworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBmYXN0UGF0aFN0YXJ0OworICAg
IE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBmYXN0UGF0aEVuZDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
TGFiZWwgc2xvd1BhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzbG93UGF0aENh
bGw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcHM7CisgICAgYm9v
bCBzaG91bGRTbG93UGF0aFJlcGF0Y2g7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJh
dG9yVHlwZT4KK2NsYXNzIEpJVE1hdGhJQyB7CitwdWJsaWM6CisgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgZG9uZUxvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1f
aW5saW5lU2l6ZSk7IH0KKyAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFN0YXJ0TG9jYXRp
b24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmxhYmVsQXRPZmZzZXQobV9kZWx0YUZyb21TdGFy
dFRvU2xvd1BhdGhTdGFydCk7IH0KKyAgICBDb2RlTG9jYXRpb25DYWxsIHNsb3dQYXRoQ2FsbExv
Y2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5jYWxsQXRPZmZzZXQobV9kZWx0YUZyb21T
dGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24pOyB9CisKKyAgICBib29sIGdlbmVyYXRlSW5saW5l
KENDYWxsSGVscGVycyYgaml0LCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQorICAgIHsK
KyAgICAgICAgc3RhdGUuZmFzdFBhdGhTdGFydCA9IGppdC5sYWJlbCgpOworICAgICAgICBKSVRN
YXRoSUNJbmxpbmVSZXN1bHQgcmVzdWx0ID0gbV9nZW5lcmF0b3IuZ2VuZXJhdGVJbmxpbmUoaml0
LCBzdGF0ZSk7CisKKyAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKKyAgICAgICAgY2FzZSBKSVRN
YXRoSUNJbmxpbmVSZXN1bHQ6OkdlbmVyYXRlZEZhc3RQYXRoOiB7CisgICAgICAgICAgICBzdGF0
ZS5zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSB0cnVlOworICAgICAgICAgICAgc3RhdGUuZmFzdFBh
dGhFbmQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIGNhc2UgSklUTWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZUZ1bGxTbmlwcGV0
OiB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7Cisg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IG1fZ2VuZXJhdG9yLmdlbmVyYXRlRmFzdFBhdGgoaml0
LCBlbmRKdW1wTGlzdCwgc3RhdGUuc2xvd1BhdGhKdW1wcyk7CisgICAgICAgICAgICBpZiAocmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgc3RhdGUuZmFzdFBhdGhFbmQgPSBqaXQubGFiZWwoKTsK
KyAgICAgICAgICAgICAgICBzdGF0ZS5zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBlbmRKdW1wTGlzdC5saW5rKCZqaXQpOworICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgICAgIGNhc2UgSklUTWF0aElDSW5saW5lUmVzdWx0OjpEb250R2VuZXJhdGU6
IHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdm9pZCBnZW5lcmF0ZU91dE9mTGluZShWTSYg
dm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBGdW5jdGlvblB0ciBjYWxsUmVwbGFjZW1lbnQpCisg
ICAgeworICAgICAgICAvLyBXZSByZXdpcmUgdG8gdGhlIGFsdGVybmF0ZSByZWdhcmRsZXNzIG9m
IHdoZXRoZXIgb3Igbm90IHdlIGNhbiBhbGxvY2F0ZSB0aGUgb3V0IG9mIGxpbmUgcGF0aAorICAg
ICAgICAvLyBiZWNhdXNlIGlmIHdlIGZhaWwgYWxsb2NhdGluZyB0aGUgb3V0IG9mIGxpbmUgcGF0
aCwgd2UgZG9uJ3Qgd2FudCB0byB3YWlzdCB0aW1lIHRyeWluZyB0bworICAgICAgICAvLyBhbGxv
Y2F0ZSBpdCBpbiB0aGUgZnV0dXJlLgorICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwo
Y29kZUJsb2NrLCBzbG93UGF0aENhbGxMb2NhdGlvbigpLCBjYWxsUmVwbGFjZW1lbnQpOworCisg
ICAgICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOwor
CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7IAorICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcExpc3Q7IAorICAg
ICAgICAgICAgYm9vbCBlbWl0dGVkRmFzdFBhdGggPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUZhc3RQ
YXRoKGppdCwgZW5kSnVtcExpc3QsIHNsb3dQYXRoSnVtcExpc3QpOworICAgICAgICAgICAgaWYg
KCFlbWl0dGVkRmFzdFBhdGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOworCisgICAgICAgICAgICBMaW5rQnVmZmVy
IGxpbmtCdWZmZXIodm0sIGppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOwor
ICAgICAgICAgICAgaWYgKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhlbmRKdW1wTGlz
dCwgZG9uZUxvY2F0aW9uKCkpOworICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dQYXRo
SnVtcExpc3QsIHNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKKworICAgICAgICAgICAgbV9jb2Rl
ID0gRklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBsaW5rQnVm
ZmVyLCAoIkpJVE1hdGhJQzogZ2VuZXJhdGluZyBvdXQgb2YgbGluZSBJQyBzbmlwcGV0IikpOwor
ICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0s
IGNvZGVCbG9jayk7CisgICAgICAgICAgICBhdXRvIGp1bXAgPSBqaXQuanVtcCgpOworICAgICAg
ICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhIG5vcCBzbGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hv
dWxkIGJlIGp1bXBpbmcgaW50byB0aGUgbWlkZGxlIG9mIGFuIElDLgorICAgICAgICAgICAgYm9v
bCBuZWVkc0JyYW5jaENvbXBhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIExpbmtCdWZmZXIg
bGlua0J1ZmZlcihqaXQsIG1faW5saW5lU3RhcnQuZGF0YUxvY2F0aW9uKCksIGppdC5tX2Fzc2Vt
Ymxlci5idWZmZXIoKS5jb2RlU2l6ZSgpLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkLCBuZWVk
c0JyYW5jaENvbXBhY3Rpb24pOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobGlua0J1ZmZl
ci5pc1ZhbGlkKCkpOworICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2Nh
dGlvbkxhYmVsKG1fY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICAg
ICAgRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCAoIkpJVE1hdGhJQzogbGlua2luZyBjb25zdGFu
dCBqdW1wIHRvIG91dCBvZiBsaW5lIHN0dWIiKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2
b2lkIGZpbmFsaXplSW5saW5lQ29kZShjb25zdCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRl
LCBMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKQorICAgIHsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgc3RhcnQgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUuZmFzdFBhdGhTdGFydCk7Cisg
ICAgICAgIG1faW5saW5lU3RhcnQgPSBzdGFydDsKKworICAgICAgICBtX2lubGluZVNpemUgPSBN
YWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgc3Rh
cnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5mYXN0UGF0aEVuZCkpOworICAgICAgICBB
U1NFUlQobV9pbmxpbmVTaXplID4gMCk7CisKKyAgICAgICAgbV9kZWx0YUZyb21TdGFydFRvU2xv
d1BhdGhDYWxsTG9jYXRpb24gPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2Rl
UHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5zbG93
UGF0aENhbGwpKTsKKyAgICAgICAgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCA9IE1h
Y3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBzdGFy
dCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLnNsb3dQYXRoU3RhcnQpKTsKKyAgICB9CisK
KyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbV9jb2RlOworICAgIENvZGVMb2NhdGlvbkxhYmVs
IG1faW5saW5lU3RhcnQ7CisgICAgaW50MzJfdCBtX2lubGluZVNpemU7CisgICAgaW50MzJfdCBt
X2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbjsKKyAgICBpbnQzMl90IG1fZGVs
dGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQ7CisgICAgR2VuZXJhdG9yVHlwZSBtX2dlbmVyYXRv
cjsKK307CisKK3R5cGVkZWYgSklUTWF0aElDPEpJVEFkZEdlbmVyYXRvcj4gSklUQWRkSUM7CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1l
c3BhY2UgSlNDIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcj4gY2xhc3MgSklUTWF0
aElDOworY2xhc3MgSklUQWRkR2VuZXJhdG9yOworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRH
ZW5lcmF0b3I+IEpJVEFkZElDOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0lubGlu
ZVJlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0
aElDSW5saW5lUmVzdWx0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRNYXRoSUNJbmxpbmVSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEpJVCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gY2xh
c3MgSklUTWF0aElDSW5saW5lUmVzdWx0IHsKKyAgICBHZW5lcmF0ZWRGYXN0UGF0aCwKKyAgICBH
ZW5lcmF0ZUZ1bGxTbmlwcGV0LAorICAgIERvbnRHZW5lcmF0ZQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKQEAgLTEzNyw3ICsxMzksNyBAQCB2b2lk
IEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgLy8gRG8gZG91YmxlVmFy
ICogZG91YmxlVmFyLgogICAgIGppdC5tdWxEb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsK
IAotICAgIGlmICghbV9yZXN1bHRQcm9maWxlKQorICAgIGlmICghbV9hcml0aFByb2ZpbGUpCiAg
ICAgICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIC8vIFRoZSBJbnQ1MiBvdmVyZmxvdyBjaGVjayBiZWxvdyBpbnRlbnRpb25hbGx5IG9t
aXRzIDFsbCA8PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVlLgpAQCAtMTQ5LDE4
ICsxNTEsMTggQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAg
ICAgICBqaXQubW92ZURvdWJsZVRvNjQobV9sZWZ0RlBSLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkp
OwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90TmVnYXRpdmVaZXJvID0gaml0LmJyYW5j
aDY0KENDYWxsSGVscGVyczo6Tm90RXF1YWwsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tNjQobmVnYXRpdmVaZXJvQml0cykpOwogCi0gICAgICAgIGppdC5v
cjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3Vi
bGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJl
c3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoQXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVaZXJv
LmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRl
QWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0
Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOb25OZWdaZXJv
RG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFk
ZHJlc3NPZkJpdHMoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnBheWxvYWRHUFIo
KSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJ
bW0zMig1MiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC5hbmQzMihDQ2FsbEhlbHBlcnM6
OkltbTMyKDB4N2ZmKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
IG5vSW50NTJPdmVyZmxvdyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Okxlc3NUaGFuT3JF
cXVhbCwgbV9zY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigweDQzMSkpOwog
Ci0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2Zp
bGU6OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3Vs
dFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxw
ZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwog
ICAgICAgICBub0ludDUyT3ZlcmZsb3cubGluaygmaml0KTsKIAogICAgICAgICBkb25lLmxpbmso
JmppdCk7CkBAIC0xNzEsMTggKzE3MywxOCBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChDCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5hcHBlbmQoaml0LmJyYW5jaDMy
KENDYWxsSGVscGVyczo6Tm90RXF1YWwsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoMCkpKTsKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmFwcGVuZChq
aXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQudGFnR1BSKCksIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG5lZ2F0aXZlWmVyb0JpdHMgPj4gMzIpKSk7CiAKLSAg
ICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6
TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJv
ZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6
OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3RO
ZWdhdGl2ZVplcm8ubGluaygmaml0KTsKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVy
czo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOwor
ICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6
Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRo
UHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQu
dGFnR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVs
cGVyczo6SW1tMzIoNTIgLSAzMiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC5hbmQzMihD
Q2FsbEhlbHBlcnM6OkltbTMyKDB4N2ZmKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wIG5vSW50NTJPdmVyZmxvdyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6
Okxlc3NUaGFuT3JFcXVhbCwgbV9zY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MigweDQzMSkpOwogICAgICAgICAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJz
b2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAg
ICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6OkludDUy
T3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+
YWRkcmVzc09mQml0cygpKSk7CiAKICAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQobm9JbnQ1
Mk92ZXJmbG93KTsKICAgICAgICAgaWYgKG1fc2NyYXRjaEdQUiA9PSBtX3Jlc3VsdC50YWdHUFIo
KSB8fCBtX3NjcmF0Y2hHUFIgPT0gbV9yZXN1bHQucGF5bG9hZEdQUigpKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDM0NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVRNdWxHZW5lcmF0b3IoU25p
cHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAg
ICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyBy
aWdodCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNj
cmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAg
ICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3Vs
dCkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRG
UFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoRlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2Zp
bGUpCisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkgfHwgIW1fcmln
aHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpOwogICAgIH0KQEAgLTY5LDcgKzY5LDcg
QEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNo
R1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1
bHRQcm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7CiAgICAgYm9vbCBt
X2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJB
cnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVk
ZSAiREZHQ29tcGlsYXRpb25Nb2RlLmgiCkBAIC0yMjQ3LDE4ICsyMjQ4LDg3IEBAIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3QKICAgICByZXR1cm4ganNTdHJpbmcoZXhl
YywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpbmRleCkuc3RyaW5nKCkpOwogfQogCitBTFdBWVNf
SU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkQWRkKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikK
K3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AyKTsKKyAgICAKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwg
b3AyKSk7Cit9CisKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVk
QWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCit7CisgICAgVk0q
IHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
ZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAg
ICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKKyAgICBhcml0aFByb2ZpbGUtPm9ic2VydmVMSFNBbmRS
SFMob3AxLCBvcDIpOworCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9w
Mik7CisgICAgYXJpdGhQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworCisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKKyAgICByZXR1cm4g
dW5wcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKK30KKworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdFByb2ZpbGVkTm90T3B0
aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopCit7CisgICAgcmV0
dXJuIHVucHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7Cit9CisKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIHJldHVybiBwcm9m
aWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCBhcml0aFByb2ZpbGUpOworfQor
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRP
cHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlLCBKSVRBZGRJ
QyogYWRkSUMpCit7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSBvcDEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMik7CisKKyAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKKyAgICBhcml0aFBy
b2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMob3AxLCBvcDIpOworICAgIGF1dG8gbm9uT3B0aW1pemVW
YXJpYW50ID0gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vbk9wdGltaXplOworICAgIGFkZElD
LT5nZW5lcmF0ZU91dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBub25PcHRpbWl6ZVZh
cmlhbnQpOwogICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIp
OworICAgIGFyaXRoUHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9uT3B0aW1pemUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqKQoreworICAgIHJldHVybiBw
cm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCBhcml0aFByb2ZpbGUpOwor
fQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1p
emUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisKKyAg
ICBhdXRvIG5vbk9wdGltaXplVmFyaWFudCA9IG9wZXJhdGlvblZhbHVlQWRkTm9uT3B0aW1pemU7
CisgICAgYWRkSUMtPmdlbmVyYXRlT3V0T2ZMaW5lKCp2bSwgZXhlYy0+Y29kZUJsb2NrKCksIG5v
bk9wdGltaXplVmFyaWFudCk7CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3AyKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9uT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBKSVRBZGRJQyopCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CkBAIC0yMjY3LDcgKzIzMzcsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgSlNWYWx1ZSBvcDIg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQg
PSBqc0FkZChleGVjLCBvcDEsIG9wMik7Ci0gICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0TnVtZXJp
Y25lc3MocmVzdWx0KTsKKwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IApAQCAtMjI4NCw3ICsyMzU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVk
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjI5Niw3
ICsyMzY2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAg
IGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNOdW1iZXIoYSAqIGIpOwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNz
KHJlc3VsdCk7CisgICAgYXJpdGhQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMjMxMyw3ICsyMzgz
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJp
dGhQcm9maWxlKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjMyNSw3ICsyMzk1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIGRvdWJsZSBiID0gb3AyLnRv
TnVtYmVyKGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIp
OwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisgICAgYXJp
dGhQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2FyZHMuaCIKICNpbmNs
dWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5o
IgogI2luY2x1ZGUgIlNsb3dQYXRoUmV0dXJuVHlwZS5oIgpAQCAtNDIsNiArNDMsNyBAQCBjbGFz
cyBBcnJheVByb2ZpbGU7CiBjbGFzcyBDYWxsTGlua0luZm87CiBjbGFzcyBDb2RlQmxvY2s7CiBj
bGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRBZGRHZW5lcmF0b3I7CiBjbGFzcyBKU0FycmF5Owog
Y2xhc3MgSlNGdW5jdGlvbjsKIGNsYXNzIEpTTGV4aWNhbEVudmlyb25tZW50OwpAQCAtNTQsNyAr
NTYsNyBAQCBjbGFzcyBXYXRjaHBvaW50U2V0OwogCiBzdHJ1Y3QgQnlWYWxJbmZvOwogc3RydWN0
IElubGluZUNhbGxGcmFtZTsKLXN0cnVjdCBSZXN1bHRQcm9maWxlOworc3RydWN0IEFyaXRoUHJv
ZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1lOwogCkBAIC02OSw2ICs3MSw3IEBA
IHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIEE6IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJh
eUFsbG9jYXRpb25Qcm9maWxlKgogICAgIEFwOiBBcnJheVByb2ZpbGUqCisgICAgQXJwOiBBcml0
aFByb2ZpbGUqCiAgICAgQnk6IEJ5VmFsSW5mbyoKICAgICBDOiBKU0NlbGwqCiAgICAgQ2I6IENv
ZGVCbG9jayoKQEAgLTgxLDYgKzg0LDcgQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAg
SWNmOiBJbmxpbmVDYWxsRnJhbWUqCiAgICAgSWRjOiBjb25zdCBJZGVudGlmaWVyKgogICAgIEo6
IEVuY29kZWRKU1ZhbHVlCisgICAgSmFpYzogSklUQWRkSUMqCiAgICAgSmNwOiBjb25zdCBKU1Zh
bHVlKgogICAgIEpzYzogSlNTY29wZSoKICAgICBKc2Y6IEpTRnVuY3Rpb24qCkBAIC05Miw3ICs5
Niw2IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFE6IGludDY0X3QKICAgICBSOiBS
ZWdpc3RlcgogICAgIFJlbzogUmVnRXhwT2JqZWN0KgotICAgIFJwOiBSZXN1bHRQcm9maWxlKgog
ICAgIFM6IHNpemVfdAogICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3Ry
dWN0dXJlU3R1YkluZm8qCkBAIC0xMzMsNyArMTM2LDkgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSAoSklUX09QRVJBVElPTiAqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElP
TiAqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRf
T1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
KEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmlsZSopOwordHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQXJwKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFyaXRoUHJvZmlsZSop
OwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25f
RUpKQXJwSmFpYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBB
cml0aFByb2ZpbGUqLCBKSVRBZGRJQyopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09Q
RVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSmFpYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBKSVRBZGRJQyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAo
SklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5n
KiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJ
VE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCop
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25f
RUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmlu
ZyopOwpAQCAtNDA4LDExICs0MTMsMTYgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZQogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdHJpbmco
RXhlY1N0YXRlKiwgaW50MzJfdCk7CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2Zp
bGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkTm90UHJvZmlsZWROb3RPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBK
SVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmls
ZWRPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSosIEpJVEFkZElDKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE9wdGlt
aXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vbk9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElD
KikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWxQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRF
Uk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRo
UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBy
b2Nlc3NUeXBlUHJvZmlsZXJMb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NTaGFkb3dDaGlja2VuTG9nKEV4ZWNTdGF0ZSopIFdU
Rl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1Ykdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3ViR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRvci5oIgogCisjaW5j
bHVkZSAiQXJpdGhQcm9maWxlLmgiCisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTgzLDggKzg1LDggQEAgdm9pZCBKSVRTdWJHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoQwogICAgIHJpZ2h0V2FzSW50ZWdlci5saW5rKCZqaXQpOwogCiAgICAgaml0LnN1YkRvdWJs
ZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOwotICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCi0gICAg
ICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOworICAgIGlmIChtX2FyaXRo
UHJvZmlsZSkKKyAgICAgICAgbV9hcml0aFByb2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKIAog
ICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzQ2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEpJVFN1YkdlbmVyYXRvcihTbmlw
cGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAg
ICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJp
Z2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2Ny
YXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3Vs
dFByb2ZpbGUgPSBudWxscHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9
IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAg
LCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0
KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQ
UikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0
Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmls
ZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmlsZShhcml0aFByb2ZpbGUpCiAgICAgeyB9CiAKICAg
ICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CkBAIC02Nyw3ICs2Nyw3IEBA
IHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQ
UjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0
UHJvZmlsZTsKKyAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogICAgIGJvb2wgbV9k
aWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBt
X2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShy
ZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBGdW5jdGlvblB0ciByZWFk
Q2FsbFRhcmdldChDb2RlQmwKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgdm9pZCBy
ZXBhdGNoQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsLCBG
dW5jdGlvblB0ciBuZXdDYWxsZWVGdW5jdGlvbikKK3ZvaWQgZnRsVGh1bmtBd2FyZVJlcGF0Y2hD
YWxsKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlTG9jYXRpb25DYWxsIGNhbGwsIEZ1bmN0aW9u
UHRyIG5ld0NhbGxlZUZ1bmN0aW9uKQogewogI2lmIEVOQUJMRShGVExfSklUKQogICAgIGlmIChj
b2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExKSVQpIHsKQEAgLTE2Nyw3ICsxNjcs
NyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlECiAKICAgICAgICAg
ICAgICAgICBib29sIGdlbmVyYXRlZENvZGVJbmxpbmUgPSBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRl
QXJyYXlMZW5ndGgoKmNvZGVCbG9jay0+dm0oKSwgc3R1YkluZm8sIGpzQ2FzdDxKU0FycmF5Kj4o
YmFzZVZhbHVlKSk7CiAgICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRlZENvZGVJbmxpbmUpIHsK
LSAgICAgICAgICAgICAgICAgICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93
UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24o
a2luZCkpOworICAgICAgICAgICAgICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29k
ZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGlt
aXppbmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogICAgICAgICAgICAgICAgICAgICBzdHViSW5m
by5pbml0QXJyYXlMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJldHJ5Q2Fj
aGVMYXRlcjsKICAgICAgICAgICAgICAgICB9CkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIElu
bGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRAogICAgICAgICAgICAgaWYgKGdlbmVyYXRl
ZENvZGVJbmxpbmUpIHsKICAgICAgICAgICAgICAgICBMT0dfSUMoKElDRXZlbnQ6OkdldEJ5SWRT
ZWxmUGF0Y2gsIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIHByb3BlcnR5TmFtZSkpOwogICAgICAg
ICAgICAgICAgIHN0cnVjdHVyZS0+c3RhcnRXYXRjaGluZ1Byb3BlcnR5Rm9yUmVwbGFjZW1lbnRz
KHZtLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKLSAgICAgICAgICAgICAgICByZXBhdGNoQ2FsbChj
b2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0
aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAgICAgICAgICAgICAgZnRsVGh1bmtB
d2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24o
KSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKICAgICAgICAg
ICAgICAgICBzdHViSW5mby5pbml0R2V0QnlJZFNlbGYoY29kZUJsb2NrLCBzdHJ1Y3R1cmUsIHNs
b3QuY2FjaGVkT2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0
ZXI7CiAgICAgICAgICAgICB9CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCByZXBhdGNoR2V0QnlJ
RChFeGVjU3RhdGUqIGV4ZWMsIEpTVgogICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGV4ZWMtPmNvZGVCbG9jaygpLT5tX2xvY2ssIGV4ZWMtPnZtKCkuaGVhcCk7CiAgICAgCiAg
ICAgaWYgKHRyeUNhY2hlR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIHByb3BlcnR5TmFtZSwgc2xv
dCwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxs
KGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHBy
b3ByaWF0ZUdlbmVyaWNHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAgICAgICBmdGxUaHVua0F3
YXJlUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExv
Y2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CiB9CiAK
IHN0YXRpYyBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIGFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5SWRG
dW5jdGlvbihjb25zdCBQdXRQcm9wZXJ0eVNsb3QgJnNsb3QsIFB1dEtpbmQgcHV0S2luZCkKQEAg
LTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVQdXRCeUlE
CiAgICAgICAgICAgICAgICAgYm9vbCBnZW5lcmF0ZWRDb2RlSW5saW5lID0gSW5saW5lQWNjZXNz
OjpnZW5lcmF0ZVNlbGZQcm9wZXJ0eVJlcGxhY2Uodm0sIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNs
b3QuY2FjaGVkT2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5s
aW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIExPR19JQygoSUNFdmVudDo6UHV0QnlJZFNlbGZQ
YXRjaCwgc3RydWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQpKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigp
LCBhcHByb3ByaWF0ZU9wdGltaXppbmdQdXRCeUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOwor
ICAgICAgICAgICAgICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBz
dHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdQdXRC
eUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOwogICAgICAgICAgICAgICAgICAgICBzdHViSW5m
by5pbml0UHV0QnlJZFJlcGxhY2UoY29kZUJsb2NrLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zm
c2V0KCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIHJlcGF0Y2hQdXRCeUlEKEV4
ZWNTdGF0ZSogZXhlYywgSlNWCiAgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
ZXhlYy0+Y29kZUJsb2NrKCktPm1fbG9jaywgZXhlYy0+dm0oKS5oZWFwKTsKICAgICAKICAgICBp
ZiAodHJ5Q2FjaGVQdXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QsIHN0dWJJbmZvLCBwdXRLaW5kKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICBy
ZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRp
b24oKSwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsK
KyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVu
Y3Rpb24oc2xvdCwgcHV0S2luZCkpOwogfQogCiBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5
UmVwYXRjaEluKApAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgcmVwYXRjaEluKAogewogICAgIFN1
cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBpZiAodHJ5UmVw
YXRjaEluKGV4ZWMsIGJhc2UsIGlkZW50LCB3YXNGb3VuZCwgc2xvdCwgc3R1YkluZm8pID09IEdp
dmVVcE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcGVyYXRpb25Jbik7CisgICAgICAgIGZ0bFRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uSW4pOwogfQogCiBzdGF0aWMgdm9pZCBsaW5rU2xvd0Zv
cihWTSosIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
Y29kZVJlZikKQEAgLTkwMSw3ICs5MDEsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAK
IHZvaWQgcmVzZXRHZXRCeUlEKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5m
byYgc3R1YkluZm8sIEdldEJ5SURLaW5kIGtpbmQpCiB7Ci0gICAgcmVwYXRjaENhbGwoY29kZUJs
b2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXpp
bmdHZXRCeUlkRnVuY3Rpb24oa2luZCkpOworICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChj
b2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0
aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CiAgICAgSW5saW5lQWNjZXNzOjpyZXdpcmVT
dHViQXNKdW1wKCpjb2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0
YXJ0TG9jYXRpb24oKSk7CiB9CiAKQEAgLTkyMCw3ICs5MjAsNyBAQCB2b2lkIHJlc2V0UHV0QnlJ
RChDb2RlQmxvY2sqIGNvZGVCbG9jaywgCiAgICAgICAgIG9wdGltaXplZEZ1bmN0aW9uID0gb3Bl
cmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplOwogICAgIH0KIAotICAgIHJlcGF0
Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3B0aW1p
emVkRnVuY3Rpb24pOworICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0
dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wdGltaXplZEZ1bmN0aW9uKTsKICAgICBJ
bmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoKmNvZGVCbG9jay0+dm0oKSwgc3R1YkluZm8s
IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIHZv
aWQgbGlua1BvbHltb3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWwKIHZvaWQgcmVzZXRHZXRCeUlE
KENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJiwgR2V0QnlJREtpbmQpOwogdm9pZCByZXNl
dFB1dEJ5SUQoQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVzZXRJbihD
b2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwordm9pZCBmdGxUaHVua0F3YXJlUmVwYXRj
aENhbGwoQ29kZUJsb2NrKiwgQ29kZUxvY2F0aW9uQ2FsbCwgRnVuY3Rpb25QdHIgbmV3Q2FsbGVl
RnVuY3Rpb24pOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTExJbnREYXRhLmgiCiAK
KyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJCeXRlY29kZUNvbnZlbnRpb25z
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29kZVR5cGUuaCIKQEAgLTIy
Myw2ICsyMjQsNDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAjZW5k
aWYKIAogICAgIEFTU0VSVChTdHJpbmdJbXBsOjpzX2hhc2hGbGFnOEJpdEJ1ZmZlciA9PSA4KTsK
KworICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MTIwMDAwOworICAgICAgICBVTlVT
RURfUEFSQU0oYml0cyk7CisgICAgICAgIEFyaXRoUHJvZmlsZSBhcml0aFByb2ZpbGU7CisgICAg
ICAgIGFyaXRoUHJvZmlsZS5saHNTYXdJbnQzMigpOworICAgICAgICBhcml0aFByb2ZpbGUucmhz
U2F3SW50MzIoKTsKKyAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7
CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRU
eXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21J
bnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgfQorICAgIHsK
KyAgICAgICAgdWludDMyX3QgYml0cyA9IDB4MjIwMDAwOworICAgICAgICBVTlVTRURfUEFSQU0o
Yml0cyk7CisgICAgICAgIEFyaXRoUHJvZmlsZSBhcml0aFByb2ZpbGU7CisgICAgICAgIGFyaXRo
UHJvZmlsZS5saHNTYXdOdW1iZXIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd0ludDMy
KCk7CisgICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAg
ICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlz
T25seU51bWJlcigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRz
KS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICB9CisgICAgeworICAgICAg
ICB1aW50MzJfdCBiaXRzID0gMHgyNDAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsK
KyAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxl
Lmxoc1Nhd051bWJlcigpOworICAgICAgICBhcml0aFByb2ZpbGUucmhzU2F3TnVtYmVyKCk7Cisg
ICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBBU1NF
UlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seU51
bWJlcigpKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgdWlu
dDMyX3QgYml0cyA9IDB4MTQwMDAwOworICAgICAgICBVTlVTRURfUEFSQU0oYml0cyk7CisgICAg
ICAgIEFyaXRoUHJvZmlsZSBhcml0aFByb2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZS5saHNT
YXdJbnQzMigpOworICAgICAgICBhcml0aFByb2ZpbGUucmhzU2F3TnVtYmVyKCk7CisgICAgICAg
IEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBBU1NFUlQoQXJp
dGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkp
OworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVk
VHlwZSgpLmlzT25seU51bWJlcigpKTsKKyAgICB9CiB9CiAjaWYgQ09NUElMRVIoQ0xBTkcpCiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNp
b24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEwMTQsNiArMTAxNCw5IEBAIG1hY3Jv
IGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlMlJlZyh0MCwgdDIsIHQwKQogICAgIGJpbmVxIHQyLCBJbnQzMlRhZywgLm9wMU5vdElu
dAogICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLm9wMk5vdEludAorICAgIGxvYWRpc0Zyb21JbnN0
cnVjdGlvbig0LCB0NSkKKyAgICBvcmkgQXJpdGhQcm9maWxlSW50SW50LCB0NQorICAgIHN0b3Jl
aXNUb0luc3RydWN0aW9uKHQ1LCA0KQogICAgIGxvYWRpIDRbUENdLCB0MgogICAgIGludGVnZXJP
cGVyYXRpb25BbmRTdG9yZSh0MywgdDEsIHQwLCAuc2xvdywgdDIpCiAgICAgZGlzcGF0Y2goNSkK
QEAgLTEwMjMsMTAgKzEwMjYsMTYgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2Vy
T3BlcmF0aQogICAgIGJpYSB0MiwgTG93ZXN0VGFnLCAuc2xvdwogICAgIGJpYiB0MywgTG93ZXN0
VGFnLCAub3AxTm90SW50T3AyRG91YmxlCiAgICAgYmluZXEgdDMsIEludDMyVGFnLCAuc2xvdwor
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0NSkKKyAgICBvcmkgQXJpdGhQcm9maWxlTnVt
YmVySW50LCB0NQorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQ1LCA0KQogICAgIGNpMmQgdDEs
IGZ0MQogICAgIGptcCAub3AxTm90SW50UmVhZHkKIC5vcDFOb3RJbnRPcDJEb3VibGU6CiAgICAg
ZmlpMmQgdDEsIHQzLCBmdDEKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUpCisgICAg
b3JpIEFyaXRoUHJvZmlsZU51bWJlck51bWJlciwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlv
bih0NSwgNCkKIC5vcDFOb3RJbnRSZWFkeToKICAgICBsb2FkaSA0W1BDXSwgdDEKICAgICBmaWky
ZCB0MCwgdDIsIGZ0MApAQCAtMTAzOCw2ICsxMDQ3LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21T
dG9yZShpbnRlZ2VyT3BlcmF0aQogICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFu
IGludCwgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgbm90LgogICAgIGxvYWRpIDRb
UENdLCB0MgogICAgIGJpYSB0MywgTG93ZXN0VGFnLCAuc2xvdworICAgIGxvYWRpc0Zyb21JbnN0
cnVjdGlvbig0LCB0NSkKKyAgICBvcmkgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0NQorICAgIHN0
b3JlaXNUb0luc3RydWN0aW9uKHQ1LCA0KQogICAgIGNpMmQgdDAsIGZ0MAogICAgIGZpaTJkIHQx
LCB0MywgZnQxCiAgICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwgZnQwKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20J
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC04OTMsNiArODkzLDkgQEAgbWFj
cm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAgIGJxYiB0MSwgdGFnVHlw
ZU51bWJlciwgLm9wMk5vdEludAogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKICAg
ICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDEsIHQwLCAuc2xvdywgdDIpCisgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDQsIHQxKQorICAgIG9yaSBBcml0aFByb2ZpbGVJbnRJbnQsIHQxCisg
ICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDEsIDQpCiAgICAgZGlzcGF0Y2goNSkKIAogLm9wMU5v
dEludDoKQEAgLTkwMiw4ICs5MDUsMTQgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRl
Z2VyT3BlcmF0aQogICAgIGJ0cXogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CiAgICAgYWRkcSB0
YWdUeXBlTnVtYmVyLCB0MQogICAgIGZxMmQgdDEsIGZ0MQorICAgIGxvYWRpc0Zyb21JbnN0cnVj
dGlvbig0LCB0MikKKyAgICBvcmkgQXJpdGhQcm9maWxlTnVtYmVyTnVtYmVyLCB0MgorICAgIHN0
b3JlaXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGptcCAub3AxTm90SW50UmVhZHkKIC5vcDFO
b3RJbnRPcDJJbnQ6CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQorICAgIG9yaSBB
cml0aFByb2ZpbGVOdW1iZXJJbnQsIHQyCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQp
CiAgICAgY2kyZCB0MSwgZnQxCiAub3AxTm90SW50UmVhZHk6CiAgICAgbG9hZGlzRnJvbUluc3Ry
dWN0aW9uKDEsIHQyKQpAQCAtOTE5LDYgKzkyOCw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3Rv
cmUoaW50ZWdlck9wZXJhdGkKICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBp
bnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgbG9hZGlzRnJvbUluc3RydWN0
aW9uKDEsIHQyKQogICAgIGJ0cXogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDQsIHQzKQorICAgIG9yaSBBcml0aFByb2ZpbGVJbnROdW1iZXIsIHQz
CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDMsIDQpCiAgICAgY2kyZCB0MCwgZnQwCiAgICAg
YWRkcSB0YWdUeXBlTnVtYmVyLCB0MQogICAgIGZxMmQgdDEsIGZ0MQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2
aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNiArMjUyLDEyIEBAIGNvbnN0IElz
SW52YWxpZGF0ZWQgPSAyCiAjIFNoYWRvd0NoaWNrZW4gZGF0YQogY29uc3QgU2hhZG93Q2hpY2tl
blRhaWxNYXJrZXIgPSAweDdhMTEKIAorIyBBcml0aFByb2ZpbGUgZGF0YQorY29uc3QgQXJpdGhQ
cm9maWxlSW50SW50ID0gMHgxMjAwMDAKK2NvbnN0IEFyaXRoUHJvZmlsZU51bWJlckludCA9IDB4
MjIwMDAwCitjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIgPSAweDI0MDAwMAorY29uc3Qg
QXJpdGhQcm9maWxlSW50TnVtYmVyID0gMHgxNDAwMDAKKwogIyBTb21lIHJlZ2lzdGVyIGNvbnZl
bnRpb25zLgogaWYgSlNWQUxVRTY0CiAgICAgIyAtIFVzZSBhIHBhaXIgb2YgcmVnaXN0ZXJzIHRv
IHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdpc3RlciBmb3IgdGhlCkBAIC0yODYsNiArMjkyLDEw
IEBAIGlmIEpTVkFMVUU2NAogICAgICAgICBsb2FkcCBvZmZzZXQgKiA4W1BCLCBQQywgOF0sIGRl
c3QKICAgICBlbmQKICAgICAKKyAgICBtYWNybyBzdG9yZWlzVG9JbnN0cnVjdGlvbih2YWx1ZSwg
b2Zmc2V0KQorICAgICAgICBzdG9yZWkgdmFsdWUsIG9mZnNldCAqIDhbUEIsIFBDLCA4XQorICAg
IGVuZAorCiAgICAgbWFjcm8gc3RvcmVwVG9JbnN0cnVjdGlvbih2YWx1ZSwgb2Zmc2V0KQogICAg
ICAgICBzdG9yZXAgdmFsdWUsIG9mZnNldCAqIDhbUEIsIFBDLCA4XQogICAgIGVuZApAQCAtMjk5
LDYgKzMwOSwxMCBAQCBlbHNlCiAgICAgbWFjcm8gbG9hZHBGcm9tSW5zdHJ1Y3Rpb24ob2Zmc2V0
LCBkZXN0KQogICAgICAgICBsb2FkcCBvZmZzZXQgKiA0W1BDXSwgZGVzdAogICAgIGVuZAorCisg
ICAgbWFjcm8gc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKKyAgICAgICAgc3Rv
cmVpIHZhbHVlLCBvZmZzZXQgKiA0W1BDXQorICAgIGVuZAogZW5kCiAKIGlmIFg4Nl82NF9XSU4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0VHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0VHlwZS5oCShyZXZpc2lv
biAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNDYgKzMyLDQ4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHBy
aXZhdGU6CiAgICAgICAgIGZyaWVuZCBzdHJ1Y3QgT3BlcmFuZFR5cGVzOwogCi0gICAgICAgIHR5
cGVkZWYgY2hhciBUeXBlOworICAgICAgICB0eXBlZGVmIHVpbnQ4X3QgVHlwZTsKICAgICAgICAg
c3RhdGljIGNvbnN0IFR5cGUgVHlwZUludDMyID0gMTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRp
YyBjb25zdCBUeXBlIFR5cGVNYXliZU51bWJlciA9IDB4MDQ7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBUeXBlIFR5cGVNYXliZVN0cmluZyA9IDB4MDg7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
IFR5cGVNYXliZU51bGwgICA9IDB4MTA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVN
YXliZUJvb2wgICA9IDB4MjA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU90
aGVyICA9IDB4NDA7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU51bWJlciA9
IDB4MDI7CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZVN0cmluZyA9IDB4MDQ7
CisgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU51bGwgICA9IDB4MDg7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZUJvb2wgICA9IDB4MTA7CisgICAgICAgIHN0
YXRpYyBjb25zdCBUeXBlIFR5cGVNYXliZU90aGVyICA9IDB4MjA7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgVHlwZUJpdHMgPSBUeXBlTWF5YmVOdW1iZXIgfCBUeXBlTWF5YmVTdHJpbmcg
fCBUeXBlTWF5YmVOdWxsIHwgVHlwZU1heWJlQm9vbCB8IFR5cGVNYXliZU90aGVyOwogCisgICAg
cHVibGljOgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bUJpdHNOZWVkZWQgPSA2OworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KChUeXBlQml0cyAmICgoMSA8PCBudW1CaXRzTmVlZGVkKSAtIDEp
KSA9PSBUeXBlQml0cywgIlRoaXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0bmVzcy4iKTsKKwog
ICAgICAgICBleHBsaWNpdCBSZXN1bHRUeXBlKFR5cGUgdHlwZSkKLSAgICAgICAgICAgIDogbV90
eXBlKHR5cGUpCisgICAgICAgICAgICA6IG1fYml0cyh0eXBlKQogICAgICAgICB7CiAgICAgICAg
IH0KIAotICAgIHB1YmxpYzoKICAgICAgICAgYm9vbCBpc0ludDMyKCkgY29uc3QKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIG1fdHlwZSAmIFR5cGVJbnQzMjsKKyAgICAgICAgICAgIHJl
dHVybiBtX2JpdHMgJiBUeXBlSW50MzI7CiAgICAgICAgIH0KIAogICAgICAgICBib29sIGRlZmlu
aXRlbHlJc051bWJlcigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAobV90
eXBlICYgVHlwZUJpdHMpID09IFR5cGVNYXliZU51bWJlcjsKKyAgICAgICAgICAgIHJldHVybiAo
bV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZU51bWJlcjsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNTdHJpbmcoKSBjb25zdAogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVTdHJpbmc7
CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVTdHJp
bmc7CiAgICAgICAgIH0KIAogICAgICAgICBib29sIGRlZmluaXRlbHlJc0Jvb2xlYW4oKSBjb25z
dAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRzKSA9PSBU
eXBlTWF5YmVCb29sOworICAgICAgICAgICAgcmV0dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0g
VHlwZU1heWJlQm9vbDsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgbWlnaHRCZU51bWJlcigp
IGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3R5cGUgJiBUeXBlTWF5YmVO
dW1iZXI7CisgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZU1heWJlTnVtYmVyOwogICAg
ICAgICB9CiAKICAgICAgICAgYm9vbCBpc05vdE51bWJlcigpIGNvbnN0CkBAIC0xNDEsOCArMTQz
LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG51bWJlclR5cGVJc0lu
dDMyKCk7CiAgICAgICAgIH0KIAorICAgICAgICBUeXBlIGJpdHMoKSBjb25zdCB7IHJldHVybiBt
X2JpdHM7IH0KKwogICAgIHByaXZhdGU6Ci0gICAgICAgIFR5cGUgbV90eXBlOworICAgICAgICBU
eXBlIG1fYml0czsKICAgICB9OwogICAgIAogICAgIHN0cnVjdCBPcGVyYW5kVHlwZXMKQEAgLTE1
Miw4ICsxNTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8g
aW5pdGlhbGl6ZSBvbmUgb2YgdGhlIGludCB0byBlbnN1cmUgdGhhdAogICAgICAgICAgICAgLy8g
dGhlIGVudGlyZSBzdHJ1Y3QgaXMgaW5pdGlhbGl6ZWQuCiAgICAgICAgICAgICBtX3UuaSA9IDA7
Ci0gICAgICAgICAgICBtX3UucmRzLmZpcnN0ID0gZmlyc3QubV90eXBlOwotICAgICAgICAgICAg
bV91LnJkcy5zZWNvbmQgPSBzZWNvbmQubV90eXBlOworICAgICAgICAgICAgbV91LnJkcy5maXJz
dCA9IGZpcnN0Lm1fYml0czsKKyAgICAgICAgICAgIG1fdS5yZHMuc2Vjb25kID0gc2Vjb25kLm1f
Yml0czsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdW5pb24gewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZp
c2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAKKyNpbmNsdWRlICJBcml0aFBy
b2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQnVpbHRp
bk5hbWVzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCkBAIC0zNTksMjIgKzM2MCwyMSBAQCBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfbmVnYXRlKQogfQogCiAjaWYgRU5BQkxFKERGR19KSVQp
Ci1zdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3Rh
dGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgSlNWYWx1ZSByZXN1bHQsIEpTVmFsdWUgbGVmdCwg
SlNWYWx1ZSByaWdodCkKK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFy
aXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogcGMsIEpTVmFsdWUgcmVzdWx0LCBK
U1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmlnaHQpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGNvZGVC
bG9jay0+Ynl0ZWNvZGVPZmZzZXQocGMpOwotICAgIFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUgPSBj
b2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUoYnl0ZWNvZGVPZmZzZXQpOworICAgIEFyaXRo
UHJvZmlsZSYgcHJvZmlsZSA9IGNvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMocGMpOwogCiAg
ICAgaWYgKHJlc3VsdC5pc051bWJlcigpKSB7CiAgICAgICAgIGlmICghcmVzdWx0LmlzSW50MzIo
KSkgewogICAgICAgICAgICAgaWYgKGxlZnQuaXNJbnQzMigpICYmIHJpZ2h0LmlzSW50MzIoKSkK
LSAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKTsKKyAg
ICAgICAgICAgICAgICBwcm9maWxlLnNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpOwogCiAgICAg
ICAgICAgICBkb3VibGUgZG91YmxlVmFsID0gcmVzdWx0LmFzTnVtYmVyKCk7CiAgICAgICAgICAg
ICBpZiAoIWRvdWJsZVZhbCAmJiBzdGQ6OnNpZ25iaXQoZG91YmxlVmFsKSkKLSAgICAgICAgICAg
ICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKKyAgICAgICAgICAgICAg
ICBwcm9maWxlLnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpOwogICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7
CisgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsK
IAogICAgICAgICAgICAgICAgIC8vIFRoZSBJbnQ1MiBvdmVyZmxvdyBjaGVjayBoZXJlIGludGVu
dGlvbmFsbHkgb21pdHMgMWxsIDw8IDUxIGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUu
CiAgICAgICAgICAgICAgICAgLy8gVGhlcmVmb3JlLCB3ZSB3aWxsIGdldCBhIGZhbHNlIHBvc2l0
aXZlIGlmIHRoZSByZXN1bHQgaXMgdGhhdCB2YWx1ZS4gVGhpcyBpcyBpbnRlbnRpb25hbGx5CkBA
IC0zODIsMTQgKzM4MiwxNCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmlu
YXJ5CiAgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGludDY0X3QgaW50NTJPdmVyZmxvd1Bv
aW50ID0gKDFsbCA8PCA1MSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCBpbnQ2NFZhbCA9IHN0
YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6YWJzKGRvdWJsZVZhbCkpOwogICAgICAgICAgICAgICAg
IGlmIChpbnQ2NFZhbCA+PSBpbnQ1Mk92ZXJmbG93UG9pbnQpCi0gICAgICAgICAgICAgICAgICAg
IHByb2ZpbGUtPnNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpOworICAgICAgICAgICAgICAgICAg
ICBwcm9maWxlLnNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTnVtYmVy
KCk7CisgICAgICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWROb25OdW1iZXIoKTsKIH0KICNlbHNlCi1z
dGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3RhdGUq
LCBJbnN0cnVjdGlvbiosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpIHsgfQorc3RhdGljIHZv
aWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3RhdGUqLCBJbnN0cnVj
dGlvbiosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpIHsgfQogI2VuZGlmCiAKIFNMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF90b19udW1iZXIpCkBAIC00MDcsNiArNDA3LDkgQEAgU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2FkZCkKICAgICBKU1ZhbHVlIHYyID0gT1BfQygzKS5qc1ZhbHVlKCk7
CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAKKyAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9
IGV4ZWMtPmNvZGVCbG9jaygpLT5hcml0aFByb2ZpbGVGb3JQQyhwYyk7CisgICAgYXJpdGhQcm9m
aWxlLm9ic2VydmVMSFNBbmRSSFModjEsIHYyKTsKKwogICAgIGlmICh2MS5pc1N0cmluZygpICYm
ICF2Mi5pc09iamVjdCgpKQogICAgICAgICByZXN1bHQgPSBqc1N0cmluZyhleGVjLCBhc1N0cmlu
Zyh2MSksIHYyLnRvU3RyaW5nKGV4ZWMpKTsKICAgICBlbHNlIGlmICh2MS5pc051bWJlcigpICYm
IHYyLmlzTnVtYmVyKCkpCkBAIC00MTUsNyArNDE4LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX2FkZCkKICAgICAgICAgcmVzdWx0ID0ganNBZGRTbG93Q2FzZShleGVjLCB2MSwgdjIpOwog
CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1
bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCB2MSwgdjIpOworICAg
ICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQs
IHYxLCB2Mik7CiAgICAgfSk7CiB9CiAKQEAgLTQzMiw3ICs0MzUsNyBAQCBTTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfbXVsKQogICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7CiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CiAgICAgUkVUVVJOX1dJVEhfUFJP
RklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJp
dGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgIHVwZGF0ZUFyaXRo
UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwog
ICAgIH0pOwogfQogCkBAIC00NDUsNyArNDQ4LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3N1YikKICAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUg
cmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1
bHQsIHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywg
cGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JC
aW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0K
IApAQCAtNDU4LDcgKzQ2MSw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kaXYpCiAgICAg
ZG91YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
TnVtYmVyKGEgLyBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAg
ICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQs
IGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhP
cChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcC1hZGQtZXhj
ZXB0aW9ucy5qcwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL29wLWFkZC1leGNlcHRpb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkg
QEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCEiKTsKK30KK25vSW5saW5lKGFzc2VydCk7CisKK2Z1bmN0aW9uIGYxKCkgeyBy
ZXR1cm4gImYxIjsgfQorbm9JbmxpbmUoZjEpOworZnVuY3Rpb24gZjIoKSB7IHJldHVybiAiZjIi
OyB9Citub0lubGluZShmMik7CitmdW5jdGlvbiBmMygpIHsgcmV0dXJuICJmMyI7IH0KK25vSW5s
aW5lKGYzKTsKKworbGV0IG9FeGNlcHRpb24gPSB7CisgICAgdmFsdWVPZigpIHsgdGhyb3cgbmV3
IEVycm9yKCIiKTsgfQorfTsKKworZnVuY3Rpb24gZm9vKGFyZzEsIGFyZzIpIHsKKyAgICBsZXQg
YSA9IGYxKCk7CisgICAgbGV0IGIgPSBmMigpOworICAgIGxldCBjID0gZjMoKTsKKyAgICB0cnkg
eworICAgICAgICBhcmcxICsgYXJnMjsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgYXNzZXJ0
KGFyZzEgPT09IG9FeGNlcHRpb24pOworICAgICAgICBhc3NlcnQoYXJnMiA9PT0gb0V4Y2VwdGlv
bik7CisgICAgfQorICAgIGFzc2VydChhID09PSAiZjEiKTsKKyAgICBhc3NlcnQoYiA9PT0gImYy
Iik7CisgICAgYXNzZXJ0KGMgPT09ICJmMyIpOworfQorbm9JbmxpbmUoZm9vKTsKKworZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICBmb28oaSwge30pOworICAgIGZvbyh7fSwg
aSk7Cit9Citmb28ob0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7Citmb3IgKGxldCBpID0gMDsgaSA8
IDEwMDAwOyBpKyspIHsKKyAgICBmb28oaSwge30pOworICAgIGZvbyh7fSwgaSk7Cit9Citmb28o
b0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7CisKKworZnVuY3Rpb24gaWRlbnQoeCkgeyByZXR1cm4g
eDsgfQorbm9JbmxpbmUoaWRlbnQpOworCitmdW5jdGlvbiBiYXIoYXJnMSwgYXJnMikgeworICAg
IGxldCBhID0gZjEoKTsKKyAgICBsZXQgYiA9IGYyKCk7CisgICAgbGV0IGMgPSBmMygpOworICAg
IGxldCB4ID0gaWRlbnQoYXJnMSk7CisgICAgbGV0IHkgPSBpZGVudChhcmcyKTsKKworICAgIHRy
eSB7CisgICAgICAgIGFyZzEgKyBhcmcyOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBhc3Nl
cnQoYXJnMSA9PT0gb0V4Y2VwdGlvbik7CisgICAgICAgIGFzc2VydChhcmcyID09PSBvRXhjZXB0
aW9uKTsKKyAgICAgICAgYXNzZXJ0KHggPT09IG9FeGNlcHRpb24pOworICAgICAgICBhc3NlcnQo
eSA9PT0gb0V4Y2VwdGlvbik7CisgICAgfQorICAgIGFzc2VydChhID09PSAiZjEiKTsKKyAgICBh
c3NlcnQoYiA9PT0gImYyIik7CisgICAgYXNzZXJ0KGMgPT09ICJmMyIpOworfQorbm9JbmxpbmUo
YmFyKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICBiYXIoaSwge30p
OworICAgIGJhcih7fSwgaSk7Cit9CitiYXIob0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7Citmb3Ig
KGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBiYXIoaSwge30pOworICAgIGJhcih7
fSwgaSk7Cit9CitiYXIob0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0wNy0yMCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KKworICAgICAgICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFs
bCBKSVQgdGllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1OTY0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmg6IEFkZGVkLgor
CiAyMDE2LTA3LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
Q1NTU3R5bGVEZWNsYXJhdGlvbi5zZXRQcm9wZXJ0eSgpIHNob3VsZCBiZSBhYmxlIHRvIHVuc2V0
ICJpbXBvcnRhbnQiIG9uIGEgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNG
b3J3YXJkcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3Jl
X0ZXRF9KSVRNYXRoSUNGb3J3YXJkc19oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pJVE1hdGhJQ0Zv
cndhcmRzX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KSVRNYXRoSUNGb3J3YXJkcy5oPgor
I2VuZGlmCg==
</data>
<flag name="review"
          id="307801"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284273</attachid>
            <date>2016-07-21 15:55:08 -0700</date>
            <delta_ts>2016-07-21 16:06:28 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>164589</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5MiBA
QAorMjAxNi0wNy0yMCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgVGhpcyBwYXRjaCBt
YWtlcyBBZGQgYW4gSUMgaW5zaWRlIGFsbCBKSVQgdGllcnMuIEl0IGRvZXMgc28gaW4gYQorICAg
ICAgICBzaW1wbGUsIGJ1dCBlZmZlY3RpdmUsIHdheS4gV2Ugd2lsbCB0cnkgdG8gZ2VuZXJhdGUg
YW4gaW50K2ludCBhZGQKKyAgICAgICAgdGhhdCB3aWxsIHJlcGF0Y2ggaXRzZWxmIGlmIGl0cyB0
eXBlIGNoZWNrcyBmYWlsLiBTb21ldGltZXMgdGhvdWdoLAorICAgICAgICB3ZSBoYXZlIHJ1bnRp
bWUgdHlwZSBkYXRhIHNheWluZyB0aGF0IHRoZSBhZGQgd29uJ3QgYmUgaW50K2ludC4KKyAgICAg
ICAgSW4gdGhvc2UgY2FzZXMsIHdlIHdpbGwganVzdCBnZW5lcmF0ZSBhIGZ1bGwgc25pcHBldCB0
aGF0IGRvZXNuJ3QgcGF0Y2ggaXRzZWxmLgorICAgICAgICBPdGhlciB0aW1lcywgd2UgbWF5IGdl
bmVyYXRlIG5vIGlubGluZSBjb2RlIGFuZCBkZWZlciB0byBtYWtpbmcgYSBDIGNhbGwuIEEgbG90
CisgICAgICAgIG9mIHRoaXMgcGF0Y2ggaXMganVzdCByZWZhY3RvcmluZyBSZXN1bHRQcm9maWxl
IGludG8gd2hhdCB3ZSdyZSBub3cgY2FsbGluZyBBcml0aFByb2ZpbGUuCisgICAgICAgIEFyaXRo
UHJvZmlsZSBkb2VzIGV2ZXJ5dGhpbmcgUmVzdWx0UHJvZmlsZSB1c2VkIHRvIGRvLCBhbmQgbW9y
ZS4gSXQgcmVjb3JkcyBzaW1wbGUgdHlwZQorICAgICAgICBkYXRhIGFib3V0IHRoZSBMSFMvUkhT
IG9wZXJhbmRzIGl0IHNlZXMuIFRoaXMgYWxsb3dzIHVzIHRvIGRldGVybWluZSBpZiBhbiBvcF9h
ZGQKKyAgICAgICAgaGFzIG9ubHkgc2VlbiBpbnQraW50IG9wZXJhbmRzLCBldGMuIEFyaXRoUHJv
ZmlsZSB3aWxsIGFsc28gY29udGFpbiB0aGUgUmVzdWx0VHlwZQorICAgICAgICBmb3IgdGhlIExI
Uy9SSFMgdGhhdCB0aGUgcGFyc2VyIGZlZWRzIGludG8gb3BfYWRkLiBBcml0aFByb2ZpbGUgbm93
IGZpdHMgaW50byAzMi1iaXRzLgorICAgICAgICBUaGlzIG1lYW5zIGluc3RlYWQgb2YgaGF2aW5n
IGEgc2lkZSB0YWJsZSBsaWtlIHdlIGRpZCBmb3IgUmVzdWx0UHJvZmlsZSwgd2UganVzdAorICAg
ICAgICBpbmplY3QgdGhlIEFyaXRoUHJvZmlsZSBpbnRvIHRoZSBieXRlY29kZSBpbnN0cnVjdGlv
biBzdHJlYW0uIFRoaXMgbWFrZXMgYXNraW5nCisgICAgICAgIGZvciBBcml0aFByb2ZpbGUgZmFz
dGVyOyB3ZSBubyBsb25nZXIgbmVlZCB0byBsb2NrIGFyb3VuZCB0aGlzIG9wZXJhdGlvbi4KKwor
ICAgICAgICBUaGUgc2l6ZSBvZiBhbiBBZGQgaGFzIGdvbmUgZG93biBvbiBhdmVyYWdlLCBidXQg
d2UgY2FuIHN0aWxsIGRvIGJldHRlci4KKyAgICAgICAgV2Ugc3RpbGwgZ2VuZXJhdGUgYSBsb3Qg
b2YgY29kZSBiZWNhdXNlIHdlIGdlbmVyYXRlIGNhbGxzIHRvIHRoZSBzbG93IHBhdGguCisgICAg
ICAgIEkgdGhpbmsgd2UgY2FuIG1ha2UgdGhpcyBiZXR0ZXIgYnkgbW92aW5nIHRoZSBzbG93IHBh
dGggdG8gYSBzaGFyZWQgdGh1bmsKKyAgICAgICAgc3lzdGVtLiBUaGlzIHBhdGNoIG1vc3RseSBs
YXlzIHRoZSBmb3VuZGF0aW9uIGZvciBmdXR1cmUgaW1wcm92ZW1lbnRzIHRvIEFkZCwKKyAgICAg
ICAgYW5kIGEgZnJhbWV3b3JrIHRvIG1vdmUgYWxsIG90aGVyIGFyaXRobWV0aWMgb3BlcmF0aW9u
cyB0byBiZSB0eXBlZC1iYXNlZCBJQ3MuCisKKyAgICAgICAgSGVyZSBpcyBzb21lIGRhdGEgSSB0
b29rIG9uIHRoZSBhdmVyYWdlIG9wX2FkZC9WYWx1ZUFkZCBzaXplIG9uIHZhcmlvdXMgYmVuY2ht
YXJrczoKKyAgICAgICAgICAgICAgICAgICB8ICAgSmV0U3RyZWFtICB8ICBTcGVlZG9tZXRlciB8
ICBVbml0eSAzRCAgfAorICAgICAgICAgICAgIC0tLS0tLXwgLS0tLS0tLS0tLS0tLXwtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBPbGQgIHwgIDE4OSBieXRlcyAg
IHwgIDE2OSBieXRlcyAgIHwgIDE5MiBieXRlcyB8CisgICAgICAgICAgICAgLS0tLS0tfCAtLS0t
LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIE5l
dyAgfCAgMTQ4IGJ5dGVzICAgfCAgMTI0IGJ5dGVzICAgfCAgMTQzIGJ5dGVzIHwKKyAgICAgICAg
ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgICAgICBNYWtpbmcgYW4gYXJpdGhtZXRpYyBJQyBpcyBub3cgZWFzeS4gVGhlIEpJVE1h
dGhJQyBjbGFzcyB3aWxsIGhvbGQgYSBzbmlwcGV0CisgICAgICAgIGdlbmVyYXRvciBhcyBhIG1l
bWJlciB2YXJpYWJsZS4gVG8gbWFrZSBhIHNuaXBwZXQgYW4gSUMsIHlvdSBuZWVkIHRvIGltcGxl
bWVudAorICAgICAgICBhIGdlbmVyYXRlSW5saW5lKC4pIG1ldGhvZCwgd2hpY2ggZ2VuZXJhdGVz
IHRoZSBpbmxpbmUgSUMuIFRoZW4sIHlvdSBuZWVkIHRvCisgICAgICAgIGdlbmVyYXRlIHRoZSBJ
QyB3aGVyZSB5b3UgdXNlZCB0byBnZW5lcmF0ZSB0aGUgc25pcHBldC4gV2hlbiBnZW5lcmF0aW5n
IHRoZQorICAgICAgICBJQywgd2UgbmVlZCB0byBpbmZvcm0gSklUTWF0aElDIG9mIHZhcmlvdXMg
ZGF0YSBsaWtlIHdlIGRvIHdpdGggU3RydWN0dXJlU3R1YkluZm8uCisgICAgICAgIFdlIG5lZWQg
dG8gdGVsbCBpdCBhYm91dCB3aGVyZSB0aGUgc2xvdyBwYXRoIHN0YXJ0cywgd2hlcmUgdGhlIHNs
b3cgcGF0aCBjYWxsIGlzLCBldGMuCisgICAgICAgIFdoZW4gZ2VuZXJhdGluZyBhIEpJVE1hdGhJ
QywgaXQgbWF5IHRlbGwgeW91IHRoYXQgaXQgZGlkbid0IGdlbmVyYXRlIGFueSBjb2RlIGlubGlu
ZS4KKyAgICAgICAgVGhpcyBpcyBhIHJlcXVlc3QgdG8gdGhlIHVzZXIgb2YgSklUTWF0aElDIHRv
IGp1c3QgZ2VuZXJhdGUgYSBDIGNhbGwgYWxvbmcgdGhlCisgICAgICAgIGZhc3QgcGF0aC4gSklU
TWF0aElDIG1heSBhbHNvIGhhdmUgdGhlIHNuaXBwZXQgdGVsbCBpdCB0byBqdXN0IGdlbmVyYXRl
IHRoZSBmdWxsCisgICAgICAgIHNuaXBwZXQgaW5zdGVhZCBvZiB0aGUgaW50K2ludCBwYXRoIGFs
b25nIHRoZSBmYXN0IHBhdGguCisKKyAgICAgICAgSW4gc3Vic2VxdWVudCBwYXRjaGVzLCB3ZSBj
YW4gaW1wcm92ZSB1cG9uIGhvdyB3ZSBkZWNpZGUgdG8gZ2VuZXJhdGUgaW50K2ludCBvcgorICAg
ICAgICB0aGUgZnVsbCBzbmlwcGV0LiBJIHRyaWVkIHRvIGdldCBjbGV2ZXIgYnkgaGF2aW5nIGRv
dWJsZStkb3VibGUsIGRvdWJsZStpbnQsIGludCtkb3VibGUsCisgICAgICAgIGZhc3QgcGF0aHMs
IGJ1dCB0aGV5IGRpZG4ndCB3b3JrIG91dCBuZWFybHkgYXMgd2VsbCBhcyB0aGUgaW50K2ludCBm
YXN0IHBhdGguIEkgZW5kZWQgdXAKKyAgICAgICAgZ2VuZXJhdGluZyBhIGxvdCBvZiBjb2RlIHdo
ZW4gSSBkaWQgdGhpcyBhbmQgZW5kZWQgdXAgdXNpbmcgbW9yZSBtZW1vcnkgdGhhbiBqdXN0IGdl
bmVyYXRpbmcKKyAgICAgICAgdGhlIGZ1bGwgc25pcHBldC4gVGhlcmUgaXMgcHJvYmFibHkgc29t
ZSB3YXkgd2UgY2FuIGJlIGNsZXZlciBhbmQgZ2VuZXJhdGUgc3BlY2lhbGl6ZWQgZmFzdAorICAg
ICAgICBwYXRocyB0aGF0IGFyZSBtb3JlIHN1Y2Nlc3NmdWwgdGhhbiB3aGF0IEkgdHJpZWQgaW1w
bGVtZW50aW5nLCBidXQgSSB0aGluayB0aGF0J3Mgd29ydGggZGVmZXJyaW5nCisgICAgICAgIHRo
aXMgdG8gZm9sbG93IHVwIHBhdGNoZXMgb25jZSB0aGUgSklUTWF0aElDIGZvdW5kYXRpb24gaGFz
IGxhbmRlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgYSBidWcgaW5zaWRlIHRo
ZSBzbG93IHBhdGggbGFtYmRhcyBpbiB0aGUgREZHLgorICAgICAgICBCZWZvcmUsIGl0IHdhcyBu
b3QgbGVnYWwgdG8gZW1pdCBhbiBleGNlcHRpb24gY2hlY2sgaW5zaWRlIHRoZW0uIE5vdywKKyAg
ICAgICAgaXQgaXMuIFNvIGl0J3Mgbm93IGVhc3kgdG8gZGVmaW5lIGFyYml0cmFyeSBsYXRlIHBh
dGhzIHVzaW5nIHRoZSBERkcKKyAgICAgICAgc2xvdyBwYXRoIGxhbWJkYSBBUEkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldERvdWJsZSk6CisgICAg
ICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRo
UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwp
OgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5oOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6T2JzZXJ2ZWRUeXBlOjpPYnNlcnZlZFR5cGUpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5
cGU6OnNhd0ludDMyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc09ubHlJbnQzMik6
CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6c2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6
T2JzZXJ2ZWRUeXBlOjppc09ubHlOdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6
OnNhd05vbk51bWJlcik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNPbmx5Tm9uTnVt
YmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc0VtcHR5KToKKyAgICAgICAgKEpT
Qzo6T2JzZXJ2ZWRUeXBlOjpiaXRzKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRo
SW50MzIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OndpdGhOdW1iZXIpOgorICAgICAg
ICAoSlNDOjpPYnNlcnZlZFR5cGU6OndpdGhOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNl
cnZlZFR5cGU6OndpdGhvdXROb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6
Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OkFyaXRoUHJvZmlsZSk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZnJvbUludCk6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTo6bGhzUmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6
cmhzUmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzT2JzZXJ2ZWRU
eXBlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNPYnNlcnZlZFR5cGUpOgorICAg
ICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldExoc09ic2VydmVkVHlwZSk6CisgICAgICAgIChK
U0M6OkFyaXRoUHJvZmlsZTo6c2V0UmhzT2JzZXJ2ZWRUeXBlKToKKyAgICAgICAgKEpTQzo6QXJp
dGhQcm9maWxlOjp0b29rU3BlY2lhbEZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9m
aWxlOjpkaWRPYnNlcnZlTm9uSW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRp
ZE9ic2VydmVEb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVO
b25OZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZl
TmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZU5v
bk51bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDMyT3Zl
cmZsb3cpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVJbnQ1Mk92ZXJm
bG93KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9E
b3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkTmVnWmVyb0Rv
dWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OdW1iZXIp
OgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkSW50MzJPdmVyZmxvdyk6
CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93KToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjphZGRyZXNzT2ZCaXRzKToKKyAgICAgICAgKEpT
Qzo6QXJpdGhQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6CisgICAgICAgIChKU0M6OkFyaXRo
UHJvZmlsZTo6bGhzU2F3SW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc1Nh
d051bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzU2F3Tm9uTnVtYmVyKToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNTYXdJbnQzMik6CisgICAgICAgIChKU0M6
OkFyaXRoUHJvZmlsZTo6cmhzU2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxl
OjpyaHNTYXdOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Om9ic2VydmVM
SFNBbmRSSFMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmJpdHMpOgorICAgICAgICAo
SlNDOjpBcml0aFByb2ZpbGU6Omhhc0JpdHMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6
OnNldEJpdCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpkdW1wQXJpdGhQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0
ZWNvZGUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKToKKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjphZGRKSVRBZGRJQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZmluZFN0dWJJbmZvKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXNldEpJVERhdGEpOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkdW1wVmFsdWVQcm9maWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmFy
ZUNhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OmFyaXRoUHJvZmlsZUZvclBDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjb3Vs
ZFRha2VTcGVjaWFsRmFzdENhc2UpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBSZXN1
bHRQcm9maWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXN1bHRQcm9m
aWxlRm9yQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OnNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
OjpzdHViSW5mb0JlZ2luKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHViSW5mb0VuZCk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y291bGRUYWtlU2xvd0Nhc2UpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6Om51bWJlck9mUmVzdWx0UHJvZmlsZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwOgorICAgICAgICAo
SlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAg
ICAgICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaDoKKyAgICAgICAg
KEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSk6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdE51bWVyaWNuZXNzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9W
YWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6Z2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVP
ZmZzZXQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQz
Mik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVEb3Vi
bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlTm9u
TmVnWmVyb0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRp
ZE9ic2VydmVOZWdaZXJvRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJv
ZmlsZTo6ZGlkT2JzZXJ2ZU5vbk51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3Vs
dFByb2ZpbGU6OmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9E
b3VibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZE5vbk51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9i
c2VydmVkSW50MzJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OnNldE9ic2VydmVkSW50NTJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJl
c3VsdFByb2ZpbGU6OmFkZHJlc3NPZkZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVz
dWx0UHJvZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6Omhhc0JpdHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpzZXRCaXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZXRS
ZXN1bHRQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0QmluYXJ5T3ApOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjptZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlRm9yKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjayk6CisgICAg
ICAgICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2xv
d1BhdGhHZW5lcmF0b3I6OmdlbmVyYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRo
R2VuZXJhdG9ycyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZUFkZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJz
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6Cisg
ICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVWYWx1ZUFkZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVTdHJDYXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjplbWl0QmluYXJ5U25pcHBldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmVtaXRBZGRTbmlwcGV0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6ZW1pdEJpbmFyeUJpdE9wU25pcHBldCk6CisgICAgICAgICogaml0L0ND
YWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1bWVu
dHMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQWRkR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZSk6Cisg
ICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAg
ICogaml0L0pJVEFkZEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6
OkpJVEFkZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6ZGlkRW1p
dEZhc3RQYXRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjplbmRK
dW1wTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6c2xvd1Bh
dGhKdW1wTGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfamxlc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRTbG93X29wX3Vyc2hpZnQpOgorICAgICAgICAoSlNDOjpnZXRPcGVyYW5kVHlwZXMpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF9hZGQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGl2KToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX211bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbXVs
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N1Yik6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdFNsb3dfb3Bfc3ViKToKKyAgICAgICAgKiBqaXQvSklURGl2R2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklURGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAg
KiBqaXQvSklURGl2R2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVERpdkdlbmVyYXRvcjo6
SklURGl2R2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRNYXRoSUMuaDogQWRk
ZWQuCisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6ZG9uZUxvY2F0aW9uKToKKyAgICAgICAgKEpT
Qzo6SklUTWF0aElDOjpzbG93UGF0aFN0YXJ0TG9jYXRpb24pOgorICAgICAgICAoSlNDOjpKSVRN
YXRoSUM6OnNsb3dQYXRoQ2FsbExvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklUTWF0aElDOjpn
ZW5lcmF0ZUlubGluZSk6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6Z2VuZXJhdGVPdXRPZkxp
bmUpOgorICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmZpbmFsaXplSW5saW5lQ29kZSk6CisgICAg
ICAgICogaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9KSVRN
YXRoSUNJbmxpbmVSZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRv
ci5jcHA6CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6
CisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRNdWxH
ZW5lcmF0b3I6OkpJVE11bEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMu
Y3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFN1
YkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5oOgorICAgICAgICAoSlND
OjpKSVRTdWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRvcik6CisgICAgICAgICogaml0L1JlcGF0
Y2guY3BwOgorICAgICAgICAoSlNDOjpyZWFkQ2FsbFRhcmdldCk6CisgICAgICAgIChKU0M6OmZ0
bFRodW5rQXdhcmVSZXBhdGNoQ2FsbCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6
CisgICAgICAgIChKU0M6OnJlcGF0Y2hHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6YXBwcm9wcmlh
dGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlE
KToKKyAgICAgICAgKEpTQzo6cmVwYXRjaFB1dEJ5SUQpOgorICAgICAgICAoSlNDOjp0cnlSZXBh
dGNoSW4pOgorICAgICAgICAoSlNDOjpyZXBhdGNoSW4pOgorICAgICAgICAoSlNDOjpsaW5rU2xv
d0Zvcik6CisgICAgICAgIChKU0M6OnJlc2V0R2V0QnlJRCk6CisgICAgICAgIChKU0M6OnJlc2V0
UHV0QnlJRCk6CisgICAgICAgIChKU0M6OnJlcGF0Y2hDYWxsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
OgorICAgICAgICAqIHBhcnNlci9SZXN1bHRUeXBlLmg6CisgICAgICAgIChKU0M6OlJlc3VsdFR5
cGU6OlJlc3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjppc0ludDMyKToKKyAg
ICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6ZGVmaW5pdGVseUlzTnVtYmVyKToKKyAgICAgICAgKEpT
Qzo6UmVzdWx0VHlwZTo6ZGVmaW5pdGVseUlzU3RyaW5nKToKKyAgICAgICAgKEpTQzo6UmVzdWx0
VHlwZTo6ZGVmaW5pdGVseUlzQm9vbGVhbik6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6Om1p
Z2h0QmVOdW1iZXIpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjppc05vdE51bWJlcik6Cisg
ICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmZvckJpdE9wKToKKyAgICAgICAgKEpTQzo6UmVzdWx0
VHlwZTo6Yml0cyk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRUeXBlczo6T3BlcmFuZFR5cGVzKToK
KyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNM
T1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6dXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5
QXJpdGhPcCk6CisgICAgICAgIChKU0M6OnVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0
aE9wKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMu
anM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAgICAgKGYxKToKKyAgICAgICAgKGYy
KToKKyAgICAgICAgKGYzKToKKyAgICAgICAgKGxldC5vRXhjZXB0aW9uLnZhbHVlT2YpOgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKGlkZW50KToKKyAgICAgICAgKGJhcik6CisKIDIwMTYtMDct
MjAgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hP
bk92ZXJmbG93IGluIEpTQzo6WWFycjo6WWFyclBhdHRlcm5Db25zdHJ1Y3Rvcjo6c2V0dXBBbHRl
cm5hdGl2ZU9mZnNldHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJl
dmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VS
Q0VTCiAgICAgYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVDcmVhdG9yLmNwcAogCiAgICAgYnl0
ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAKKyAg
ICBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZS5jcHAKICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc5LDE2ICsx
Mjc5LDIxIEBACiAJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MDVCQjY3MUQx
MjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OTE2MERCRDFDOEUzRUM4MDA4QzA4NUEgLyogUHJv
eHlSZXZva2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLzsgfTsKIAkJ
NzkxNjBEQkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERCQzFDOEUzRUM4MDA4QzA4NUEg
LyogUHJveHlSZXZva2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0MyOTFEMzQ3MTU3
MDBDNUE4MzQgLyogSklUTWF0aElDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3Jp
Z2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07
CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1
QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdl
dFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQw
MEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4RkNGQjkwMDg0MDBCQSAvKiBK
U0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENU
b09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc5QTIyODM1MUQzNUQ3
MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJv
ZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4RTA2NyAvKiBBcml0aFByb2Zp
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QTIy
ODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLzsgfTsKKwkJNzlBRjBCRTQx
RDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBRjBCRTMxRDNFRkQ0QzAwRTk1RkE1
IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNv
bnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCAqLzsg
fTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I5MUM2QUIw
N0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZBQjA3RTAwODhDNjVEIC8qIFBy
b3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgKi87IHNldHRp
bmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyI7IH07
IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlCMDBDQkIxQzZBQjA3RTAw
ODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0Zv
cndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUM0QjE1RDFCQTIxNThG
MDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QjFCQTIx
NThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAg
Ki87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJpYWJs
ZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFi
bGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhFQSAvKiBMTEludFBDUmFuZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUNGQzZF
RjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc3LDEyICszNDgyLDE3IEBACiAJCTc5
MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJldm9rZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJl
dm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94eVJldm9rZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyog
SklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJQy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0NzFDNEVFRDVDMDBEMTNBRjMg
LyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1dElu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0UHV0SW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNH
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2Fs
RW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxM
ZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk5RUY3
QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0aCA9IGIzL0IzUENUb09yaWdp
bk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUEyMjgzMzFEMzVENzFFMDBE
OEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5
QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRoSUNGb3J3YXJkcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklU
TWF0aElDSW5saW5lUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJ
VE1hdGhJQ0lubGluZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIw
MENCODFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlCMDBDQjkxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29u
c3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJveHlDb25zdHJ1
Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUIwMENCQTFDNkFCMDdFMDA4
OEM2NUQgLyogUHJveHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJveHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA2
NCw2ICs1MDc0LDkgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2lj
RW1pdHRlci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5jcHAg
Ki8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oICovLAorCQkJCTc5MjMz
QzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLywKKwkJCQk3OUE4OTlGRTFEMzg2
MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLywKKwkJCQk3OUFGMEJFMzFEM0VG
RDRDMDBFOTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8sCiAJCQkJRkUxMjIwMjUx
QkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAgKi8sCiAJCQkJRkUxMjIwMjYx
QkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovLAogCQkJCTg2QTkwRUNGMEVF
N0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAqLywKQEAgLTY1NjUsNiArNjU3OCw4
IEBACiAJCQkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2Zp
bGUuaCAqLywKIAkJCQkwRjYzOTQ1MTE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmNw
cCAqLywKIAkJCQkwRjYzOTQ1MjE1RDA3MDUxMDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmggKi8s
CisJCQkJNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgKi8sCisJ
CQkJNzlBMjI4MzQxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oICovLAogCQkJCUMy
RkNBRTBDMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suY3BwICovLAogCQkJ
CUMyRkNBRTBEMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suaCAqLywKIAkJ
CQkwRjIxQzI3RTE0QkVBQTgwMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9ucy5oICovLApA
QCAtNzA3Nyw2ICs3MDkyLDcgQEAKIAkJCQlBNUVBNzBFODE5RjVCMTAxMDA5OEY1RUMgLyogQXVn
bWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVDODRGRjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMjFCREFDREFDMDA4MEZGNzQgLyogQjNCYXNpY0Js
b2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDMxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzQmFzaWNCbG9ja1V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwNDFCREFD
REFDMDA4MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTc2NTYs
NiArNzY3Miw3IEBACiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAwODA2NkREIC8qIEludGVybmFs
RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlENzdDMEVEMjBENzMwMEI4OTYxOSAv
KiBJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBRjBCRTQxRDNFRkQ0QzAwRTk1
RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUy
M0ExQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9y
Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3NjUsNiArNzc4Miw3IEBACiAJ
CQkJQTUxMDA3QzExODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAwNjhBNDZEIC8q
IEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAzRkEy
QTE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhFMDY3IC8qIEFyaXRoUHJvZmls
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzAxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5q
ZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDMjE4NUJGQUNDMDA3
RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM0NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0cy5qc29uIGluIEhlYWRlcnMg
Ki8sCkBAIC04MTkwLDYgKzgyMDgsNyBAQAogCQkJCTBGQzgxNTBBMTQwNDNCRjUwMENGQTYwMyAv
KiBXcml0ZUJhcnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4Q0IxNjBFRDEy
QjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU5RTky
RTFCRDE3RkE0MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCisJCQkJNzlCMTc4OEUx
RDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBpbiBIZWFkZXJz
ICovLApAQCAtOTI3NCw2ICs5MjkzLDcgQEAKIAkJCQkwRkVCM0VDRjE2MjM3RjZDMDBBQjY3QUQg
LyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZDNTY4RTAxMUEyMTNF
RTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZF
QjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2MDAwMzE3Mjk4IC8qIE1hY3JvQXNz
ZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OEM2MzgxQjkwREUwQjAwNDJC
Q0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E0
QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9m
aWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJp
dGhQcm9maWxlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Bcml0aFByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKworI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyNp
ZiBFTkFCTEUoSklUKQordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRPYnNlcnZlUmVzdWx0KENDYWxs
SGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7
CisgICAgaWYgKCFzaG91bGRFbWl0U2V0RG91YmxlKCkgJiYgIXNob3VsZEVtaXRTZXROb25OdW1i
ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzSW50MzIg
PSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
bm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihyZWdzLCBtb2Rl
KTsKKyAgICBlbWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUg
PSBqaXQuanVtcCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAgIGVtaXRTZXROb25O
dW1iZXIoaml0KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAgaXNJbnQzMi5saW5rKCZqaXQp
OworfQorCitib29sIEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldERvdWJsZSgpIGNvbnN0Cit7
CisgICAgdWludDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6SW50MzJPdmVyZmxvdyB8IEFyaXRo
UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSB8IEFy
aXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZTsKKyAgICByZXR1cm4gKG1fYml0cyAmIG1hc2sp
ICE9IG1hc2s7Cit9CisKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVs
cGVycyYgaml0KQoreworICAgIGlmIChzaG91bGRFbWl0U2V0RG91YmxlKCkpCisgICAgICAgIGpp
dC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6SW50MzJPdmVy
ZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6TmVnWmVy
b0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQorCitib29sIEFyaXRoUHJvZmls
ZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0Cit7CisgICAgdWludDMyX3QgbWFzayA9
IEFyaXRoUHJvZmlsZTo6Tm9uTnVtYmVyOworICAgIHJldHVybiAobV9iaXRzICYgbWFzaykgIT0g
bWFzazsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxw
ZXJzJiBqaXQpCit7CisgICAgaWYgKHNob3VsZEVtaXRTZXROb25OdW1iZXIoKSkKKyAgICAgICAg
aml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOb25OdW1i
ZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZCaXRzKCkpKTsKK30K
KyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNwYWNl
IFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHByaW50SW50ZXJuYWwo
UHJpbnRTdHJlYW0mIG91dCwgY29uc3QgQXJpdGhQcm9maWxlJiBwcm9maWxlKQoreworICAgIGNv
bnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOworCisgICAgb3V0LnByaW50KCJSZXN1bHQ6PCIpOwor
ICAgIGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJp
bnQoIkludDMyIik7CisgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2Vw
YXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVO
b25OZWdaZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJO
b25OZWdaZXJvRG91YmxlIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7CisgICAgICAg
ICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBh
cmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUlu
dDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIkludDMy
T3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiSW50NTJPdmVyZmxvdyIpOworICAgICAgICAgICAgc2Vw
YXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgfQorICAgIGlmIChwcm9maWxlLnRvb2tTcGVj
aWFsRmFzdFBhdGgoKSkKKyAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIlRvb2sgc3BlY2lh
bCBmYXN0IHBhdGguIik7CisgICAgb3V0LnByaW50KCI+Iik7CisKKyAgICBvdXQucHJpbnQoIiBM
SFMgT2JzZXJ2ZWRUeXBlOjwiKTsKKyAgICBvdXQucHJpbnQocHJvZmlsZS5saHNPYnNlcnZlZFR5
cGUoKSk7CisgICAgb3V0LnByaW50KCI+IFJIUyBPYnNlcnZlZFR5cGU6PCIpOworICAgIG91dC5w
cmludChwcm9maWxlLnJoc09ic2VydmVkVHlwZSgpKTsKKyAgICBvdXQucHJpbnQoIj4iKTsKKwor
ICAgIG91dC5wcmludCgiIExIUyBSZXN1bHRUeXBlOjwiLCBSYXdQb2ludGVyKGJpdHdpc2VfY2Fz
dDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHByb2ZpbGUubGhzUmVzdWx0VHlwZSgpLmJp
dHMoKSkpKSk7CisgICAgb3V0LnByaW50KCI+IFJIUyBSZXN1bHRUeXBlOjwiLCBSYXdQb2ludGVy
KGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHByb2ZpbGUucmhzUmVz
dWx0VHlwZSgpLmJpdHMoKSkpKSk7CisgICAgb3V0LnByaW50KCI+Iik7Cit9CisKK3ZvaWQgcHJp
bnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBKU0M6Ok9ic2VydmVkVHlwZSYgb2Jz
ZXJ2ZWRUeXBlKQoreworICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOworICAgIGlmIChv
YnNlcnZlZFR5cGUuc2F3SW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAi
SW50MzIiKTsKKyAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgIH0KKyAgICBpZiAob2JzZXJ2
ZWRUeXBlLnNhd051bWJlcigpKSB7CisgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOdW1i
ZXIiKTsKKyAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgIH0KKyAgICBpZiAob2JzZXJ2ZWRU
eXBlLnNhd05vbk51bWJlcigpKSB7CisgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOb25O
dW1iZXIiKTsKKyAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgIH0KK30KKworfSAvLyBuYW1l
c3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9m
aWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRo
UHJvZmlsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0FyaXRoUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjI1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlICJS
ZXN1bHRUeXBlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCitzdHJ1Y3QgT2JzZXJ2ZWRUeXBlIHsKKyAg
ICBPYnNlcnZlZFR5cGUodWludDhfdCBiaXRzID0gVHlwZUVtcHR5KQorICAgICAgICA6IG1fYml0
cyhiaXRzKQorICAgIHsgfQorCisgICAgYm9vbCBzYXdJbnQzMigpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGJvb2wgaXNPbmx5SW50MzIoKSBjb25zdCB7IHJldHVy
biBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgYm9vbCBzYXdOdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBtX2JpdHMgJiBUeXBlTnVtYmVyOyB9CisgICAgYm9vbCBpc09ubHlOdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU51bWJlcjsgfQorICAgIGJvb2wgc2F3Tm9uTnVtYmVy
KCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU5vbk51bWJlcjsgfQorICAgIGJvb2wgaXNP
bmx5Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5cGVOb25OdW1iZXI7IH0K
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9iaXRzOyB9CisgICAgdWludDhf
dCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKKyAgICBPYnNlcnZlZFR5cGUgd2l0
aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVJbnQzMik7
IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVk
VHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRoTm9uTnVt
YmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVOb25OdW1iZXIp
OyB9CisgICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBP
YnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9CisKKyAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9iaXRzID09
IG90aGVyLm1fYml0czsgfQorCisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUVtcHR5ID0g
MHgwOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQzMiA9IDB4MTsKKyAgICBzdGF0
aWMgY29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKKyAgICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBu
dW1CaXRzTmVlZGVkID0gMzsKKworcHJpdmF0ZToKKyAgICB1aW50OF90IG1fYml0czsKK307CisK
K3N0cnVjdCBBcml0aFByb2ZpbGUgeworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc1Jl
c3VsdFR5cGVTaGlmdCA9IG51bWJlck9mRmxhZ0JpdHM7CisgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGxoc1Jlc3VsdFR5cGVTaGlmdCA9IHJoc1Jlc3VsdFR5cGVTaGlmdCArIFJlc3VsdFR5cGU6
Om51bUJpdHNOZWVkZWQ7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJoc09ic2VydmVkVHlw
ZVNoaWZ0ID0gbGhzUmVzdWx0VHlwZVNoaWZ0ICsgUmVzdWx0VHlwZTo6bnVtQml0c05lZWRlZDsK
KyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQgPSByaHNPYnNl
cnZlZFR5cGVTaGlmdCArIE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZDsKKworICAgIHN0YXRp
Y19hc3NlcnQoT2JzZXJ2ZWRUeXBlOjpudW1CaXRzTmVlZGVkID09IDMsICJXZSBtYWtlIGEgaGFy
ZCBhc3N1bXB0aW9uIGFib3V0IHRoYXQgaGVyZS4iKTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgY2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRNYXNrID0gfigoMSA8PCByaHNPYnNlcnZlZFR5cGVT
aGlmdCkgfCAoMSA8PCAocmhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyAxKSkgfCAoMSA8PCAocmhzT2Jz
ZXJ2ZWRUeXBlU2hpZnQgKyAyKSkpOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjbGVhckxo
c09ic2VydmVkVHlwZUJpdE1hc2sgPSB+KCgxIDw8IGxoc09ic2VydmVkVHlwZVNoaWZ0KSB8ICgx
IDw8IChsaHNPYnNlcnZlZFR5cGVTaGlmdCArIDEpKSB8ICgxIDw8IChsaHNPYnNlcnZlZFR5cGVT
aGlmdCArIDIpKSk7CisKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcmVzdWx0VHlwZU1hc2sg
PSAoMSA8PCBSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkKSAtIDE7CisgICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IG9ic2VydmVkVHlwZU1hc2sgPSAoMSA8PCBPYnNlcnZlZFR5cGU6Om51bUJpdHNO
ZWVkZWQpIC0gMTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc3BlY2lhbEZh
c3RQYXRoQml0ID0gMSA8PCAobGhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5cGU6Om51
bUJpdHNOZWVkZWQpOworICAgIHN0YXRpY19hc3NlcnQoKGxoc09ic2VydmVkVHlwZVNoaWZ0ICsg
T2JzZXJ2ZWRUeXBlOjpudW1CaXRzTmVlZGVkKSA8PSAoc2l6ZW9mKHVpbnQzMl90KSAqIDgpIC0g
MSwgIlNob3VsZCBmaXQgaW4gYSB1aW50MzJfdC4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KCEoc3Bl
Y2lhbEZhc3RQYXRoQml0ICYgfmNsZWFyTGhzT2JzZXJ2ZWRUeXBlQml0TWFzayksICJUaGVzZSBi
aXRzIHNob3VsZCBub3QgaW50ZXJzZWN0LiIpOworICAgIHN0YXRpY19hc3NlcnQoc3BlY2lhbEZh
c3RQYXRoQml0ICYgY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRNYXNrLCAiVGhlc2UgYml0cyBzaG91
bGQgaW50ZXJzZWN0LiIpOworICAgIHN0YXRpY19hc3NlcnQoc3BlY2lhbEZhc3RQYXRoQml0ID4g
fmNsZWFyTGhzT2JzZXJ2ZWRUeXBlQml0TWFzaywgIlRoZXNlIGJpdHMgc2hvdWxkIG5vdCBpbnRl
cnNlY3QgYW5kIHNwZWNpYWxGYXN0UGF0aEJpdCBzaG91bGQgYmUgYSBoaWdoZXIgYml0LiIpOwor
CisgICAgQXJpdGhQcm9maWxlKFJlc3VsdFR5cGUgbGhzLCBSZXN1bHRUeXBlIHJocykKKyAgICB7
CisgICAgICAgIG1fYml0cyA9IChsaHMuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVTaGlmdCkgfCAo
cmhzLmJpdHMoKSA8PCByaHNSZXN1bHRUeXBlU2hpZnQpOworICAgICAgICBBU1NFUlQobGhzUmVz
dWx0VHlwZSgpLmJpdHMoKSA9PSBsaHMuYml0cygpICYmIHJoc1Jlc3VsdFR5cGUoKS5iaXRzKCkg
PT0gcmhzLmJpdHMoKSk7CisgICAgICAgIEFTU0VSVChsaHNPYnNlcnZlZFR5cGUoKS5pc0VtcHR5
KCkpOworICAgICAgICBBU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsKKyAgICB9
CisgICAgQXJpdGhQcm9maWxlKCkgeyB9CisKKyAgICBzdGF0aWMgQXJpdGhQcm9maWxlIGZyb21J
bnQodWludDMyX3QgYml0cykKKyAgICB7CisgICAgICAgIEFyaXRoUHJvZmlsZSByZXN1bHQ7Cisg
ICAgICAgIHJlc3VsdC5tX2JpdHMgPSBiaXRzOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKworICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJs
ZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAg
Tm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEg
PDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKKyAgICB9OworCisgICAg
UmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9i
aXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlmdCkgJiByZXN1bHRUeXBlTWFzayk7IH0KKyAgICBSZXN1
bHRUeXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBSZXN1bHRUeXBlKChtX2JpdHMg
Pj4gcmhzUmVzdWx0VHlwZVNoaWZ0KSAmIHJlc3VsdFR5cGVNYXNrKTsgfQorCisgICAgT2JzZXJ2
ZWRUeXBlIGxoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9i
aXRzID4+IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAmIG9ic2VydmVkVHlwZU1hc2spOyB9CisgICAg
T2JzZXJ2ZWRUeXBlIHJoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlw
ZSgobV9iaXRzID4+IHJoc09ic2VydmVkVHlwZVNoaWZ0KSAmIG9ic2VydmVkVHlwZU1hc2spOyB9
CisgICAgdm9pZCBzZXRMaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAgewor
ICAgICAgICB1aW50MzJfdCBiaXRzID0gbV9iaXRzOworICAgICAgICBiaXRzICY9IGNsZWFyTGhz
T2JzZXJ2ZWRUeXBlQml0TWFzazsKKyAgICAgICAgYml0cyB8PSB0eXBlLmJpdHMoKSA8PCBsaHNP
YnNlcnZlZFR5cGVTaGlmdDsKKyAgICAgICAgbV9iaXRzID0gYml0czsKKyAgICAgICAgQVNTRVJU
KGxoc09ic2VydmVkVHlwZSgpID09IHR5cGUpOworICAgIH0KKworICAgIHZvaWQgc2V0UmhzT2Jz
ZXJ2ZWRUeXBlKE9ic2VydmVkVHlwZSB0eXBlKQorICAgIHsgCisgICAgICAgIHVpbnQzMl90IGJp
dHMgPSBtX2JpdHM7CisgICAgICAgIGJpdHMgJj0gY2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRNYXNr
OworICAgICAgICBiaXRzIHw9IHR5cGUuYml0cygpIDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0Owor
ICAgICAgICBtX2JpdHMgPSBiaXRzOworICAgICAgICBBU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkg
PT0gdHlwZSk7CisgICAgfQorCisgICAgYm9vbCB0b29rU3BlY2lhbEZhc3RQYXRoKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRzICYgc3BlY2lhbEZhc3RQYXRoQml0OyB9CisKKyAgICBib29sIGRpZE9i
c2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8
IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJs
ZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1
cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9CisgICAg
Ym9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1i
ZXIpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJu
IGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KKyAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93KTsgfQorCisgICAgdm9p
ZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91Ymxl
KTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVy
b0RvdWJsZSk7IH0KKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9u
TnVtYmVyKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQo
SW50MzJPdmVyZmxvdyk7IH0KKyAgICB2b2lkIHNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpIHsg
c2V0Qml0KEludDUyT3ZlcmZsb3cpOyB9CisKKyAgICB2b2lkKiBhZGRyZXNzT2ZCaXRzKCkgeyBy
ZXR1cm4gJm1fYml0czsgfQorCisgICAgdm9pZCBvYnNlcnZlUmVzdWx0KEpTVmFsdWUgdmFsdWUp
CisgICAgeworICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9iaXRzIHw9
IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1pl
cm9Eb3VibGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9iaXRz
IHw9IE5vbk51bWJlcjsKKyAgICB9CisKKyAgICB2b2lkIGxoc1Nhd0ludDMyKCkgeyBzZXRMaHNP
YnNlcnZlZFR5cGUobGhzT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCBs
aHNTYXdOdW1iZXIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRo
TnVtYmVyKCkpOyB9CisgICAgdm9pZCBsaHNTYXdOb25OdW1iZXIoKSB7IHNldExoc09ic2VydmVk
VHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoTm9uTnVtYmVyKCkpOyB9CisgICAgdm9pZCByaHNT
YXdJbnQzMigpIHsgc2V0UmhzT2JzZXJ2ZWRUeXBlKHJoc09ic2VydmVkVHlwZSgpLndpdGhJbnQz
MigpKTsgfQorICAgIHZvaWQgcmhzU2F3TnVtYmVyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhz
T2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJlcigpKTsgfQorICAgIHZvaWQgcmhzU2F3Tm9uTnVtYmVy
KCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2JzZXJ2ZWRUeXBlKCkud2l0aE5vbk51bWJlcigp
KTsgfQorCisgICAgdm9pZCBvYnNlcnZlTEhTQW5kUkhTKEpTVmFsdWUgbGhzLCBKU1ZhbHVlIHJo
cykKKyAgICB7CisgICAgICAgIEFyaXRoUHJvZmlsZSBuZXdQcm9maWxlID0gKnRoaXM7CisgICAg
ICAgIGlmIChsaHMuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgaWYgKGxocy5pc0ludDMyKCkp
CisgICAgICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNTYXdJbnQzMigpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNTYXdOb25OdW1iZXIoKTsKKworICAg
ICAgICBpZiAocmhzLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChyaHMuaXNJbnQzMigp
KQorICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBuZXdQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhzU2F3Tm9uTnVtYmVyKCk7CisKKyAg
ICAgICAgbV9iaXRzID0gbmV3UHJvZmlsZS5iaXRzKCk7CisgICAgfQorCisjaWYgRU5BQkxFKEpJ
VCkgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91Ymxl
LiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXRP
YnNlcnZlUmVzdWx0KENDYWxsSGVscGVycyYsIEpTVmFsdWVSZWdzLCBUYWdSZWdpc3RlcnNNb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8
IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkuCisgICAg
Ym9vbCBzaG91bGRFbWl0U2V0RG91YmxlKCkgY29uc3Q7CisgICAgdm9pZCBlbWl0U2V0RG91Ymxl
KENDYWxsSGVscGVycyYpOworICAgIAorICAgIC8vIFNldHMgTm9uTnVtYmVyLgorICAgIHZvaWQg
ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmKTsKKyAgICBib29sIHNob3VsZEVtaXRTZXRO
b25OdW1iZXIoKSBjb25zdDsKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisgICAgdWludDMyX3Qg
Yml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFz
Qml0cyhpbnQgbWFzaykgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgbWFzazsgfQorICAgIHZvaWQg
c2V0Qml0KGludCBtYXNrKSB7IG1fYml0cyB8PSBtYXNrOyB9CisKKyAgICB1aW50MzJfdCBtX2Jp
dHMgeyAwIH07IC8vIFdlIHRha2UgY2FyZSB0byB1cGRhdGUgbV9iaXRzIG9ubHkgaW4gYSBzaW5n
bGUgb3BlcmF0aW9uLiBXZSBkb24ndCBldmVyIHN0b3JlIGFuIGluY29uc2lzdGVudCBiaXQgcmVw
cmVzZW50YXRpb24gdG8gaXQuCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNwYWNl
IFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IEpTQzo6QXJp
dGhQcm9maWxlJik7Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBKU0M6
Ok9ic2VydmVkVHlwZSYpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMDM0NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNC
bG9ja0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRl
ICJCeXRlY29kZVVzZURlZi5oIgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgIklubGluZUNh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisj
aW5jbHVkZSAiSklUTWF0aElDLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgpAQCAtNzY5
LDcgKzc3MSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKFByaW4KICAg
ICBvdXQucHJpbnQobmFtZSwgcHJvZmlsZS0+bV9jb3VudGVyKTsKIH0KIAotdm9pZCBDb2RlQmxv
Y2s6OmR1bXBSZXN1bHRQcm9maWxlKFByaW50U3RyZWFtJiBvdXQsIFJlc3VsdFByb2ZpbGUqIHBy
b2ZpbGUsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFy
aXRoUHJvZmlsZShQcmludFN0cmVhbSYgb3V0LCBBcml0aFByb2ZpbGUqIHByb2ZpbGUsIGJvb2wm
IGhhc1ByaW50ZWRQcm9maWxpbmcpCiB7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICByZXR1
cm47CkBAIC0xNzY5LDggKzE3NzEsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAog
CiAgICAgZHVtcFJhcmVDYXNlUHJvZmlsZShvdXQsICJyYXJlIGNhc2U6ICIsIHJhcmVDYXNlUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAg
ICAgewotICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAg
ICBkdW1wUmVzdWx0UHJvZmlsZShvdXQsIHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChs
b2NrZXIsIGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisgICAgICAgIGR1bXBBcml0
aFByb2ZpbGUob3V0LCBhcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NhdGlvbiksIGhh
c1ByaW50ZWRQcm9maWxpbmcpOwogICAgIH0KICAgICAKICNpZiBFTkFCTEUoREZHX0pJVCkKQEAg
LTMwMDMsNiArMzAwNCwxMSBAQCBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHVi
SW5mCiAgICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZChhY2Nlc3NUeXBlKTsKIH0KIAorSklUQWRk
SUMqIENvZGVCbG9jazo6YWRkSklUQWRkSUMoKQoreworICAgIHJldHVybiBtX2FkZElDcy5hZGQo
KTsKK30KKwogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVP
cmlnaW4gY29kZU9yaWdpbikKIHsKICAgICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
byA6IG1fc3R1YkluZm9zKSB7CkBAIC0zMDQ5LDExICszMDU1LDYgQEAgdm9pZCBDb2RlQmxvY2s6
OnJlc2V0SklURGF0YSgpCiAgICAgLy8gV2UgY2FuIGNsZWFyIHRoaXMgYmVjYXVzZSB0aGUgREZH
J3MgcXVlcmllcyB0byB0aGVzZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGd1YXJkZWQgYnkgd2hldGhl
cgogICAgIC8vIHRoZXJlIGlzIEpJVCBjb2RlLgogICAgIG1fcmFyZUNhc2VQcm9maWxlcy5jbGVh
cigpOwotICAgIAotICAgIC8vIFdlIGNhbiBjbGVhciB0aGVzZSBiZWNhdXNlIHRoZSBERkcgb25s
eSBhY2Nlc3NlcyBtZW1iZXJzIG9mIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgd2hlbgotICAgIC8vIGhv
bGRpbmcgdGhlIGxvY2sgb3IgYWZ0ZXIgcXVlcnlpbmcgd2hldGhlciB3ZSBoYXZlIEpJVCBjb2Rl
LgotICAgIG1fcmVzdWx0UHJvZmlsZXMuY2xlYXIoKTsKLSAgICBtX2J5dGVjb2RlT2Zmc2V0VG9S
ZXN1bHRQcm9maWxlSW5kZXhNYXAgPSBudWxscHRyOwogfQogI2VuZGlmCiAKQEAgLTMyODMsNyAr
MzI4NCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpzaHJpbmtUb0ZpdChTaHJpbmtNb2RlIHMKICAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogCiAgICAgbV9yYXJlQ2FzZVByb2Zp
bGVzLnNocmlua1RvRml0KCk7Ci0gICAgbV9yZXN1bHRQcm9maWxlcy5zaHJpbmtUb0ZpdCgpOwog
ICAgIAogICAgIGlmIChzaHJpbmtNb2RlID09IEVhcmx5U2hyaW5rKSB7CiAgICAgICAgIG1fY29u
c3RhbnRSZWdpc3RlcnMuc2hyaW5rVG9GaXQoKTsKQEAgLTQxNTksMTEgKzQxNTksNiBAQCB2b2lk
IENvZGVCbG9jazo6ZHVtcFZhbHVlUHJvZmlsZXMoKQogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUq
IHByb2ZpbGUgPSByYXJlQ2FzZVByb2ZpbGUoaSk7CiAgICAgICAgIGRhdGFMb2dGKCIgICBiYyA9
ICVkOiAldVxuIiwgcHJvZmlsZS0+bV9ieXRlY29kZU9mZnNldCwgcHJvZmlsZS0+bV9jb3VudGVy
KTsKICAgICB9Ci0gICAgZGF0YUxvZygiUmVzdWx0UHJvZmlsZSBmb3IgIiwgKnRoaXMsICI6XG4i
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygp
OyArK2kpIHsKLSAgICAgICAgY29uc3QgUmVzdWx0UHJvZmlsZSYgcHJvZmlsZSA9ICpyZXN1bHRQ
cm9maWxlKGkpOwotICAgICAgICBkYXRhTG9nKCIgICBiYyA9ICIsIHByb2ZpbGUuYnl0ZWNvZGVP
ZmZzZXQoKSwgIjogIiwgcHJvZmlsZSwgIlxuIik7Ci0gICAgfQogfQogI2VuZGlmIC8vIEVOQUJM
RShWRVJCT1NFX1ZBTFVFX1BST0ZJTEUpCiAKQEAgLTQzNjYsNTYgKzQzNjEsNTUgQEAgdW5zaWdu
ZWQgQ29kZUJsb2NrOjpyYXJlQ2FzZVByb2ZpbGVDb3VudAogICAgIHJldHVybiAwOwogfQogCi1S
ZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgaW50IGJ5dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9m
aWxlKiBDb2RlQmxvY2s6OmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29k
ZU9mZnNldCkKIHsKLSAgICBpZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRl
eE1hcCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fYnl0
ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcC0+ZmluZChieXRlY29kZU9mZnNldCk7
Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRl
eE1hcC0+ZW5kKCkpCisgICAgYXV0byBvcGNvZGVJRCA9IHZtKCktPmludGVycHJldGVyLT5nZXRP
cGNvZGVJRChpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9mZnNldF0udS5vcGNvZGUpOworICAgIHN3
aXRjaCAob3Bjb2RlSUQpIHsKKyAgICBjYXNlIG9wX2JpdG9yOgorICAgIGNhc2Ugb3BfYml0YW5k
OgorICAgIGNhc2Ugb3BfYml0eG9yOgorICAgIGNhc2Ugb3BfYWRkOgorICAgIGNhc2Ugb3BfbXVs
OgorICAgIGNhc2Ugb3Bfc3ViOgorICAgIGNhc2Ugb3BfZGl2OgorICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gJm1fcmVzdWx0
UHJvZmlsZXNbaXRlcmF0b3ItPnZhbHVlXTsKLX0KKyAgICB9CiAKLXVuc2lnbmVkIENvZGVCbG9j
azo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVj
b2RlT2Zmc2V0KQotewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0g
ICAgcmV0dXJuIHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGxv
Y2tlciwgYnl0ZWNvZGVPZmZzZXQpOworICAgIHJldHVybiAmYXJpdGhQcm9maWxlRm9yUEMoaW5z
dHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5dGVjb2RlT2Zmc2V0KTsKIH0KIAotdW5zaWduZWQgQ29k
ZUJsb2NrOjpzcGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldChjb25z
dCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9mZnNldCkKK0FyaXRo
UHJvZmlsZSYgQ29kZUJsb2NrOjphcml0aFByb2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiogcGMpCiB7
Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9IHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9m
ZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoIXByb2ZpbGUpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBwcm9maWxlLT5zcGVjaWFsRmFzdFBhdGhDb3VudCgpOwor
ICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7CisgICAgICAgIEFTU0VSVChwYyA+PSBpbnN0cnVj
dGlvbnMoKS5iZWdpbigpICYmIHBjIDwgaW5zdHJ1Y3Rpb25zKCkuZW5kKCkpOworICAgICAgICBh
dXRvIG9wY29kZUlEID0gdm0oKS0+aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bj
b2RlKTsKKyAgICAgICAgc3dpdGNoIChvcGNvZGVJRCkgeworICAgICAgICBjYXNlIG9wX2JpdG9y
OgorICAgICAgICBjYXNlIG9wX2JpdGFuZDoKKyAgICAgICAgY2FzZSBvcF9iaXR4b3I6CisgICAg
ICAgIGNhc2Ugb3BfYWRkOgorICAgICAgICBjYXNlIG9wX211bDoKKyAgICAgICAgY2FzZSBvcF9z
dWI6CisgICAgICAgIGNhc2Ugb3BfZGl2OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiAqYml0d2lzZV9jYXN0PEFyaXRoUHJvZmlsZSo+KCZwY1s0XS51Lm9w
ZXJhbmQpOwogfQogCiBib29sIENvZGVCbG9jazo6Y291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGlu
dCBieXRlY29kZU9mZnNldCkKIHsKICAgICBpZiAoIWhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdENhc2VDb3Vu
dCA9IHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2Rl
T2Zmc2V0KTsKLSAgICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlQ291bnQgPj0gT3B0aW9uczo6Y291
bGRUYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQoKTsKLX0KLQotUmVzdWx0UHJvZmlsZSogQ29kZUJs
b2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBlbnN1cmVSZXN1bHRQ
cm9maWxlKGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotfQotCi1SZXN1bHRQcm9maWxlKiBDb2Rl
QmxvY2s6OmVuc3VyZVJlc3VsdFByb2ZpbGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9j
a2VyLCBpbnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSA9
IHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlT2Zmc2V0KTsK
LSAgICBpZiAoIXByb2ZpbGUpIHsKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlcy5hcHBlbmQoUmVz
dWx0UHJvZmlsZShieXRlY29kZU9mZnNldCkpOwotICAgICAgICBwcm9maWxlID0gJm1fcmVzdWx0
UHJvZmlsZXMubGFzdCgpOwotICAgICAgICBBU1NFUlQoJm1fcmVzdWx0UHJvZmlsZXMubGFzdCgp
ID09ICZtX3Jlc3VsdFByb2ZpbGVzW21fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMV0pOwotICAg
ICAgICBpZiAoIW1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCkKLSAgICAg
ICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IHN0ZDo6bWFr
ZV91bmlxdWU8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4oKTsKLSAgICAg
ICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5hZGQoYnl0ZWNvZGVP
ZmZzZXQsIG1fcmVzdWx0UHJvZmlsZXMuc2l6ZSgpIC0gMSk7Ci0gICAgfQotICAgIHJldHVybiBw
cm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogcHJvZmlsZSA9IGFyaXRoUHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBpZiAoIXByb2ZpbGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gcHJvZmlsZS0+dG9va1NwZWNpYWxGYXN0UGF0aCgpOwog
fQogCiAjaWYgRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAog
I2luY2x1ZGUgIkhhbmRsZXJJbmZvLmgiCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNs
dWRlICJKSVRDb2RlLmgiCisjaW5jbHVkZSAiSklUTWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRl
ICJKSVRXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgpAQCAtNzksNiArODAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNz
IEV4ZWNTdGF0ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTTW9kdWxlRW52aXJv
bm1lbnQ7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBQQ1RvQ29kZU9yaWdp
bk1hcDsKQEAgLTg4LDYgKzkwLDggQEAgY2xhc3MgVHlwZUxvY2F0aW9uOwogCiBlbnVtIGNsYXNz
IEFjY2Vzc1R5cGUgOiBpbnQ4X3Q7CiAKK3N0cnVjdCBBcml0aFByb2ZpbGU7CisKIHR5cGVkZWYg
SGFzaE1hcDxDb2RlT3JpZ2luLCBTdHJ1Y3R1cmVTdHViSW5mbyosIENvZGVPcmlnaW5BcHByb3hp
bWF0ZUhhc2g+IFN0dWJJbmZvTWFwOwogCiBlbnVtIFJlb3B0aW1pemF0aW9uTW9kZSB7IERvbnRD
b3VudFJlb3B0aW1pemF0aW9uLCBDb3VudFJlb3B0aW1pemF0aW9uIH07CkBAIC0yNDUsNiArMjQ5
LDcgQEAgcHVibGljOgogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1Yklu
Zm8qIGFkZFN0dWJJbmZvKEFjY2Vzc1R5cGUpOworICAgIEpJVEFkZElDKiBhZGRKSVRBZGRJQygp
OwogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIHN0dWJJbmZvQmVnaW4oKSB7
IHJldHVybiBtX3N0dWJJbmZvcy5iZWdpbigpOyB9CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZv
Pjo6aXRlcmF0b3Igc3R1YkluZm9FbmQoKSB7IHJldHVybiBtX3N0dWJJbmZvcy5lbmQoKTsgfQog
ICAgIApAQCAtNDQwLDEzICs0NDUsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB2YWx1ZSA+
PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpOwogICAgIH0KIAotICAg
IFJlc3VsdFByb2ZpbGUqIGVuc3VyZVJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2RlT2Zmc2V0KTsK
LSAgICBSZXN1bHRQcm9maWxlKiBlbnN1cmVSZXN1bHRQcm9maWxlKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIG51bWJlck9mUmVz
dWx0UHJvZmlsZXMoKSB7IHJldHVybiBtX3Jlc3VsdFByb2ZpbGVzLnNpemUoKTsgfQotICAgIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgaW50IGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHVuc2lnbmVkIHNwZWNp
YWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0
Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7Cisg
ICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNv
ZGVPZmZzZXQpOworICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlRm9yUEMoSW5zdHJ1Y3Rp
b24qKTsKIAogICAgIGJvb2wgY291bGRUYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29kZU9m
ZnNldCk7CiAKQEAgLTk1Nyw3ICs5NTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcFZhbHVl
UHJvZmlsaW5nKFByaW50U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgYm9vbCYgaGFzUHJp
bnRlZFByb2ZpbGluZyk7CiAgICAgdm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0m
LCBjb25zdCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICB2
b2lkIGR1bXBSYXJlQ2FzZVByb2ZpbGUoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKiBuYW1lLCBS
YXJlQ2FzZVByb2ZpbGUqLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKLSAgICB2b2lkIGR1
bXBSZXN1bHRQcm9maWxlKFByaW50U3RyZWFtJiwgUmVzdWx0UHJvZmlsZSosIGJvb2wmIGhhc1By
aW50ZWRQcm9maWxpbmcpOworICAgIHZvaWQgZHVtcEFyaXRoUHJvZmlsZShQcmludFN0cmVhbSYs
IEFyaXRoUHJvZmlsZSosIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogCiAgICAgYm9vbCBz
aG91bGRWaXNpdFN0cm9uZ2x5KCk7CiAgICAgYm9vbCBzaG91bGRKZXR0aXNvbkR1ZVRvV2Vha1Jl
ZmVyZW5jZSgpOwpAQCAtMTAxMyw2ICsxMDEzLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSklU
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpc3RlckF0T2Zmc2V0TGlzdD4gbV9jYWxsZWVTYXZl
UmVnaXN0ZXJzOwogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7CisgICAg
QmFnPEpJVEFkZElDPiBtX2FkZElDczsKICAgICBCYWc8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7
CiAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9jYWxsTGlua0luZm9zOwogICAgIFNlbnRpbmVsTGlu
a2VkTGlzdDxDYWxsTGlua0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4+
IG1faW5jb21pbmdDYWxsczsKQEAgLTEwMjksOSArMTAzMCw2IEBAIHByaXZhdGU6CiAgICAgUmVm
Q291bnRlZEFycmF5PFZhbHVlUHJvZmlsZT4gbV9hcmd1bWVudFZhbHVlUHJvZmlsZXM7CiAgICAg
UmVmQ291bnRlZEFycmF5PFZhbHVlUHJvZmlsZT4gbV92YWx1ZVByb2ZpbGVzOwogICAgIFNlZ21l
bnRlZFZlY3RvcjxSYXJlQ2FzZVByb2ZpbGUsIDg+IG1fcmFyZUNhc2VQcm9maWxlczsKLSAgICBT
ZWdtZW50ZWRWZWN0b3I8UmVzdWx0UHJvZmlsZSwgOD4gbV9yZXN1bHRQcm9maWxlczsKLSAgICB0
eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIHVuc2lnbmVkLCBJbnRIYXNoPHVuc2lnbmVkPiwgV1RG
OjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IEJ5dGVjb2RlT2Zmc2V0
VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVjb2RlT2Zm
c2V0VG9SZXN1bHRQcm9maWxlSW5kZXhNYXA+IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2Zp
bGVJbmRleE1hcDsKICAgICBSZWZDb3VudGVkQXJyYXk8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZT4g
bV9hcnJheUFsbG9jYXRpb25Qcm9maWxlczsKICAgICBBcnJheVByb2ZpbGVWZWN0b3IgbV9hcnJh
eVByb2ZpbGVzOwogICAgIFJlZkNvdW50ZWRBcnJheTxPYmplY3RBbGxvY2F0aW9uUHJvZmlsZT4g
bV9vYmplY3RBbGxvY2F0aW9uUHJvZmlsZXM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9m
aWxlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpAQCAtNjUsOCArNjYsOCBAQCB2b2lkIE1ldGhvZE9m
R2V0dGluZ0FWYWx1ZVByb2ZpbGU6OmVtaXRSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
ICAgIAotICAgIGNhc2UgUmVzdWx0UHJvZmlsZVJlYWR5OiB7Ci0gICAgICAgIHUucmVzdWx0UHJv
ZmlsZS0+ZW1pdERldGVjdE51bWVyaWNuZXNzKGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0
ZXJzKTsKKyAgICBjYXNlIEFyaXRoUHJvZmlsZVJlYWR5OiB7CisgICAgICAgIHUuYXJpdGhQcm9m
aWxlLT5lbWl0T2JzZXJ2ZVJlc3VsdChqaXQsIHJlZ3MsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUuaAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDAs
NyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIENv
ZGVCbG9jazsKIGNsYXNzIExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5Owotc3RydWN0IFJlc3Vs
dFByb2ZpbGU7CitzdHJ1Y3QgQXJpdGhQcm9maWxlOwogc3RydWN0IFZhbHVlUHJvZmlsZTsKIAog
Y2xhc3MgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSB7CkBAIC01OSwxMSArNTksMTEgQEAg
cHVibGljOgogICAgICAgICAgICAgbV9raW5kID0gTm9uZTsKICAgICB9CiAgICAgCi0gICAgTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZShSZXN1bHRQcm9maWxlKiBwcm9maWxlKQorICAgIE1l
dGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoQXJpdGhQcm9maWxlKiBwcm9maWxlKQogICAgIHsK
ICAgICAgICAgaWYgKHByb2ZpbGUpIHsKLSAgICAgICAgICAgIG1fa2luZCA9IFJlc3VsdFByb2Zp
bGVSZWFkeTsKLSAgICAgICAgICAgIHUucmVzdWx0UHJvZmlsZSA9IHByb2ZpbGU7CisgICAgICAg
ICAgICBtX2tpbmQgPSBBcml0aFByb2ZpbGVSZWFkeTsKKyAgICAgICAgICAgIHUuYXJpdGhQcm9m
aWxlID0gcHJvZmlsZTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2tpbmQgPSBOb25l
OwogICAgIH0KQEAgLTc5LDE0ICs3OSwxNCBAQCBwcml2YXRlOgogICAgIGVudW0gS2luZCB7CiAg
ICAgICAgIE5vbmUsCiAgICAgICAgIFJlYWR5LAotICAgICAgICBSZXN1bHRQcm9maWxlUmVhZHks
CisgICAgICAgIEFyaXRoUHJvZmlsZVJlYWR5LAogICAgICAgICBMYXp5T3BlcmFuZAogICAgIH07
CiAgICAgCiAgICAgS2luZCBtX2tpbmQ7CiAgICAgdW5pb24gewogICAgICAgICBWYWx1ZVByb2Zp
bGUqIHByb2ZpbGU7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGU7CisgICAg
ICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNzAgKzMxLDQg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBFTkFCTEUoSklUKQotdm9pZCBSZXN1bHRQcm9m
aWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdz
IHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKLXsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
aXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHJlZ3MsIG1vZGUpOwotICAgIENDYWxsSGVscGVy
czo6SnVtcCBub3REb3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJl
Z3MsIG1vZGUpOwotICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4K
LSAgICBlbWl0U2V0RG91YmxlKGppdCk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBq
aXQuanVtcCgpOwotICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOwotICAgIGVtaXRTZXROb25OdW1i
ZXIoaml0KTsKLSAgICBkb25lLmxpbmsoJmppdCk7Ci0gICAgaXNJbnQzMi5saW5rKCZqaXQpOwot
fQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQp
Ci17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmls
ZTo6SW50MzJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQ
cm9maWxlOjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSks
IENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKLX0KLQot
dm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYgaml0KQot
ewotICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6
Ok5vbk51bWJlciksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdz
KCkpKTsKLX0KLSNlbmRpZiAvLyBFTkFCTEUoSklUKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKLQot
bmFtZXNwYWNlIFdURiB7Ci0gICAgCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgUmVzdWx0UHJvZmlsZSYgcHJvZmlsZSkK
LXsKLSAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKLQotICAgIGlmICghcHJvZmlsZS5k
aWRPYnNlcnZlTm9uSW50MzIoKSkgewotICAgICAgICBvdXQucHJpbnQoIkludDMyIik7Ci0gICAg
ICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAocHJvZmlsZS5k
aWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJh
dG9yLCAiTmVnWmVyb0RvdWJsZSIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkp
IHsKLSAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIpOwotICAgICAgICAg
ICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVOb25OdW1iZXIoKSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsK
LSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAgfQotICAgICAgICBpZiAocHJv
ZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQo
IkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICAgICAg
fQotICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAg
ICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKLSAgICAgICAgICAgIHNlcGFyYXRv
ciA9ICJ8IjsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAocHJvZmlsZS5zcGVjaWFsRmFzdFBh
dGhDb3VudCgpKSB7Ci0gICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFzdCBwYXRoOiAiKTsK
LSAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSk7Ci0gICAg
fQotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9WYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjA5LDg4ICsyMDksNiBAQCBpbmxpbmUgaW50IGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zm
CiAgICAgcmV0dXJuIHJhcmVDYXNlUHJvZmlsZS0+bV9ieXRlY29kZU9mZnNldDsKIH0KIAotc3Ry
dWN0IFJlc3VsdFByb2ZpbGUgewotcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgaW50IG51bWJl
ck9mRmxhZ0JpdHMgPSA1OwotCi1wdWJsaWM6Ci0gICAgUmVzdWx0UHJvZmlsZShpbnQgYnl0ZWNv
ZGVPZmZzZXQpCi0gICAgICAgIDogbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzKGJ5dGVjb2RlT2Zm
c2V0IDw8IG51bWJlck9mRmxhZ0JpdHMpCi0gICAgewotICAgICAgICBBU1NFUlQoKChieXRlY29k
ZU9mZnNldCA8PCBudW1iZXJPZkZsYWdCaXRzKSA+PiBudW1iZXJPZkZsYWdCaXRzKSA9PSBieXRl
Y29kZU9mZnNldCk7Ci0gICAgfQotCi0gICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgewotICAgICAg
ICBOb25OZWdaZXJvRG91YmxlID0gMSA8PCAwLAotICAgICAgICBOZWdaZXJvRG91YmxlICAgID0g
MSA8PCAxLAotICAgICAgICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAotICAgICAgICBJbnQz
Mk92ZXJmbG93ICAgID0gMSA8PCAzLAotICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0
LAotICAgIH07Ci0KLSAgICBpbnQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgPj4gbnVtYmVyT2ZGbGFnQml0czsgfQotICAgIHVuc2lnbmVk
IHNwZWNpYWxGYXN0UGF0aENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhD
b3VudDsgfQotCi0gICAgYm9vbCBkaWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQot
ICAgIGJvb2wgZGlkT2JzZXJ2ZURvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVn
WmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVn
WmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0K
LSAgICBib29sIGRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0
cyhOZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTm9uTnVtYmVyKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMy
T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9Ci0gICAg
Ym9vbCBkaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50
NTJPdmVyZmxvdyk7IH0KLQotICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkg
eyBzZXRCaXQoTm9uTmVnWmVyb0RvdWJsZSk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVy
b0RvdWJsZSgpIHsgc2V0Qml0KE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgdm9pZCBzZXRPYnNlcnZl
ZE5vbk51bWJlcigpIHsgc2V0Qml0KE5vbk51bWJlcik7IH0KLSAgICB2b2lkIHNldE9ic2VydmVk
SW50MzJPdmVyZmxvdygpIHsgc2V0Qml0KEludDMyT3ZlcmZsb3cpOyB9Ci0gICAgdm9pZCBzZXRP
YnNlcnZlZEludDUyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAg
dm9pZCogYWRkcmVzc09mRmxhZ3MoKSB7IHJldHVybiAmbV9ieXRlY29kZU9mZnNldEFuZEZsYWdz
OyB9Ci0gICAgdm9pZCogYWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQoKSB7IHJldHVybiAm
bV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQotICAgIAotICAgIHZvaWQgZGV0ZWN0TnVtZXJpY25l
c3MoSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7Ci0gICAg
ICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0gSW50MzJPdmVyZmxvdyB8IEludDUy
T3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0g
Tm9uTnVtYmVyOwotICAgIH0KLQotI2lmIEVOQUJMRShKSVQpICAgIAotICAgIC8vIFNldHMgKElu
dDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9E
b3VibGUpIGlmIGl0IHNlZXMgYQotICAgIC8vIGRvdWJsZS4gU2V0cyBOb25OdW1iZXIgaWYgaXQg
c2VlcyBhIG5vbi1udW1iZXIuCi0gICAgdm9pZCBlbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0NhbGxI
ZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KTsKLSAgICAKLSAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5v
bk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKS4KLSAgICB2b2lkIGVtaXRTZXREb3VibGUo
Q0NhbGxIZWxwZXJzJik7Ci0gICAgCi0gICAgLy8gU2V0cyBOb25OdW1iZXIuCi0gICAgdm9pZCBl
bWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYpOwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCi0K
LXByaXZhdGU6Ci0gICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9Ci0gICAgdm9pZCBzZXRCaXQoaW50IG1hc2sp
IHsgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IG1hc2s7IH0KLQotICAgIGludCBtX2J5dGVj
b2RlT2Zmc2V0QW5kRmxhZ3M7Ci0gICAgdW5zaWduZWQgbV9zcGVjaWFsRmFzdFBhdGhDb3VudCB7
IDAgfTsKLX07Ci0KLWlubGluZSBpbnQgZ2V0UmVzdWx0UHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KFJl
c3VsdFByb2ZpbGUqIHByb2ZpbGUpCi17Ci0gICAgcmV0dXJuIHByb2ZpbGUtPmJ5dGVjb2RlT2Zm
c2V0KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgY29uc3QgSlNDOjpSZXN1bHRQcm9maWxlJik7
Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYgLy8gVmFsdWVQcm9maWxlX2gKLQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVH
ZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJ1aWx0
aW5FeGVjdXRhYmxlcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5oIgog
I2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC0xNjAwLDcgKzE2MDEsNyBAQCBSZWdpc3RlcklE
KiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEJpbmFyCiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3Bf
Yml0b3IgfHwgb3Bjb2RlSUQgPT0gb3BfYml0YW5kIHx8IG9wY29kZUlEID09IG9wX2JpdHhvciB8
fAogICAgICAgICBvcGNvZGVJRCA9PSBvcF9hZGQgfHwgb3Bjb2RlSUQgPT0gb3BfbXVsIHx8IG9w
Y29kZUlEID09IG9wX3N1YiB8fCBvcGNvZGVJRCA9PSBvcF9kaXYpCi0gICAgICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZCh0eXBlcy50b0ludCgpKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKEFyaXRoUHJvZmlsZSh0eXBlcy5maXJzdCgpLCB0eXBlcy5zZWNvbmQoKSkuYml0cygpKTsK
IAogICAgIHJldHVybiBkc3Q7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdGhQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJhc2lj
QmxvY2tMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkBAIC05MTQsMjkg
KzkxNSwyOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKICAgICAgICAg
ewotICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9pbmxpbmVTdGFja1Rv
cC0+bV9wcm9maWxlZEJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgUmVzdWx0UHJvZmlsZSog
cmVzdWx0UHJvZmlsZSA9IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+cmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgbV9jdXJyZW50SW5kZXgpOwotICAgICAg
ICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsKKyAgICAgICAgICAgIEFyaXRoUHJvZmlsZSogYXJp
dGhQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5hcml0aFByb2Zp
bGVGb3JCeXRlY29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAgICAgICAgICBpZiAoYXJp
dGhQcm9maWxlKSB7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CiAgICAg
ICAgICAgICAgICAgY2FzZSBBcml0aEFkZDoKICAgICAgICAgICAgICAgICBjYXNlIEFyaXRoU3Vi
OgogICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAgICAg
IGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOwotICAgICAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQor
ICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVy
KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZl
Tm9uTnVtYmVyUmVzdWx0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgY2FzZSBBcml0aE11bDogewotICAgICAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3co
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJm
bG93SW50NTIpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgICAg
IGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVT
dGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZs
b3cpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3Zl
cmZsb3dJbnQzMkluQmFzZWxpbmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJv
ZmlsZS0+ZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBOZWdhdGl2ZVplcm8pKQorICAg
ICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJs
ZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAg
ICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigp
KQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVt
YmVyKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlI
YXZlTm9uTnVtYmVyUmVzdWx0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJl
dmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTQ4LDkgKzE1NDgsOCBAQCBNZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlIEdyYXBoOjptZXRoCiAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+
dmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVj
b2RlSW5kZXgpOwogICAgICAgICAKICAgICAgICAgewotICAgICAgICAgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKICAgICAgICAgICAgIGlmIChw
cm9maWxlZEJsb2NrLT5oYXNCYXNlbGluZUpJVFByb2ZpbGluZygpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKFJlc3VsdFByb2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPnJlc3VsdFByb2Zp
bGVGb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29k
ZUluZGV4KSkKKyAgICAgICAgICAgICAgICBpZiAoQXJpdGhQcm9maWxlKiByZXN1bHQgPSBwcm9m
aWxlZEJsb2NrLT5hcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2Vt
YW50aWMuYnl0ZWNvZGVJbmRleCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA0
LDcgKzYwNCw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmV4Y2VwdGlvbkNoZWNrKCkKICAgICBIYW5k
bGVySW5mbyogZXhjZXB0aW9uSGFuZGxlcjsKICAgICBib29sIHdpbGxDYXRjaEV4Y2VwdGlvbiA9
IG1fZ3JhcGgud2lsbENhdGNoRXhjZXB0aW9uSW5NYWNoaW5lRnJhbWUobV9zcGVjdWxhdGl2ZS0+
bV9jdXJyZW50Tm9kZS0+b3JpZ2luLmZvckV4aXQsIG9wQ2F0Y2hPcmlnaW4sIGV4Y2VwdGlvbkhh
bmRsZXIpOyAKICAgICBpZiAod2lsbENhdGNoRXhjZXB0aW9uKSB7Ci0gICAgICAgIHVuc2lnbmVk
IHN0cmVhbUluZGV4ID0gbV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCAhPSBV
SU5UX01BWCA/IG1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggOiBtX3NwZWN1
bGF0aXZlLT5tX3N0cmVhbS0+c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzdHJlYW1JbmRleCA9
IG1fc3BlY3VsYXRpdmUtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPyAqbV9zcGVjdWxhdGl2ZS0+
bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA6IG1fc3BlY3VsYXRpdmUtPm1fc3RyZWFtLT5zaXplKCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGhhZEV4Y2VwdGlvbiA9IGVtaXROb25QYXRj
aGFibGVFeGNlcHRpb25DaGVjaygpOwogICAgICAgICAvLyBXZSBhc3N1bWUgaGVyZSB0aGF0IHRo
aXMgaXMgY2FsbGVkIGFmdGVyIGNhbGxPcGVhcnRpb24oKS9hcHBlbmRDYWxsKCkgaXMgY2FsbGVk
LgogICAgICAgICBhcHBlbmRFeGNlcHRpb25IYW5kbGluZ09TUkV4aXQoRXhjZXB0aW9uQ2hlY2ss
IHN0cmVhbUluZGV4LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyLCBtX2ppdENvZGUt
PmNvbW1vbi5sYXN0Q2FsbFNpdGUoKSwgaGFkRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIw
MzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+
bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9IG1fc3RyZWFtSW5kZXg7CiAgICAgICAgIGppdC0+bV9v
cmlnaW4gPSBtX29yaWdpbjsKICAgICAgICAgZ2VuZXJhdGVJbnRlcm5hbChqaXQpOwotICAgICAg
ICBqaXQtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgaml0LT5t
X291dE9mTGluZVN0cmVhbUluZGV4ID0gTnVsbG9wdDsKICAgICAgICAgaWYgKCFBU1NFUlRfRElT
QUJMRUQpCiAgICAgICAgICAgICBqaXQtPm1faml0LmFib3J0V2l0aFJlYXNvbihERkdTbG93UGF0
aEdlbmVyYXRvckZlbGxUaHJvdWdoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJKSVRCaXRYb3JHZW5lcmF0b3IuaCIK
ICNpbmNsdWRlICJKSVREaXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRMZWZ0U2hpZnRHZW5l
cmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRNdWxHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJKSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklU
U3ViR2VuZXJhdG9yLmgiCkBAIC01Niw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiU2NvcGVkQXJndW1l
bnRzLmgiCiAjaW5jbHVkZSAiU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAi
V3JpdGVCYXJyaWVyQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTM2
Miw3ICszNjQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvCiAK
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmFkZFNsb3dQYXRoR2VuZXJhdG9yKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBsYW1iZGEpCiB7Ci0gICAgbV9zbG93UGF0aExhbWJkYXMuYXBwZW5kKHN0ZDo6bWFr
ZV9wYWlyKGxhbWJkYSwgbV9jdXJyZW50Tm9kZSkpOworICAgIG1fc2xvd1BhdGhMYW1iZGFzLmFw
cGVuZChTbG93UGF0aExhbWJkYXsgbGFtYmRhLCBtX2N1cnJlbnROb2RlLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obV9zdHJlYW0tPnNpemUoKSkgfSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnJ1blNsb3dQYXRoR2VuZXJhdG9ycyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImIHBjVG9Db2Rl
T3JpZ2luTWFwQnVpbGRlcikKQEAgLTM3MSwxMSArMzczLDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG8KICAgICAgICAgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVy
LmFwcGVuZEl0ZW0obV9qaXQubGFiZWwoKSwgc2xvd1BhdGhHZW5lcmF0b3ItPm9yaWdpbigpLnNl
bWFudGljKTsKICAgICAgICAgc2xvd1BhdGhHZW5lcmF0b3ItPmdlbmVyYXRlKHRoaXMpOwogICAg
IH0KLSAgICBmb3IgKGF1dG8mIGdlbmVyYXRvclBhaXIgOiBtX3Nsb3dQYXRoTGFtYmRhcykgewot
ICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSA9IGdlbmVyYXRvclBhaXIuc2Vjb25kOworICAgIGZv
ciAoYXV0byYgc2xvd1BhdGhMYW1iZGEgOiBtX3Nsb3dQYXRoTGFtYmRhcykgeworICAgICAgICBO
b2RlKiBjdXJyZW50Tm9kZSA9IHNsb3dQYXRoTGFtYmRhLmN1cnJlbnROb2RlOwogICAgICAgICBt
X2N1cnJlbnROb2RlID0gY3VycmVudE5vZGU7CisgICAgICAgIG1fb3V0T2ZMaW5lU3RyZWFtSW5k
ZXggPSBzbG93UGF0aExhbWJkYS5zdHJlYW1JbmRleDsKICAgICAgICAgcGNUb0NvZGVPcmlnaW5N
YXBCdWlsZGVyLmFwcGVuZEl0ZW0obV9qaXQubGFiZWwoKSwgY3VycmVudE5vZGUtPm9yaWdpbi5z
ZW1hbnRpYyk7Ci0gICAgICAgIGdlbmVyYXRvclBhaXIuZmlyc3QoKTsKKyAgICAgICAgc2xvd1Bh
dGhMYW1iZGEuZ2VuZXJhdG9yKCk7CisgICAgICAgIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBO
dWxsb3B0OwogICAgIH0KIH0KIApAQCAtMzM3OSwzMSArMzM4Myw2NCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlVmFsdWVBZGQoTm9kCiAgICAgICAgIHJpZ2h0UmVncyA9IHJpZ2h0LT5q
c1ZhbHVlUmVncygpOwogICAgIH0KIAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAg
ICAgbGVmdEZQUiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2ppdC5jb2Rl
QmxvY2soKS0+YWRkSklUQWRkSUMoKTsKKyAgICBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPiBh
ZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+OjpjcmVhdGUo
KTsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG1faml0LmdyYXBoKCkuYmFzZWxp
bmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+YXJpdGhQcm9maWxlRm9yQnl0
ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgIGFk
ZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVy
YW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBsZWZ0RlBSLCByaWdodEZQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKKworICAgIGJvb2wgZ2VuZXJh
dGVkSW5saW5lID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKG1faml0LCAqYWRkSUNHZW5lcmF0aW9u
U3RhdGUpOworCisgICAgaWYgKGdlbmVyYXRlZElubGluZSkgeworICAgICAgICBBU1NFUlQoIWFk
ZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aEp1bXBzLmVtcHR5KCkpOworCisgICAgICAgIFZl
Y3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBzYXZlUGxhbnM7CisgICAgICAgIHNpbGVudFNw
aWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgc2F2ZVBsYW5zLCByZXN1bHRSZWdzKTsKKworICAg
ICAgICBhdXRvIGRvbmUgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKFs9LCBzYXZlUGxhbnMgPSBXVEZNb3ZlKHNhdmVQbGFucyldICgpIHsKKyAgICAgICAg
ICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aEp1bXBzLmxpbmsoJm1faml0KTsKKyAg
ICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aFN0YXJ0ID0gbV9qaXQubGFi
ZWwoKTsKKworICAgICAgICAgICAgc2lsZW50U3BpbGwoc2F2ZVBsYW5zKTsKKworICAgICAgICAg
ICAgYXV0byBpbm5lckxlZnRSZWdzID0gbGVmdFJlZ3M7CisgICAgICAgICAgICBhdXRvIGlubmVy
UmlnaHRSZWdzID0gcmlnaHRSZWdzOworICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29u
c3QoKSkgeworICAgICAgICAgICAgICAgIGlubmVyTGVmdFJlZ3MgPSByZXN1bHRSZWdzOworICAg
ICAgICAgICAgICAgIG1faml0Lm1vdmVWYWx1ZShsZWZ0Q2hpbGQtPmFzSlNWYWx1ZSgpLCBpbm5l
ckxlZnRSZWdzKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3Qo
KSkgeworICAgICAgICAgICAgICAgIGlubmVyUmlnaHRSZWdzID0gcmVzdWx0UmVnczsKKyAgICAg
ICAgICAgICAgICBtX2ppdC5tb3ZlVmFsdWUocmlnaHRDaGlsZC0+YXNKU1ZhbHVlKCksIGlubmVy
UmlnaHRSZWdzKTsKKyAgICAgICAgICAgIH0KIAotICAgIEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQ
YXRoKCkpOwotICAgIGdlbi5lbmRKdW1wTGlzdCgpLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAg
ICAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLT5zaG91bGRTbG93UGF0aFJlcGF0Y2gp
CisgICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoQ2FsbCA9IGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgcmVzdWx0UmVncywgaW5uZXJM
ZWZ0UmVncywgaW5uZXJSaWdodFJlZ3MsIGFkZElDKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgaW5uZXJMZWZ0UmVncywgaW5uZXJS
aWdodFJlZ3MpOwogCi0gICAgZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5saW5rKCZtX2ppdCk7Cisg
ICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAgICAgICBtX2ppdC5leGNl
cHRpb25DaGVjaygpOworICAgICAgICAgICAgbV9qaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmbV9q
aXQpOwogCi0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAgICAg
ICAgICBtX2ppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKCphZGRJQ0dlbmVyYXRpb25T
dGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkgeworICAgICAgICAgICAg
bGVmdCA9IEpTVmFsdWVPcGVyYW5kKHRoaXMsIGxlZnRDaGlsZCk7CisgICAgICAgICAgICBsZWZ0
UmVncyA9IGxlZnQtPmpzVmFsdWVSZWdzKCk7CisgICAgICAgIH0gZWxzZSBpZiAocmlnaHRPcGVy
YW5kLmlzQ29uc3QoKSkgeworICAgICAgICAgICAgcmlnaHQgPSBKU1ZhbHVlT3BlcmFuZCh0aGlz
LCByaWdodENoaWxkKTsKKyAgICAgICAgICAgIHJpZ2h0UmVncyA9IHJpZ2h0LT5qc1ZhbHVlUmVn
cygpOworICAgICAgICB9CiAKLSAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7Ci0gICAg
ICAgIGxlZnRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRD
aGlsZC0+YXNKU1ZhbHVlKCksIGxlZnRSZWdzKTsKLSAgICB9IGVsc2UgaWYgKHJpZ2h0T3BlcmFu
ZC5pc0NvbnN0KCkpIHsKLSAgICAgICAgcmlnaHRSZWdzID0gcmVzdWx0UmVnczsKLSAgICAgICAg
bV9qaXQubW92ZVZhbHVlKHJpZ2h0Q2hpbGQtPmFzSlNWYWx1ZSgpLCByaWdodFJlZ3MpOworICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlQWRkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICAgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKICAgICB9CiAKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZh
bHVlQWRkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzKTsKLQotICAgIHNpbGVudEZp
bGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7Ci0gICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsK
LQotICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxpbmsoJm1faml0KTsKICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgIHJldHVybjsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDIwMzQ2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzg4LDEzICszODgsMTUgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc2lsZW50
U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGRvU3BpbGwsIHBsYW5zLCBJbnZhbGlkR1BSUmVnLCBJbnZh
bGlkR1BSUmVnLCBleGNsdWRlKTsKICAgICB9Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxs
UmVnaXN0ZXJzSW1wbChib29sIGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgSlNWYWx1
ZVJlZ3MgZXhjbHVkZSkKICAgICB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgc2ls
ZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGRvU3BpbGwsIHBsYW5zLCBleGNsdWRlLnRhZ0dQUigp
LCBleGNsdWRlLnBheWxvYWRHUFIoKSk7Ci0gICAgfQorI2Vsc2UKKyAgICAgICAgc2lsZW50U3Bp
bGxBbGxSZWdpc3RlcnNJbXBsKGRvU3BpbGwsIHBsYW5zLCBleGNsdWRlLmdwcigpKTsKICNlbmRp
ZgorICAgIH0KICAgICAKICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKEdQUlJlZyBl
eGNsdWRlLCBHUFJSZWcgZXhjbHVkZTIgPSBJbnZhbGlkR1BSUmVnLCBGUFJSZWcgZnByRXhjbHVk
ZSA9IEludmFsaWRGUFJSZWcpCiAgICAgewpAQCAtMTI4NSw2ICsxMjg3LDEzIEBAIHB1YmxpYzoK
IAogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKworICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSmFpYyBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3Vs
dCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgSklUQWRkSUMqIGFkZElDKQor
ICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3By
KCksIGFyZzIuZ3ByKCksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQuZ3ByKCkpOworICAgIH0KKwogICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSSBvcGVy
YXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZCkKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwpAQCAtMTcwMiw2ICsxNzEx
LDEyIEBAIHB1YmxpYzoKICAgICB9CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCisgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9w
ZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVn
cyBhcmcyLCBKSVRBZGRJQyogYWRkSUMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCks
IGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBUcnVzdGVk
SW1tUHRyKGFkZElDKSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJh
dGlvbiwgcmVzdWx0LnBheWxvYWRHUFIoKSwgcmVzdWx0LnRhZ0dQUigpKTsKKyAgICB9CisKICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkkgb3Bl
cmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFy
ZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5
bG9hZCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKICAgICB7CiAgICAgICAgIG1faml0LnNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwg
YXJnMVRhZywgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW1QdHIodWlkKSk7CkBAIC0y
ODMxLDkgKzI4NDYsMTQgQEAgcHVibGljOgogICAgIE1pbmlmaWVkR3JhcGgqIG1fbWluaWZpZWRH
cmFwaDsKICAgICAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9y
PiwgOD4gbV9zbG93UGF0aEdlbmVyYXRvcnM7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4sIE5vZGUqPiwgOD4gbV9zbG93UGF0aExhbWJkYXM7CisgICAgc3RydWN0
IFNsb3dQYXRoTGFtYmRhIHsKKyAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGdlbmVyYXRv
cjsKKyAgICAgICAgTm9kZSogY3VycmVudE5vZGU7CisgICAgICAgIHVuc2lnbmVkIHN0cmVhbUlu
ZGV4OworICAgIH07CisgICAgVmVjdG9yPFNsb3dQYXRoTGFtYmRhPiBtX3Nsb3dQYXRoTGFtYmRh
czsKICAgICBWZWN0b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbj4gbV9wbGFuczsKLSAgICB1bnNp
Z25lZCBtX291dE9mTGluZVN0cmVhbUluZGV4IHsgVUlOVF9NQVggfTsKKyAgICBPcHRpb25hbDx1
bnNpZ25lZD4gbV9vdXRPZkxpbmVTdHJlYW1JbmRleDsKIH07CiAKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjAzNDYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiSklURGl2R2VuZXJhdG9yLmgi
CiAjaW5jbHVkZSAiSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRMZWZ0
U2hpZnRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRN
dWxHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCkBAIC0xNTM4LDcgKzE1MzksNzIgQEAgcHJpdmF0ZToK
ICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgpCiAgICAgewotICAgICAgICBlbWl0Qmlu
YXJ5U25pcHBldDxKSVRBZGRHZW5lcmF0b3I+KG9wZXJhdGlvblZhbHVlQWRkKTsKKyAgICAgICAg
Tm9kZSogbm9kZSA9IG1fbm9kZTsKKyAgICAgICAgCisgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
SlNWYWx1ZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pTVmFs
dWUobm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5k
KG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAg
U25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIo
KSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICBQYXRjaHBvaW50VmFsdWUq
IHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKKyAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kU29tZVJlZ2lzdGVyKGxlZnQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRT
b21lUmVnaXN0ZXIocmlnaHQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNr
LCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAg
cGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OmxhdGVSZWcoR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50
RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQorICAgICAgICAgICAgcHJlcGFyZVBh
dGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOworICAgICAgICBwYXRjaHBvaW50LT5u
dW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSAxOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0
Y2hSZWdpc3RlcnMgPSAyOworICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0
OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0
bFN0YXRlOworICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBb
PV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgeworICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKKworICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0PiBleGNlcHRpb25zID0KKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxl
LT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOworCisgICAgICAgICAg
ICAgICAgSklUQWRkSUMqIGFkZElDID0gaml0LmNvZGVCbG9jaygpLT5hZGRKSVRBZGRJQygpOwor
ICAgICAgICAgICAgICAgIEJveDxNYXRoSUNHZW5lcmF0aW9uU3RhdGU+IGFkZElDR2VuZXJhdGlv
blN0YXRlID0gQm94PE1hdGhJQ0dlbmVyYXRpb25TdGF0ZT46OmNyZWF0ZSgpOworICAgICAgICAg
ICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gc3RhdGUtPmdyYXBoLmJhc2VsaW5l
Q29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmFyaXRoUHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKKyAgICAgICAg
ICAgICAgICBhZGRJQy0+bV9nZW5lcmF0b3IgPSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQs
IHJpZ2h0T3BlcmFuZCwgSlNWYWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwKKyAgICAgICAgICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgSlNWYWx1ZVJlZ3MocGFyYW1z
WzJdLmdwcigpKSwgcGFyYW1zLmZwU2NyYXRjaCgwKSwKKyAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLmZwU2NyYXRjaCgxKSwgcGFyYW1zLmdwU2NyYXRjaCgwKSwgSW52YWxpZEZQUlJlZywgYXJp
dGhQcm9maWxlKTsKKworICAgICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lID0gYWRk
SUMtPmdlbmVyYXRlSW5saW5lKGppdCwgKmFkZElDR2VuZXJhdGlvblN0YXRlKTsKKworICAgICAg
ICAgICAgICAgIGlmIChnZW5lcmF0ZWRJbmxpbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKCFhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhKdW1wcy5lbXB0eSgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgYXV0byBkb25lID0gaml0LmxhYmVsKCk7CisgICAgICAgICAgICAgICAg
ICAgIHBhcmFtcy5hZGRMYXRlUGF0aChbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3Jh
dGNoKGppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+
c2xvd1BhdGhKdW1wcy5saW5rKCZqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkSUNH
ZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoU3RhcnQgPSBqaXQubGFiZWwoKTsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGFkZElDR2VuZXJhdGlvblN0YXRlLT5zaG91bGRTbG93UGF0aFJl
cGF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbG93UGF0aENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24oKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0
LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsIGV4Y2VwdGlvbnMuZ2V0KCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIHBhcmFtc1swXS5n
cHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cihhZGRJQykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDR2Vu
ZXJhdGlvblN0YXRlLT5zbG93UGF0aENhbGwgPSBjYWxsLmNhbGwoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xvd1BhdGhD
YWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKCpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNlbWFudGljLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBvcGVyYXRpb25WYWx1ZUFkZCwgcGFyYW1zWzBd
LmdwcigpLCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoQ2FsbCA9IGNhbGwu
Y2FsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKCphZGRJQ0dl
bmVyYXRpb25TdGF0ZSwgbGlua0J1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICpz
dGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNl
bWFudGljLCBleGNlcHRpb25zLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0
aW9uVmFsdWVBZGQsIHBhcmFtc1swXS5ncHIoKSwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0u
Z3ByKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNl
dEpTVmFsdWUocGF0Y2hwb2ludCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZVN0ckNh
dCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlz
aW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgyNiw2ICs4MjYsMTggQEAgcHVibGljOgogICAgICAgICBhZGRD
YWxsQXJndW1lbnQoYXJnNik7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczLCBHUFJSZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1LCBUcnVzdGVkSW1tUHRyIGFyZzYp
CisgICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFy
Z3VtZW50KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3Vt
ZW50KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgICAgIGFkZENh
bGxBcmd1bWVudChhcmczKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzQpOworICAgICAg
ICBhZGRDYWxsQXJndW1lbnQoYXJnNSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsK
KyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBH
UFJSZWcgYXJnNSwgR1BSUmVnIGFyZzYsIFRydXN0ZWRJbW1QdHIgYXJnNykKICAgICB7CiAgICAg
ICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtMTU5NCw2ICsxNjA2LDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwog
ICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIFRy
dXN0ZWRJbW1QdHIgYXJnNSwgVHJ1c3RlZEltbVB0ciBhcmc2KQorICAgIHsKKyAgICAgICAgcG9r
ZShhcmc2LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDIpOworICAgICAgICBwb2tlKGFyZzUsIFBP
S0VfQVJHVU1FTlRfT0ZGU0VUICsgMSk7CisgICAgICAgIHBva2UoYXJnNCwgUE9LRV9BUkdVTUVO
VF9PRkZTRVQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJn
MiwgYXJnMyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJS
ZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1KQogICAgIHsKICAgICAgICAgcG9rZShhcmc1LCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIDEpOwpAQCAtMjA5OSw2ICsyMTE5LDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmcz
LCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BS
PEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyPihhcmcxLCBhcmcy
KTsKKyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBt
b3ZlKGFyZzQsIEdQUkluZm86OmFyZ3VtZW50R1BSNCk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAg
QUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJn
MSwgVHJ1c3RlZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQ
UlJlZyBhcmc1KQogICAgIHsKICAgICAgICAgc2V0dXBUaHJlZVN0dWJBcmdzR1BSPEdQUkluZm86
OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFI0LCBHUFJJbmZvOjphcmd1bWVudEdQ
UjU+KGFyZzEsIGFyZzQsIGFyZzUpOwpAQCAtMjIwNyw2ICsyMjM1LDE1IEBAIHB1YmxpYzoKICAg
ICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShK
U1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQorICAgIHsKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJn
Mi5ncHIoKSk7CisjZWxzZQorICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIu
cGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdz
IGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAg
LTIyMTUsNiArMjI1MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdH
UFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOwogI2VuZGlmCiAg
ICAgfQorCisgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1ZVJlZ3Mg
YXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczLCBUcnVzdGVkSW1tUHRy
IGFyZzQpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczLCBhcmc0KTsKKyNlbHNl
CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFy
ZzIudGFnR1BSKCksIGFyZzMsIGFyZzQpOworI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQg
c2V0dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0MywxMCBAQAogI2luY2x1ZGUgIklu
dGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklURGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRl
ICJKU0ludGVyZmFjZUpJVC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBDVG9D
b2RlT3JpZ2luTWFwLmgiCi0jaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlVudXNl
ZFBvaW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MzUsNyArNDM1LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgY29tcGlsZUdldEJ5SWRIb3RQYXRoKGNvbnN0IElkZW50
aWZpZXIqKTsKIAogICAgICAgICAvLyBBcml0aG1ldGljIG9wY29kZSBoZWxwZXJzCi0gICAgICAg
IHZvaWQgZW1pdFN1YjMyQ29uc3RhbnQoaW50IGRzdCwgaW50IG9wLCBpbnQzMl90IGNvbnN0YW50
LCBSZXN1bHRUeXBlIG9wVHlwZSk7CiAgICAgICAgIHZvaWQgZW1pdEJpbmFyeURvdWJsZU9wKE9w
Y29kZUlELCBpbnQgZHN0LCBpbnQgb3AxLCBpbnQgb3AyLCBPcGVyYW5kVHlwZXMsIEp1bXBMaXN0
JiBub3RJbnQzMk9wMSwgSnVtcExpc3QmIG5vdEludDMyT3AyLCBib29sIG9wMUlzSW5SZWdpc3Rl
cnMgPSB0cnVlLCBib29sIG9wMklzSW5SZWdpc3RlcnMgPSB0cnVlKTsKIAogI2Vsc2UgLy8gVVNF
KEpTVkFMVUUzMl82NCkKQEAgLTc2Myw3ICs3NjIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5k
aWYKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSkksIGludCwgR1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBH
UFJSZWcsIEdQUlJlZyk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oSl9KSVRPcGVyYXRpb25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1
ZVJlZ3MsIFJlc3VsdFByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVn
cywgSlNWYWx1ZVJlZ3MsIEFyaXRoUHJvZmlsZSopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgSlNWYWx1ZVJlZ3MsIEpTVmFs
dWVSZWdzLCBKU1ZhbHVlUmVncyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJwSmFpYywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVS
ZWdzLCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKTsKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljLCBK
U1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKSVRBZGRJQyopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFw
LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJS
ZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7
CkBAIC05NTMsNiArOTU1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUENUb0NvZGVP
cmlnaW5NYXBCdWlsZGVyIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyOwogCisgICAgICAgIEhh
c2hNYXA8SW5zdHJ1Y3Rpb24qLCBKSVRBZGRJQyo+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDOwor
ICAgICAgICBIYXNoTWFwPEluc3RydWN0aW9uKiwgTWF0aElDR2VuZXJhdGlvblN0YXRlPiBtX2lu
c3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZTsKKwogICAgICAgICBib29sIG1fY2Fu
QmVPcHRpbWl6ZWQ7CiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZE9ySW5saW5lZDsKICAg
ICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxpbmc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDM0NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDExICsyNiw1MiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJ
VEFkZEdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCisjaW5jbHVkZSAi
SklUTWF0aElDLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCiAjaWYgRU5BQkxFKEpJVCkK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLXZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYgaml0KQorSklUTWF0aElDSW5saW5lUmVzdWx0IEpJVEFkZEdlbmVy
YXRvcjo6Z2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRpb25T
dGF0ZSYgc3RhdGUpCit7CisgICAgLy8gV2UgZGVmYXVsdCB0byBzcGVjdWxhdGluZyBpbnQzMi4K
KyAgICBPYnNlcnZlZFR5cGUgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAg
T2JzZXJ2ZWRUeXBlIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpOworICAgIGlmICht
X2FyaXRoUHJvZmlsZSkgeworICAgICAgICBsaHMgPSBtX2FyaXRoUHJvZmlsZS0+bGhzT2JzZXJ2
ZWRUeXBlKCk7CisgICAgICAgIHJocyA9IG1fYXJpdGhQcm9maWxlLT5yaHNPYnNlcnZlZFR5cGUo
KTsKKyAgICAgICAgaWYgKGxocy5pc0VtcHR5KCkgfHwgcmhzLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgbGhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCk7CisgICAgICAgICAgICByaHMg
PSBPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
IChsaHMuaXNPbmx5Tm9uTnVtYmVyKCkgJiYgcmhzLmlzT25seU5vbk51bWJlcigpKQorICAgICAg
ICByZXR1cm4gSklUTWF0aElDSW5saW5lUmVzdWx0OjpEb250R2VuZXJhdGU7CisKKyAgICBpZiAo
KGxocy5pc09ubHlJbnQzMigpIHx8IG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkpICYmIChy
aHMuaXNPbmx5SW50MzIoKSB8fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkpIHsKKyAg
ICAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3Bl
cmFuZC5pc0NvbnN0SW50MzIoKSk7CisgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0
SW50MzIoKSkKKyAgICAgICAgICAgIHN0YXRlLnNsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFu
Y2hJZk5vdEludDMyKG1fbGVmdCkpOworICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmlzQ29u
c3RJbnQzMigpKQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5hcHBlbmQoaml0LmJy
YW5jaElmTm90SW50MzIobV9yaWdodCkpOworCisgICAgICAgIGlmIChtX2xlZnRPcGVyYW5kLmlz
Q29uc3RJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKSB7CisgICAgICAg
ICAgICBKU1ZhbHVlUmVncyB2YXIgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8gbV9y
aWdodCA6IG1fbGVmdDsKKyAgICAgICAgICAgIGludDMyX3QgY29uc3RWYWx1ZSA9IG1fbGVmdE9w
ZXJhbmQuaXNDb25zdEludDMyKCkgPyBtX2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpIDogbV9y
aWdodE9wZXJhbmQuYXNDb25zdEludDMyKCk7CisgICAgICAgICAgICBzdGF0ZS5zbG93UGF0aEp1
bXBzLmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgdmFyLnBh
eWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdFZhbHVlKSwgbV9zY3JhdGNoR1BS
KSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5hcHBl
bmQoaml0LmJyYW5jaEFkZDMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9h
ZEdQUigpLCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgaml0
LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOworICAgICAgICByZXR1cm4gSklUTWF0
aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZWRGYXN0UGF0aDsKKyAgICB9CisKKyAgICByZXR1cm4g
SklUTWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZUZ1bGxTbmlwcGV0OworfQorCitib29sIEpJ
VEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExpc3QmIHNs
b3dQYXRoSnVtcExpc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BS
UmVnKTsKICAgICBBU1NFUlQobV9zY3JhdGNoR1BSICE9IG1fbGVmdC5wYXlsb2FkR1BSKCkpOwpA
QCAtNDMsMTIgKzg0LDggQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
QwogCiAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0
T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgCi0gICAgaWYgKCFtX2xlZnRPcGVyYW5kLm1p
Z2h0QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWlnaHRCZU51bWJlcigpKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9kaWRFbWl0RmFzdFBhdGgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgbV9kaWRFbWl0RmFzdFBhdGggPSB0cnVlOworICAgIGlmICghbV9sZWZ0T3BlcmFuZC5t
aWdodEJlTnVtYmVyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkg
fHwgbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKICAgICAgICAgSlNWYWx1ZVJlZ3Mg
dmFyID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fcmlnaHQgOiBtX2xlZnQ7CkBA
IC01OCwyMCArOTUsMjAgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
QwogICAgICAgICAvLyBUcnkgdG8gZG8gaW50VmFyICsgaW50Q29uc3RhbnQuCiAgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcCBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdEludDMyKHZhcik7CiAK
LSAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxI
ZWxwZXJzOjpPdmVyZmxvdywgdmFyLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihj
b25zdE9wci5hc0NvbnN0SW50MzIoKSksIG1fc2NyYXRjaEdQUikpOworICAgICAgICBzbG93UGF0
aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywg
dmFyLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdE9wci5hc0NvbnN0SW50
MzIoKSksIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hH
UFIsIG1fcmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7
CisgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICBpZiAo
IWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkgewotICAgICAgICAgICAgbV9zbG93UGF0aEp1
bXBMaXN0LmFwcGVuZChub3RJbnQzMik7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChub3RJbnQzMik7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRyeSB0byBkbyBkb3VibGVWYXIgKyBkb3Vi
bGUoaW50Q29uc3RhbnQpLgogICAgICAgICBub3RJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICBp
ZiAoIXZhck9wci5kZWZpbml0ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhK
dW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHZhciwgbV9zY3JhdGNoR1BSKSk7
CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIodmFyLCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0
cnVjdGl2ZSh2YXIsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSLCBtX3NjcmF0Y2hGUFIpOwogCkBA
IC04OSwyMiArMTI2LDIzIEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KEMKICAgICAgICAgbGVmdE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fbGVmdCk7CiAg
ICAgICAgIHJpZ2h0Tm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CiAKLSAg
ICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxw
ZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCks
IG1fc2NyYXRjaEdQUikpOworICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJh
bmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVyZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1f
bGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGppdC5ib3hJbnQz
MihtX3NjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKLSAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQo
aml0Lmp1bXAoKSk7CisgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKwog
CiAgICAgICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAgICAgICAg
ICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGxlZnROb3RJbnQpOwotICAgICAgICAgICAgbV9z
bG93UGF0aEp1bXBMaXN0LmFwcGVuZChyaWdodE5vdEludCk7Ci0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBzbG93UGF0aEp1bXBMaXN0LmFwcGVuZChsZWZ0Tm90SW50KTsKKyAgICAg
ICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgbGVmdE5vdEludC5saW5rKCZqaXQp
OwogICAgICAgICBpZiAoIW1fbGVmdE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAg
ICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlciht
X2xlZnQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBl
bmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BSKSk7CiAgICAgICAg
IGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBt
X3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBt
X3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQu
dW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xlZnQsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BS
LCBtX3NjcmF0Y2hGUFIpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgcmlnaHRJc0RvdWJs
ZSA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwpAQCAtMTE0LDcgKzE1Miw3IEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgICAgICByaWdodE5v
dEludC5saW5rKCZqaXQpOwogICAgICAgICBpZiAoIW1fcmlnaHRPcGVyYW5kLmRlZmluaXRlbHlJ
c051bWJlcigpKQotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJh
bmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBzbG93
UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9yaWdodCwgbV9zY3Jh
dGNoR1BSKSk7CiAKICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fbGVmdC5wYXls
b2FkR1BSKCksIG1fbGVmdEZQUik7CiAKQEAgLTEyOCwxMCArMTY2LDEyIEBAIHZvaWQgSklUQWRk
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJsZVZhciArIGRv
dWJsZVZhci4KICAgICBqaXQuYWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7Ci0gICAg
aWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91
YmxlKGppdCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQorICAgICAgICBtX2FyaXRoUHJvZmls
ZS0+ZW1pdFNldERvdWJsZShqaXQpOwogICAgICAgICAKICAgICBqaXQuYm94RG91YmxlKG1fbGVm
dEZQUiwgbV9yZXN1bHQpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5o
CShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdl
bmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMjMgQEAKICNpZiBFTkFCTEUo
SklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklUTWF0aElDSW5s
aW5lUmVzdWx0LmgiCisjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNuaXBw
ZXRPcGVyYW5kLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCitzdHJ1Y3QgTWF0aElDR2VuZXJhdGlv
blN0YXRlOworCiBjbGFzcyBKSVRBZGRHZW5lcmF0b3IgewogcHVibGljOgorICAgIEpJVEFkZEdl
bmVyYXRvcigpCisgICAgeyB9CisKICAgICBKSVRBZGRHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQg
bGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAg
ICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQ
UlJlZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0g
bnVsbHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQog
ICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9w
ZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDE2
ICs1NSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAg
ICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2Ny
YXRjaEZQUikKLSAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAg
ICAgLCBtX2FyaXRoUHJvZmlsZShhcml0aFByb2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQo
IW1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJ
bnQzMigpKTsKICAgICB9CiAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJz
Jik7Ci0KLSAgICBib29sIGRpZEVtaXRGYXN0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRW1p
dEZhc3RQYXRoOyB9Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QoKSB7
IHJldHVybiBtX2VuZEp1bXBMaXN0OyB9Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xv
d1BhdGhKdW1wTGlzdCgpIHsgcmV0dXJuIG1fc2xvd1BhdGhKdW1wTGlzdDsgfQorICAgIEpJVE1h
dGhJQ0lubGluZVJlc3VsdCBnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmLCBNYXRoSUNHZW5l
cmF0aW9uU3RhdGUmKTsKKyAgICBib29sIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgZW5kSnVtcExpc3QsIENDYWxsSGVscGVyczo6SnVtcExp
c3QmIHNsb3dQYXRoSnVtcExpc3QpOwogCiBwcml2YXRlOgogICAgIFNuaXBwZXRPcGVyYW5kIG1f
bGVmdE9wZXJhbmQ7CkBAIC02OSwxMSArNzMsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3Jp
Z2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQ
UjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7Ci0gICAgYm9vbCBtX2RpZEVt
aXRGYXN0UGF0aCB7IGZhbHNlIH07Ci0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5k
SnVtcExpc3Q7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX3Nsb3dQYXRoSnVtcExpc3Q7
CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3Bw
CShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRo
bWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEpJ
VCkKICNpbmNsdWRlICJKSVQuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogI2luY2x1ZGUg
IkpJVEJpdEFuZEdlbmVyYXRvci5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpJVERp
dkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVElubGluZXMuaCIKICNpbmNsdWRlICJKSVRMZWZ0
U2hpZnRHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKSVRN
dWxHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVROZWdHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJK
SVRPcGVyYXRpb25zLmgiCkBAIC00NSwxMCArNDcsMTAgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9u
LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRl
ICJTbG93UGF0aENhbGwuaCIKIAotCiBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBKSVQ6OmVtaXRf
b3Bfamxlc3MoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTY3NSwyMCArNjc3
LDI2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF91cnNoaWZ0KEluc3RydWN0aW8KICAgICBzbG93
UGF0aENhbGwuY2FsbCgpOwogfQogCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBPcGVyYW5kVHlwZXMg
Z2V0T3BlcmFuZFR5cGVzKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKK3sKKyAgICByZXR1cm4g
T3BlcmFuZFR5cGVzKEFyaXRoUHJvZmlsZTo6ZnJvbUludChpbnN0cnVjdGlvbls0XS51Lm9wZXJh
bmQpLmxoc1Jlc3VsdFR5cGUoKSwgQXJpdGhQcm9maWxlOjpmcm9tSW50KGluc3RydWN0aW9uWzRd
LnUub3BlcmFuZCkucmhzUmVzdWx0VHlwZSgpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfYWRk
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IHJlc3VsdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9t
SW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1
Y3Rpb24oY3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBK
U1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJl
Z3MocmVnVDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICAgICBH
UFJSZWcgc2NyYXRjaEdQUiA9IHJlZ1QyOwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxp
ZEZQUlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVz
KGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdz
OwpAQCAtNjk2LDkgKzcwNCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAotICAgIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIEFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gbnVsbHB0cjsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQot
ICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUo
bV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX2NvZGVCbG9jay0+
YXJpdGhQcm9maWxlRm9yUEMoY3VycmVudEluc3RydWN0aW9uKTsKIAogICAgIFNuaXBwZXRPcGVy
YW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CkBAIC03MTUsNDcgKzcyMyw0NyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaWYgKCFyaWdodE9wZXJhbmQuaXND
b25zdCgpKQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsK
IAotICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVz
dWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwg
c2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CisgICAgSklUQWRkSUMqIGFk
ZElDID0gbV9jb2RlQmxvY2stPmFkZEpJVEFkZElDKCk7CiAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aCgqdGhpcyk7CisgICAgbV9pbnN0cnVjdGlvblRvSklUQWRkSUMuYWRkKGN1cnJlbnRJbnN0
cnVjdGlvbiwgYWRkSUMpOworICAgIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgYWRkSUNHZW5lcmF0
aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5hZGQoY3Vy
cmVudEluc3RydWN0aW9uLCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUoKSkuaXRlcmF0b3ItPnZhbHVl
OwogCi0gICAgaWYgKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSkgewotICAgICAgICBnZW4uZW5kSnVt
cExpc3QoKS5saW5rKHRoaXMpOwotICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3Vs
dCwgcmVzdWx0UmVncyk7Ci0gICAgICAgIAotICAgICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1Bh
dGhKdW1wTGlzdCgpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1bXBM
aXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlzdCgpLmVt
cHR5KCkpOwotICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgewotICAgICAgICAgICAgaWYgKGxl
ZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgbGVmdFJlZ3MpOwotICAgICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0
KCkpCi0gICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVn
cyk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwotICAgICAg
ICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICAgICAgc2xvd1Bh
dGhDYWxsLmNhbGwoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBhZGRJQy0+bV9nZW5lcmF0b3Ig
PSBKSVRBZGRHZW5lcmF0b3IobGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRj
aEZQUiwgYXJpdGhQcm9maWxlKTsKKworICAgIGJvb2wgZ2VuZXJhdGVkSW5saW5lQ29kZSA9IGFk
ZElDLT5nZW5lcmF0ZUlubGluZSgqdGhpcywgYWRkSUNHZW5lcmF0aW9uU3RhdGUpOworICAgIGlm
ICghZ2VuZXJhdGVkSW5saW5lQ29kZSkgeworICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25z
dCgpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsK
KyAgICAgICAgZWxzZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworCisgICAgICAgIGlmIChhcml0
aFByb2ZpbGUpCisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJv
ZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIGFyaXRoUHJvZmlsZSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MpOworICAgIH0gZWxzZQorICAgICAgICBh
ZGRTbG93Q2FzZShhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93UGF0aEp1bXBzKTsKKyAgICBlbWl0
UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBsaW5rQWxsU2xvd0Nhc2VzRm9y
Qnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQpOwogCisg
ICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1faW5zdHJ1
Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQoY3VycmVudEluc3RydWN0aW9uKS0+
dmFsdWU7CisgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUuc2xvd1BhdGhTdGFydCA9IGxhYmVsKCk7
CisKICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAg
ICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3Ay
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFu
ZCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9w
ZXJhbmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBK
U1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVn
cyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0
UmVncyA9IGxlZnRSZWdzOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVy
YW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
bGVmdFJlZ3M7CkBAIC03NjksMTggKzc3NywyNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRk
KEluc3RydWN0aW9uKiBjCiAgICAgZWxzZSBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkK
ICAgICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50
KG9wMikpOwogCisgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICBpZiAocmlnaHRPcGVyYW5kLmlz
Q29uc3QoKSkKKyAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7
CisKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2luc3RydWN0aW9uVG9KSVRBZGRJQy5nZXQoY3Vy
cmVudEluc3RydWN0aW9uKTsKICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7Ci0gICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCi0gICAgICAgICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOwotICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29u
c3QoKSkKLSAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3Mp
OwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVu
c3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0
UmVncywgcmVzdWx0UHJvZmlsZSk7Ci0gICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVz
dWx0LCByZXN1bHRSZWdzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBKSVRTbG93UGF0aENhbGwg
c2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7Ci0g
ICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Ci0gICAgfQorICAgICAgICBBcml0aFByb2ZpbGUm
IGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5z
dHJ1Y3Rpb24pOworICAgICAgICBpZiAoYWRkSUNHZW5lcmF0aW9uU3RhdGUuc2hvdWxkU2xvd1Bh
dGhSZXBhdGNoKQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUuc2xvd1BhdGhDYWxs
ID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUsIHJlc3Vs
dFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUsIGFkZElDKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUuc2xvd1BhdGhDYWxsID0g
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0
UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYWRk
SUNHZW5lcmF0aW9uU3RhdGUuc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25W
YWx1ZUFkZE9wdGltaXplLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBhZGRJQyk7
CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworCisgICAg
YWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgIE1hdGhJ
Q0dlbmVyYXRpb25TdGF0ZSYgYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBtX2luc3RydWN0aW9uVG9K
SVRBZGRJQ0dlbmVyYXRpb25TdGF0ZS5maW5kKGN1cnJlbnRJbnN0cnVjdGlvbiktPnZhbHVlOwor
ICAgICAgICBhZGRJQy0+ZmluYWxpemVJbmxpbmVDb2RlKGFkZElDR2VuZXJhdGlvblN0YXRlLCBs
aW5rQnVmZmVyKTsKKyAgICB9KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC03ODgsMTQgKzgwNCwxNSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24o
Y3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICAgICBHUFJSZWcg
c2NyYXRjaEdQUiA9IHJlZ1QyOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRP
cGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVn
cyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gbGVmdFJlZ3M7CkBAIC04MDMsOSArODIwLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KElu
c3RydWN0aW9uKiBjdXJyZQogI2VuZGlmCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1Qy
OwogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJp
dGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJv
ZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVz
dWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1f
Y29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAg
U25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9w
ZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTgzMSw3ICs4NDgsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklURGl2R2VuZXJhdG9yIGdl
bihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRS
ZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBy
ZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2Ny
YXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlz
KTsKIApAQCAtODYxLDE1ICs4NzgsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0
aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVz
ID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikp
OwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpT
VmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVn
cyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDIpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BS
ID0gcmVnVDM7CiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOwogI2Vsc2UK
KyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0
aW9uKTsKICAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1Qy
KTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC04NzcsOSArODk1
LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJl
ZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVz
dWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBu
dWxscHRyOwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFBy
b2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0
KTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQ
QyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQo
dHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNl
Y29uZCgpKTsKQEAgLTg5Nyw3ICs5MTUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJl
Z3MpOwogCiAgICAgSklUTXVsR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5k
LCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJl
Z1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZnBS
ZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAog
ICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAtOTA5LDEyICs5MjcsMTIgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAgICAgICAgQVNTRVJU
KGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHRQcm9m
aWxlKSB7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUpIHsKICAgICAgICAgICAgIGlmIChsZWZ0
T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQogICAgICAgICAgICAgICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgICAgICAgICBpZiAocmlnaHRPcGVy
YW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Ms
IHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1
ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBhcml0aFByb2Zp
bGUpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJl
Z3MpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQ
YXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwpAQCAtOTMw
LDEzICs5NDgsMTQgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX211bChJbnN0cnVjdGlvbiogYwog
ICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGlu
dCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBvcDIgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9
IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsK
IAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFu
ZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbikpOwogICAgIEpTVmFs
dWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJp
Z2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gbGVmdFJlZ3M7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRU
eXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0
UmVnczsKQEAgLTk1NSw4ICs5NzQsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3Ry
dWN0aW9uKiBjCiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJl
Z3MpOwogICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAg
ICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJl
c3VsdFByb2ZpbGUpOworICAgICAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IG1fY29k
ZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgICAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRS
ZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSklUU2xv
d1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0
aF9tdWwpOwpAQCAtOTY5LDE1ICs5ODgsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3Ry
dWN0aW9uKiBjdXJyZQogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIE9wZXJh
bmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFuZFR5cGVzIHR5
cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJbnN0cnVjdGlv
bikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAg
IEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdU
MjsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRGUFJSZWc7CiAjZWxzZQorICAgIE9w
ZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwog
ICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAg
ICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTk4NSw5ICsxMDA1LDkgQEAg
dm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJlZyBzY3Jh
dGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJv
ZmlsZSA9IG51bGxwdHI7CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRy
OwogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUg
PSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAg
ICAgICAgYXJpdGhQcm9maWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJy
ZW50SW5zdHJ1Y3Rpb24pOwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMu
Zmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgp
KTsKQEAgLTk5Niw3ICsxMDE2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9u
KiBjdXJyZQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAg
ICAgSklUU3ViR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRS
ZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZnBSZWdUMCwgZnBS
ZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgYXJpdGhQcm9maWxlKTsKIAogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAtMTAyMyw4ICsxMDQzLDggQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX3N1YihJbnN0cnVjdGlvbiogYwogI2VuZGlmCiAKICAgICBpZiAoc2hvdWxk
RW1pdFByb2ZpbGluZygpKSB7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUg
PSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKLSAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkLCByZXN1bHRSZWdz
LCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgQXJpdGhQcm9m
aWxlJiBhcml0aFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YXJpdGhQcm9maWxlRm9yUEMoY3VycmVu
dEluc3RydWN0aW9uKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZVN1YlBy
b2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCAmYXJpdGhQcm9maWxlKTsK
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3Vy
cmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfc3ViKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRo
UHJvZmlsZS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWF0
aENvbW1vbi5oIgogCkBAIC0xMDEsOSArMTAyLDkgQEAgdm9pZCBKSVREaXZHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgoQwogICAgIH0KIAogICAgIC8vIElzIHRoZSByZXN1bHQgYWN0dWFsbHkg
YW4gaW50ZWdlcj8gVGhlIERGRyBKSVQgd291bGQgcmVhbGx5IGxpa2UgdG8ga25vdy4gSWYgaXQn
cwotICAgIC8vIG5vdCBhbiBpbnRlZ2VyLCB3ZSBpbmNyZW1lbnQgYSBjb3VudC4gSWYgdGhpcyB0
b2dldGhlciB3aXRoIHRoZSBzbG93IGNhc2UgY291bnRlcgotICAgIC8vIGFyZSBiZWxvdyB0aHJl
c2hvbGQgdGhlbiB0aGUgREZHIEpJVCB3aWxsIGNvbXBpbGUgdGhpcyBkaXZpc2lvbiB3aXRoIGEg
c3BlY3VsYXRpb24KLSAgICAvLyB0aGF0IHRoZSByZW1haW5kZXIgaXMgemVyby4KKyAgICAvLyBu
b3QgYW4gaW50ZWdlciwgd2Ugc2V0IGEgYml0LiBJZiB0aGlzIHRvZ2V0aGVyIHdpdGggdGhlIHNs
b3cgY2FzZSBjb3VudGVyIGFyZSBiZWxvdworICAgIC8vIHRocmVzaG9sZCB0aGVuIHRoZSBERkcg
SklUIHdpbGwgY29tcGlsZSB0aGlzIGRpdmlzaW9uIHdpdGggYSBzcGVjdWxhdGlvbiB0aGF0IHRo
ZQorICAgIC8vIHJlbWFpbmRlciBpcyB6ZXJvLgogCiAgICAgLy8gQXMgd2VsbCwgdGhlcmUgYXJl
IGNhc2VzIHdoZXJlIGEgZG91YmxlIHJlc3VsdCBoZXJlIHdvdWxkIGNhdXNlIGFuIGltcG9ydGFu
dCBmaWVsZAogICAgIC8vIGluIHRoZSBoZWFwIHRvIHNvbWV0aW1lcyBoYXZlIGRvdWJsZXMgaW4g
aXQsIHJlc3VsdGluZyBpbiBkb3VibGUgcHJlZGljdGlvbnMgZ2V0dGluZwpAQCAtMTI4LDggKzEy
OSw4IEBAIHZvaWQgSklURGl2R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIG5v
dERvdWJsZVplcm8ubGluaygmaml0KTsKICNlbmRpZgotICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUp
Ci0gICAgICAgIGppdC5hZGQzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZTcGVjaWFs
RmFzdFBhdGhDb3VudCgpKSk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQorICAgICAgICBqaXQu
b3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6OnNwZWNpYWxGYXN0
UGF0aEJpdCksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5h
ZGRyZXNzT2ZCaXRzKCkpKTsKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQp
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9y
LmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2
R2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAg
IEpJVERpdkdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJh
bmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdz
IGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVn
IHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCi0gICAgICAg
IFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyKQorICAgICAgICBBcml0aFBy
b2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChs
ZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAg
ICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQ
UikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAgLCBtX3Jlc3Vs
dFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmlsZShhcml0aFBy
b2ZpbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMy
KCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICB9CkBAIC03MSw3ICs3
MSw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAgR1BSUmVnIG1fc2Ny
YXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAgIFJlc3VsdFByb2ZpbGUqIG1f
cmVzdWx0UHJvZmlsZTsKKyAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogICAgIGJv
b2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVzLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MTYsOSArNDE2LDMzIEBAIEFMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1pbmxpbmUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlvbiwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQogewot
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRy
KHJlc3VsdFByb2ZpbGUpKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMik7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb24pOworICAgIHNldHVwUmVzdWx0cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOworfQor
CitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpBcnAgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFs
dWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
KQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVk
SW1tUHRyKGFyaXRoUHJvZmlsZSkpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICBy
ZXR1cm4gY2FsbDsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXJwSmFpYyBvcGVyYXRpb24sIEpTVmFs
dWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgQXJpdGhQ
cm9maWxlKiBhcml0aFByb2ZpbGUsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcml0aFByb2ZpbGUp
LCBUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVzdWx0cyhyZXN1bHQpOworICAg
IHJldHVybiBjYWxsOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9wZXJhdGlvbiwgSlNWYWx1
ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBKSVRBZGRJ
QyogYWRkSUMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIs
IFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKICAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CiAgICAg
cmV0dXJuIGNhbGw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEpJVCkKKworI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgorI2lu
Y2x1ZGUgIkpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
KyNpbmNsdWRlICJSZXBhdGNoLmgiCisjaW5jbHVkZSAiU25pcHBldE9wZXJhbmQuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtCdWZmZXI7CisKK3N0cnVjdCBNYXRoSUNHZW5lcmF0
aW9uU3RhdGUgeworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBmYXN0UGF0aFN0YXJ0OworICAg
IE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBmYXN0UGF0aEVuZDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
TGFiZWwgc2xvd1BhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzbG93UGF0aENh
bGw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcHM7CisgICAgYm9v
bCBzaG91bGRTbG93UGF0aFJlcGF0Y2g7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJh
dG9yVHlwZT4KK2NsYXNzIEpJVE1hdGhJQyB7CitwdWJsaWM6CisgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgZG9uZUxvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1f
aW5saW5lU2l6ZSk7IH0KKyAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFN0YXJ0TG9jYXRp
b24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmxhYmVsQXRPZmZzZXQobV9kZWx0YUZyb21TdGFy
dFRvU2xvd1BhdGhTdGFydCk7IH0KKyAgICBDb2RlTG9jYXRpb25DYWxsIHNsb3dQYXRoQ2FsbExv
Y2F0aW9uKCkgeyByZXR1cm4gbV9pbmxpbmVTdGFydC5jYWxsQXRPZmZzZXQobV9kZWx0YUZyb21T
dGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24pOyB9CisKKyAgICBib29sIGdlbmVyYXRlSW5saW5l
KENDYWxsSGVscGVycyYgaml0LCBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQorICAgIHsK
KyAgICAgICAgc3RhdGUuZmFzdFBhdGhTdGFydCA9IGppdC5sYWJlbCgpOworICAgICAgICBzaXpl
X3Qgc3RhcnRTaXplID0gaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCk7CisgICAg
ICAgIEpJVE1hdGhJQ0lubGluZVJlc3VsdCByZXN1bHQgPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUlu
bGluZShqaXQsIHN0YXRlKTsKKworICAgICAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgICAgICBj
YXNlIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6R2VuZXJhdGVkRmFzdFBhdGg6IHsKKyAgICAgICAg
ICAgIHNpemVfdCBpbmxpbmVTaXplID0gaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXpl
KCkgLSBzdGFydFNpemU7CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8cHRyZGlmZl90Pihp
bmxpbmVTaXplKSA8IE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpIHsK
KyAgICAgICAgICAgICAgICBzaXplX3Qgbm9wc1RvRW1pdEluQnl0ZXMgPSBNYWNyb0Fzc2VtYmxl
cjo6bWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgpIC0gaW5saW5lU2l6ZTsKKyAgICAgICAgICAgICAg
ICBqaXQuZW1pdE5vcHMobm9wc1RvRW1pdEluQnl0ZXMpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgc3RhdGUuc2hvdWxkU2xvd1BhdGhSZXBhdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgIHN0
YXRlLmZhc3RQYXRoRW5kID0gaml0LmxhYmVsKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6R2VuZXJhdGVG
dWxsU25pcHBldDogeworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVuZEp1
bXBMaXN0OworICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUZh
c3RQYXRoKGppdCwgZW5kSnVtcExpc3QsIHN0YXRlLnNsb3dQYXRoSnVtcHMpOworICAgICAgICAg
ICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHN0YXRlLmZhc3RQYXRoRW5kID0gaml0
LmxhYmVsKCk7CisgICAgICAgICAgICAgICAgc3RhdGUuc2hvdWxkU2xvd1BhdGhSZXBhdGNoID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgZW5kSnVtcExpc3QubGluaygmaml0KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEpJVE1hdGhJQ0lubGluZVJlc3VsdDo6RG9u
dEdlbmVyYXRlOiB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgZ2VuZXJhdGVPdXRP
ZkxpbmUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgRnVuY3Rpb25QdHIgY2FsbFJlcGxh
Y2VtZW50KQorICAgIHsKKyAgICAgICAgLy8gV2UgcmV3aXJlIHRvIHRoZSBhbHRlcm5hdGUgcmVn
YXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBjYW4gYWxsb2NhdGUgdGhlIG91dCBvZiBsaW5l
IHBhdGgKKyAgICAgICAgLy8gYmVjYXVzZSBpZiB3ZSBmYWlsIGFsbG9jYXRpbmcgdGhlIG91dCBv
ZiBsaW5lIHBhdGgsIHdlIGRvbid0IHdhbnQgdG8gd2FzdGUgdGltZSB0cnlpbmcgdG8KKyAgICAg
ICAgLy8gYWxsb2NhdGUgaXQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgICAgZnRsVGh1bmtBd2FyZVJl
cGF0Y2hDYWxsKGNvZGVCbG9jaywgc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgY2FsbFJlcGxhY2Vt
ZW50KTsKKworICAgICAgICB7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29k
ZUJsb2NrKTsKKworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGVuZEp1bXBM
aXN0OyAKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aEp1bXBM
aXN0OyAKKyAgICAgICAgICAgIGJvb2wgZW1pdHRlZEZhc3RQYXRoID0gbV9nZW5lcmF0b3IuZ2Vu
ZXJhdGVGYXN0UGF0aChqaXQsIGVuZEp1bXBMaXN0LCBzbG93UGF0aEp1bXBMaXN0KTsKKyAgICAg
ICAgICAgIGlmICghZW1pdHRlZEZhc3RQYXRoKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIGVuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKworICAgICAgICAgICAg
TGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCBqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25D
YW5GYWlsKTsKKyAgICAgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmso
ZW5kSnVtcExpc3QsIGRvbmVMb2NhdGlvbigpKTsKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubGlu
ayhzbG93UGF0aEp1bXBMaXN0LCBzbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisKKyAgICAgICAg
ICAgIG1fY29kZSA9IEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAgIGNvZGVCbG9j
aywgbGlua0J1ZmZlciwgKCJKSVRNYXRoSUM6IGdlbmVyYXRpbmcgb3V0IG9mIGxpbmUgSUMgc25p
cHBldCIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIENDYWxsSGVscGVy
cyBqaXQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgYXV0byBqdW1wID0gaml0Lmp1bXAo
KTsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgYSBub3Agc2xlZCBoZXJlIGJlY2F1c2Ug
bm9ib2R5IHNob3VsZCBiZSBqdW1waW5nIGludG8gdGhlIG1pZGRsZSBvZiBhbiBJQy4KKyAgICAg
ICAgICAgIGJvb2wgbmVlZHNCcmFuY2hDb21wYWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSA8PSBzdGF0
aWNfY2FzdDxzaXplX3Q+KG1faW5saW5lU2l6ZSkpOworICAgICAgICAgICAgTGlua0J1ZmZlciBs
aW5rQnVmZmVyKGppdCwgbV9pbmxpbmVTdGFydC5kYXRhTG9jYXRpb24oKSwgaml0Lm1fYXNzZW1i
bGVyLmJ1ZmZlcigpLmNvZGVTaXplKCksIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQsIG5lZWRz
QnJhbmNoQ29tcGFjdGlvbik7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVy
LmlzVmFsaWQoKSk7CisgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoanVtcCwgQ29kZUxvY2F0
aW9uTGFiZWwobV9jb2RlLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgICAg
ICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiSklUTWF0aElDOiBsaW5raW5nIGNvbnN0YW50
IGp1bXAgdG8gb3V0IG9mIGxpbmUgc3R1YiIpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZv
aWQgZmluYWxpemVJbmxpbmVDb2RlKGNvbnN0IE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUs
IExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCisgICAgeworICAgICAgICBDb2RlTG9jYXRpb25MYWJl
bCBzdGFydCA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5mYXN0UGF0aFN0YXJ0KTsKKyAg
ICAgICAgbV9pbmxpbmVTdGFydCA9IHN0YXJ0OworCisgICAgICAgIG1faW5saW5lU2l6ZSA9IE1h
Y3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBzdGFy
dCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLmZhc3RQYXRoRW5kKSk7CisgICAgICAgIEFT
U0VSVChtX2lubGluZVNpemUgPiAwKTsKKworICAgICAgICBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93
UGF0aENhbGxMb2NhdGlvbiA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQ
dHIoCisgICAgICAgICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRlLnNsb3dQ
YXRoQ2FsbCkpOworICAgICAgICBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0ID0gTWFj
cm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0
LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUuc2xvd1BhdGhTdGFydCkpOworICAgIH0KKwor
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBtX2NvZGU7CisgICAgQ29kZUxvY2F0aW9uTGFiZWwg
bV9pbmxpbmVTdGFydDsKKyAgICBpbnQzMl90IG1faW5saW5lU2l6ZTsKKyAgICBpbnQzMl90IG1f
ZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uOworICAgIGludDMyX3QgbV9kZWx0
YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydDsKKyAgICBHZW5lcmF0b3JUeXBlIG1fZ2VuZXJhdG9y
OworfTsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2VuZXJhdG9yPiBKSVRBZGRJQzsKKwor
fSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTWF0aElDRm9yd2FyZHMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEpJVCkKKworbmFtZXNw
YWNlIEpTQyB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3I+IGNsYXNzIEpJVE1hdGhJ
QzsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKKwordHlwZWRlZiBKSVRNYXRoSUM8SklUQWRkR2Vu
ZXJhdG9yPiBKSVRBZGRJQzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNJbmxpbmVS
ZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJ
Q0lubGluZVJlc3VsdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRNYXRoSUNJbmxpbmVSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEpJVCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gY2xhc3Mg
SklUTWF0aElDSW5saW5lUmVzdWx0IHsKKyAgICBHZW5lcmF0ZWRGYXN0UGF0aCwKKyAgICBHZW5l
cmF0ZUZ1bGxTbmlwcGV0LAorICAgIERvbnRHZW5lcmF0ZQorfTsKKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQXJpdGhQcm9m
aWxlLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKQEAgLTEzNyw3ICsxMzksNyBAQCB2b2lkIEpJ
VE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgLy8gRG8gZG91YmxlVmFyICog
ZG91YmxlVmFyLgogICAgIGppdC5tdWxEb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKIAot
ICAgIGlmICghbV9yZXN1bHRQcm9maWxlKQorICAgIGlmICghbV9hcml0aFByb2ZpbGUpCiAgICAg
ICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiAgICAgZWxzZSB7CiAgICAg
ICAgIC8vIFRoZSBJbnQ1MiBvdmVyZmxvdyBjaGVjayBiZWxvdyBpbnRlbnRpb25hbGx5IG9taXRz
IDFsbCA8PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVlLgpAQCAtMTQ5LDE4ICsx
NTEsMTggQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAg
ICBqaXQubW92ZURvdWJsZVRvNjQobV9sZWZ0RlBSLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwog
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90TmVnYXRpdmVaZXJvID0gaml0LmJyYW5jaDY0
KENDYWxsSGVscGVyczo6Tm90RXF1YWwsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tNjQobmVnYXRpdmVaZXJvQml0cykpOwogCi0gICAgICAgIGppdC5vcjMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUp
LCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NP
ZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
QXJpdGhQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmxp
bmsoJmppdCk7Ci0gICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJl
c3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRk
cmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9y
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpOb25OZWdaZXJvRG91
YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJl
c3NPZkJpdHMoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnBheWxvYWRHUFIoKSwg
bV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0z
Mig1MiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC5hbmQzMihDQ2FsbEhlbHBlcnM6Oklt
bTMyKDB4N2ZmKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5v
SW50NTJPdmVyZmxvdyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Okxlc3NUaGFuT3JFcXVh
bCwgbV9zY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigweDQzMSkpOwogCi0g
ICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6
OkludDUyT3ZlcmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFBy
b2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoQXJpdGhQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwgQ0NhbGxIZWxwZXJz
OjpBYnNvbHV0ZUFkZHJlc3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAg
ICAgICBub0ludDUyT3ZlcmZsb3cubGluaygmaml0KTsKIAogICAgICAgICBkb25lLmxpbmsoJmpp
dCk7CkBAIC0xNzEsMTggKzE3MywxOCBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aChDCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5hcHBlbmQoaml0LmJyYW5jaDMyKEND
YWxsSGVscGVyczo6Tm90RXF1YWwsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoMCkpKTsKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmFwcGVuZChqaXQu
YnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQudGFnR1BSKCksIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKG5lZ2F0aXZlWmVyb0JpdHMgPj4gMzIpKSk7CiAKLSAgICAg
ICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6TmVn
WmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmls
ZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFi
c29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdh
dGl2ZVplcm8ubGluaygmaml0KTsKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAg
ICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5v
bk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJv
ZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFn
R1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVy
czo6SW1tMzIoNTIgLSAzMiksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC5hbmQzMihDQ2Fs
bEhlbHBlcnM6OkltbTMyKDB4N2ZmKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIG5vSW50NTJPdmVyZmxvdyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Okxl
c3NUaGFuT3JFcXVhbCwgbV9zY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigw
eDQzMSkpOwogICAgICAgICAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1
dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBq
aXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6OkludDUyT3Zl
cmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRk
cmVzc09mQml0cygpKSk7CiAKICAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQobm9JbnQ1Mk92
ZXJmbG93KTsKICAgICAgICAgaWYgKG1fc2NyYXRjaEdQUiA9PSBtX3Jlc3VsdC50YWdHUFIoKSB8
fCBtX3NjcmF0Y2hHUFIgPT0gbV9yZXN1bHQucGF5bG9hZEdQUigpKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDM0NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVRNdWxHZW5lcmF0b3IoU25pcHBl
dE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdo
dCwKICAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0
Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlID0gbnVsbHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBu
dWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwg
bV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRGUFIp
CiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3JhdGNo
RlBSKHNjcmF0Y2hGUFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUp
CisgICAgICAgICwgbV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkgfHwgIW1fcmlnaHRP
cGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpOwogICAgIH0KQEAgLTY5LDcgKzY5LDcgQEAg
cHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BS
OwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQ
cm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0aFByb2ZpbGU7CiAgICAgYm9vbCBtX2Rp
ZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1f
ZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJBcnJh
eUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAi
REZHQ29tcGlsYXRpb25Nb2RlLmgiCkBAIC0yMjQ3LDE4ICsyMjQ4LDgyIEBAIEpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3QKICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbShleGVjLCBpbmRleCkuc3RyaW5nKCkpOwogfQogCitBTFdBWVNfSU5M
SU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkQWRkKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sK
KyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKKyAgICAKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3Ay
KSk7Cit9CisKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkQWRk
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCit7CisgICAgVk0qIHZt
ID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7
CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBB
U1NFUlQoYXJpdGhQcm9maWxlKTsKKyAgICBhcml0aFByb2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMo
b3AxLCBvcDIpOworCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7
CisgICAgYXJpdGhQcm9maWxlLT5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CisKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogeworICAgIHJldHVybiB1bnByb2Zp
bGVkQWRkKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworfQorCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRBZGQoZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgYXJpdGhQcm9maWxlKTsKK30KKworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqIGFkZElDKQor
ewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDIpOworCisgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7CisgICAgYXJpdGhQcm9maWxlLT5vYnNl
cnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKKyAgICBhdXRvIG5vbk9wdGltaXplVmFyaWFudCA9IG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWROb09wdGltaXplOworICAgIGFkZElDLT5nZW5lcmF0ZU91
dE9mTGluZSgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBub25PcHRpbWl6ZVZhcmlhbnQpOwogICAg
IAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIGFyaXRo
UHJvZmlsZS0+b2JzZXJ2ZVJlc3VsdChyZXN1bHQpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkUHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUsIEpJVEFkZElDKikKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRBZGQoZXhlYywg
ZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgYXJpdGhQcm9maWxlKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUQWRkSUMqIGFkZElDKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworCisgICAgYXV0byBub25PcHRpbWl6
ZVZhcmlhbnQgPSBvcGVyYXRpb25WYWx1ZUFkZE5vT3B0aW1pemU7CisgICAgYWRkSUMtPmdlbmVy
YXRlT3V0T2ZMaW5lKCp2bSwgZXhlYy0+Y29kZUJsb2NrKCksIG5vbk9wdGltaXplVmFyaWFudCk7
CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBK
U1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3AyKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKikKIHsK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKQEAgLTIyNjcsNyArMjMzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AyKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwg
b3AyKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0yMjg0LDcgKzIzNDks
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0
aFByb2ZpbGUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CkBAIC0yMjk2LDcgKzIzNjEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgZG91YmxlIGIgPSBvcDIudG9O
dW1iZXIoZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7
Ci0gICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0TnVtZXJpY25lc3MocmVzdWx0KTsKKyAgICBhcml0
aFByb2ZpbGUtPm9ic2VydmVSZXN1bHQocmVzdWx0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIzMTMsNyArMjM3OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKGEgLSBiKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2Zp
bGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmls
ZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKIHsKICAgICBWTSog
dm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBl
eGVjKTsKQEAgLTIzMjUsNyArMjM5MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmEKICAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKICAgICAKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKLSAgICByZXN1bHRQcm9maWxlLT5k
ZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2ZVJlc3Vs
dChyZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIw
MzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVk
ZSAiSklUTWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoUmV0dXJu
VHlwZS5oIgpAQCAtNDIsNiArNDMsNyBAQCBjbGFzcyBBcnJheVByb2ZpbGU7CiBjbGFzcyBDYWxs
TGlua0luZm87CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKSVRB
ZGRHZW5lcmF0b3I7CiBjbGFzcyBKU0FycmF5OwogY2xhc3MgSlNGdW5jdGlvbjsKIGNsYXNzIEpT
TGV4aWNhbEVudmlyb25tZW50OwpAQCAtNTQsNyArNTYsNyBAQCBjbGFzcyBXYXRjaHBvaW50U2V0
OwogCiBzdHJ1Y3QgQnlWYWxJbmZvOwogc3RydWN0IElubGluZUNhbGxGcmFtZTsKLXN0cnVjdCBS
ZXN1bHRQcm9maWxlOworc3RydWN0IEFyaXRoUHJvZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUg
Q2FsbEZyYW1lOwogCkBAIC02OSw2ICs3MSw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwog
ICAgIEE6IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJheUFsbG9jYXRpb25Qcm9maWxlKgogICAgIEFw
OiBBcnJheVByb2ZpbGUqCisgICAgQXJwOiBBcml0aFByb2ZpbGUqCiAgICAgQnk6IEJ5VmFsSW5m
byoKICAgICBDOiBKU0NlbGwqCiAgICAgQ2I6IENvZGVCbG9jayoKQEAgLTgxLDYgKzg0LDcgQEAg
dHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgSWNmOiBJbmxpbmVDYWxsRnJhbWUqCiAgICAg
SWRjOiBjb25zdCBJZGVudGlmaWVyKgogICAgIEo6IEVuY29kZWRKU1ZhbHVlCisgICAgSmFpYzog
SklUQWRkSUMqCiAgICAgSmNwOiBjb25zdCBKU1ZhbHVlKgogICAgIEpzYzogSlNTY29wZSoKICAg
ICBKc2Y6IEpTRnVuY3Rpb24qCkBAIC05Miw3ICs5Niw2IEBAIHR5cGVkZWYgY2hhciogVW51c2Vk
UHRyOwogICAgIFE6IGludDY0X3QKICAgICBSOiBSZWdpc3RlcgogICAgIFJlbzogUmVnRXhwT2Jq
ZWN0KgotICAgIFJwOiBSZXN1bHRQcm9maWxlKgogICAgIFM6IHNpemVfdAogICAgIFNwcnQ6IFNs
b3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0dXJlU3R1YkluZm8qCkBAIC0xMzMsNyAr
MTM2LDkgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSgogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9F
SkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbElu
Zm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0
aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpOwotdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9K
SVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgUmVzdWx0UHJvZmlsZSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJB
VElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQXJwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEFyaXRoUHJvZmlsZSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAo
SklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKQXJwSmFpYykoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopOwor
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpK
SmFpYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBKSVRBZGRJ
QyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRp
b25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3Rh
dGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAo
SklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNT
dHJpbmcqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopOwpAQCAtNDA4LDExICs0MTMsMTUgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZQogSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdHJpbmcoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiAKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
QXJpdGhQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxl
KiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmls
ZSosIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vT3B0
aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSop
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3Vi
UHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKikgV1RGX0lOVEVSTkFMOwogCiB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0No
aWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzNDYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSklU
U3ViR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKwogI2lmIEVOQUJM
RShKSVQpCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtODMsOCArODUsOCBAQCB2b2lkIEpJVFN1Ykdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgcmlnaHRXYXNJbnRlZ2VyLmxpbmsoJmpp
dCk7CiAKICAgICBqaXQuc3ViRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7Ci0gICAgaWYg
KG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91Ymxl
KGppdCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKQorICAgICAgICBtX2FyaXRoUHJvZmlsZS0+
ZW1pdFNldERvdWJsZShqaXQpOwogCiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVz
dWx0KTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0
b3IuaAkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dWJHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAg
ICAgSklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3Bl
cmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJl
Z3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJS
ZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKLSAgICAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIpCisgICAgICAgIEFyaXRo
UHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5k
KGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAg
ICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNo
R1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQotICAgICAgICAsIG1fcmVz
dWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAsIG1fYXJpdGhQcm9maWxlKGFyaXRo
UHJvZmlsZSkKICAgICB7IH0KIAogICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBl
cnMmKTsKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsK
ICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0gICAg
UmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogbV9hcml0
aFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAg
c3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRDYWxsVGFyZ2V0KENvZGVCbAogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLXN0YXRpYyB2b2lkIHJlcGF0Y2hDYWxsKENvZGVCbG9jayogY29kZUJsb2NrLCBD
b2RlTG9jYXRpb25DYWxsIGNhbGwsIEZ1bmN0aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKQordm9p
ZCBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVMb2Nh
dGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3Q2FsbGVlRnVuY3Rpb24pCiB7CiAjaWYgRU5B
QkxFKEZUTF9KSVQpCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkZU
TEpJVCkgewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlD
YWNoZUdldEJ5SUQKIAogICAgICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkQ29kZUlubGluZSA9
IElubGluZUFjY2Vzczo6Z2VuZXJhdGVBcnJheUxlbmd0aCgqY29kZUJsb2NrLT52bSgpLCBzdHVi
SW5mbywganNDYXN0PEpTQXJyYXkqPihiYXNlVmFsdWUpKTsKICAgICAgICAgICAgICAgICBpZiAo
Z2VuZXJhdGVkQ29kZUlubGluZSkgewotICAgICAgICAgICAgICAgICAgICByZXBhdGNoQ2FsbChj
b2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0
aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAgICAgICAgICAgICAgICAgIGZ0bFRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0
aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CiAgICAg
ICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRBcnJheUxlbmd0aCgpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAgICAgICAgIH0KQEAgLTIy
MCw3ICsyMjAsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlECiAg
ICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewogICAgICAgICAgICAgICAgIExP
R19JQygoSUNFdmVudDo6R2V0QnlJZFNlbGZQYXRjaCwgc3RydWN0dXJlLT5jbGFzc0luZm8oKSwg
cHJvcGVydHlOYW1lKSk7CiAgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5zdGFydFdhdGNoaW5n
UHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIHNsb3QuY2FjaGVkT2Zmc2V0KCkpOwotICAgICAg
ICAgICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9j
YXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAg
ICAgICAgICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5m
by5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVu
Y3Rpb24oa2luZCkpOwogICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRHZXRCeUlkU2VsZihj
b2RlQmxvY2ssIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgIH0KQEAgLTMxNCw3ICszMTQs
NyBAQCB2b2lkIHJlcGF0Y2hHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWCiAgICAgR0NTYWZl
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZXhlYy0+Y29kZUJsb2NrKCktPm1fbG9jaywgZXhl
Yy0+dm0oKS5oZWFwKTsKICAgICAKICAgICBpZiAodHJ5Q2FjaGVHZXRCeUlEKGV4ZWMsIGJhc2VW
YWx1ZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywga2luZCkgPT0gR2l2ZVVwT25DYWNo
ZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQ
YXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlR2VuZXJpY0dldEJ5SWRGdW5jdGlvbihraW5k
KSk7CisgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwg
c3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmljR2V0QnlJ
ZEZ1bmN0aW9uKGtpbmQpKTsKIH0KIAogc3RhdGljIFZfSklUT3BlcmF0aW9uX0VTc2lKSkkgYXBw
cm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKGNvbnN0IFB1dFByb3BlcnR5U2xvdCAmc2xv
dCwgUHV0S2luZCBwdXRLaW5kKQpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBJbmxpbmVDYWNo
ZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAgICAgICBib29sIGdlbmVyYXRlZENv
ZGVJbmxpbmUgPSBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2VsZlByb3BlcnR5UmVwbGFjZSh2bSwg
c3R1YkluZm8sIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGdlbmVyYXRlZENvZGVJbmxpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgTE9HX0lD
KChJQ0V2ZW50OjpQdXRCeUlkU2VsZlBhdGNoLCBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVu
dCkpOwotICAgICAgICAgICAgICAgICAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZv
LnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ1B1dEJ5SWRGdW5j
dGlvbihzbG90LCBwdXRLaW5kKSk7CisgICAgICAgICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVS
ZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFw
cHJvcHJpYXRlT3B0aW1pemluZ1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CiAgICAg
ICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRQdXRCeUlkUmVwbGFjZShjb2RlQmxvY2ssIHN0
cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDY4LDcgKzQ2OCw3IEBA
IHZvaWQgcmVwYXRjaFB1dEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICBHQ1NhZmVDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxvY2soKS0+bV9sb2NrLCBleGVjLT52
bSgpLmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNoZVB1dEJ5SUQoZXhlYywgYmFzZVZhbHVl
LCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIHB1dEtpbmQpID09IEdp
dmVVcE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVu
Y3Rpb24oc2xvdCwgcHV0S2luZCkpOworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwo
ZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJv
cHJpYXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CiB9CiAKIHN0YXRp
YyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlSZXBhdGNoSW4oCkBAIC01MjksNyArNTI5LDcgQEAgdm9p
ZCByZXBhdGNoSW4oCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUo
ZmFsc2UpOwogICAgIGlmICh0cnlSZXBhdGNoSW4oZXhlYywgYmFzZSwgaWRlbnQsIHdhc0ZvdW5k
LCBzbG90LCBzdHViSW5mbykgPT0gR2l2ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwo
ZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wZXJh
dGlvbkluKTsKKyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9j
aygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBvcGVyYXRpb25Jbik7CiB9CiAK
IHN0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKFZNKiwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8s
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2RlUmVmKQpAQCAtOTAxLDcgKzkwMSw3IEBAIHZvaWQg
bGlua1BvbHltb3JwaGljQ2FsbCgKIAogdm9pZCByZXNldEdldEJ5SUQoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgR2V0QnlJREtpbmQga2luZCkKIHsK
LSAgICByZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9u
KCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CisgICAgZnRs
VGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9j
YXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKICAg
ICBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoKmNvZGVCbG9jay0+dm0oKSwgc3R1Yklu
Zm8sIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKIH0KIApAQCAtOTIwLDcgKzky
MCw3IEBAIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayogY29kZUJsb2NrLCAKICAgICAgICAg
b3B0aW1pemVkRnVuY3Rpb24gPSBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1p
emU7CiAgICAgfQogCi0gICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0
aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRGdW5jdGlvbik7CisgICAgZnRsVGh1bmtBd2FyZVJl
cGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3B0
aW1pemVkRnVuY3Rpb24pOwogICAgIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCgqY29k
ZUJsb2NrLT52bSgpLCBzdHViSW5mbywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkp
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkocmV2aXNpb24gMjAz
NDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSos
IENhbAogdm9pZCByZXNldEdldEJ5SUQoQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mLCBH
ZXRCeUlES2luZCk7CiB2b2lkIHJlc2V0UHV0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyYpOwogdm9pZCByZXNldEluKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7Cit2
b2lkIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sqLCBDb2RlTG9jYXRpb25DYWxs
LCBGdW5jdGlvblB0ciBuZXdDYWxsZWVGdW5jdGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkocmV2aXNp
b24gMjAzNDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJMTEludERhdGEuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1
ZGUgIkJ5dGVjb2RlQ29udmVudGlvbnMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJDb2RlVHlwZS5oIgpAQCAtMjIzLDYgKzIyNCw0NyBAQCB2b2lkIERhdGE6OnBlcmZvcm1B
c3NlcnRpb25zKFZNJiB2bSkKICNlbmRpZgogCiAgICAgQVNTRVJUKFN0cmluZ0ltcGw6OnNfaGFz
aEZsYWc4Qml0QnVmZmVyID09IDgpOworCisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0g
MHgxMjAwMDA7CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAgICAgICAgQXJpdGhQcm9m
aWxlIGFyaXRoUHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nhd0ludDMyKCk7Cisg
ICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOworICAgICAgICBBU1NFUlQoYXJpdGhQ
cm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJv
bUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNT
RVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJ
bnQzMigpKTsKKyAgICB9CisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0gMHgyMjAwMDA7
CisgICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKKyAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRo
UHJvZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nhd051bWJlcigpOworICAgICAgICBh
cml0aFByb2ZpbGUucmhzU2F3SW50MzIoKTsKKyAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5i
aXRzKCkgPT0gYml0cyk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0
cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgICAgICBBU1NFUlQoQXJp
dGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkp
OworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDI0MDAwMDsKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxl
OworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVyKCk7CisgICAgICAgIGFyaXRoUHJv
ZmlsZS5yaHNTYXdOdW1iZXIoKTsKKyAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkg
PT0gYml0cyk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhz
T2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9m
aWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seU51bWJlcigpKTsKKyAg
ICB9CisgICAgeworICAgICAgICB1aW50MzJfdCBiaXRzID0gMHgxNDAwMDA7CisgICAgICAgIFVO
VVNFRF9QQVJBTShiaXRzKTsKKyAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKKyAg
ICAgICAgYXJpdGhQcm9maWxlLmxoc1Nhd0ludDMyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5y
aHNTYXdOdW1iZXIoKTsKKyAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0
cyk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2
ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZy
b21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgIH0KIH0K
ICNpZiBDT01QSUxFUihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAt
MTAxNCw2ICsxMDE0LDkgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0
aQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQwLCB0MiwgdDApCiAgICAgYmluZXEg
dDIsIEludDMyVGFnLCAub3AxTm90SW50CiAgICAgYmluZXEgdDMsIEludDMyVGFnLCAub3AyTm90
SW50CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1KQorICAgIG9yaSBBcml0aFByb2Zp
bGVJbnRJbnQsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDUsIDQpCiAgICAgbG9hZGkg
NFtQQ10sIHQyCiAgICAgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQzLCB0MSwgdDAsIC5zbG93
LCB0MikKICAgICBkaXNwYXRjaCg1KQpAQCAtMTAyMywxMCArMTAyNiwxNiBAQCBtYWNybyBiaW5h
cnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgYmlhIHQyLCBMb3dlc3RUYWcsIC5z
bG93CiAgICAgYmliIHQzLCBMb3dlc3RUYWcsIC5vcDFOb3RJbnRPcDJEb3VibGUKICAgICBiaW5l
cSB0MywgSW50MzJUYWcsIC5zbG93CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1KQor
ICAgIG9yaSBBcml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rp
b24odDUsIDQpCiAgICAgY2kyZCB0MSwgZnQxCiAgICAgam1wIC5vcDFOb3RJbnRSZWFkeQogLm9w
MU5vdEludE9wMkRvdWJsZToKICAgICBmaWkyZCB0MSwgdDMsIGZ0MQorICAgIGxvYWRpc0Zyb21J
bnN0cnVjdGlvbig0LCB0NSkKKyAgICBvcmkgQXJpdGhQcm9maWxlTnVtYmVyTnVtYmVyLCB0NQor
ICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQ1LCA0KQogLm9wMU5vdEludFJlYWR5OgogICAgIGxv
YWRpIDRbUENdLCB0MQogICAgIGZpaTJkIHQwLCB0MiwgZnQwCkBAIC0xMDM4LDYgKzEwNDcsOSBA
QCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgIyBGaXJzdCBv
cGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25kIG9wZXJhbmQgaXMgZGVmaW5p
dGVseSBub3QuCiAgICAgbG9hZGkgNFtQQ10sIHQyCiAgICAgYmlhIHQzLCBMb3dlc3RUYWcsIC5z
bG93CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1KQorICAgIG9yaSBBcml0aFByb2Zp
bGVJbnROdW1iZXIsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDUsIDQpCiAgICAgY2ky
ZCB0MCwgZnQwCiAgICAgZmlpMmQgdDEsIHQzLCBmdDEKICAgICBkb3VibGVPcGVyYXRpb24oZnQx
LCBmdDApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkK
QEAgLTg5Myw2ICs4OTMsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVy
YXRpCiAgICAgYnFiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50CiAgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDEsIHQyKQogICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAs
IC5zbG93LCB0MikKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDEpCisgICAgb3JpIEFy
aXRoUHJvZmlsZUludEludCwgdDEKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MSwgNCkKICAg
ICBkaXNwYXRjaCg1KQogCiAub3AxTm90SW50OgpAQCAtOTAyLDggKzkwNSwxNCBAQCBtYWNybyBi
aW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgYnRxeiB0MSwgdGFnVHlwZU51
bWJlciwgLnNsb3cKICAgICBhZGRxIHRhZ1R5cGVOdW1iZXIsIHQxCiAgICAgZnEyZCB0MSwgZnQx
CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQorICAgIG9yaSBBcml0aFByb2ZpbGVO
dW1iZXJOdW1iZXIsIHQyCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDIsIDQpCiAgICAgam1w
IC5vcDFOb3RJbnRSZWFkeQogLm9wMU5vdEludE9wMkludDoKKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oNCwgdDIpCisgICAgb3JpIEFyaXRoUHJvZmlsZU51bWJlckludCwgdDIKKyAgICBzdG9y
ZWlzVG9JbnN0cnVjdGlvbih0MiwgNCkKICAgICBjaTJkIHQxLCBmdDEKIC5vcDFOb3RJbnRSZWFk
eToKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCkBAIC05MTksNiArOTI4LDkgQEAg
bWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aQogICAgICMgRmlyc3Qgb3Bl
cmFuZCBpcyBkZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29uZCBpcyBkZWZpbml0ZWx5IG5vdC4K
ICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAgYnRxeiB0MSwgdGFnVHlwZU51
bWJlciwgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDMpCisgICAgb3JpIEFy
aXRoUHJvZmlsZUludE51bWJlciwgdDMKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0MywgNCkK
ICAgICBjaTJkIHQwLCBmdDAKICAgICBhZGRxIHRhZ1R5cGVOdW1iZXIsIHQxCiAgICAgZnEyZCB0
MSwgZnQxCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAyMDM0NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTI1
Miw2ICsyNTIsMTIgQEAgY29uc3QgSXNJbnZhbGlkYXRlZCA9IDIKICMgU2hhZG93Q2hpY2tlbiBk
YXRhCiBjb25zdCBTaGFkb3dDaGlja2VuVGFpbE1hcmtlciA9IDB4N2ExMQogCisjIEFyaXRoUHJv
ZmlsZSBkYXRhCitjb25zdCBBcml0aFByb2ZpbGVJbnRJbnQgPSAweDEyMDAwMAorY29uc3QgQXJp
dGhQcm9maWxlTnVtYmVySW50ID0gMHgyMjAwMDAKK2NvbnN0IEFyaXRoUHJvZmlsZU51bWJlck51
bWJlciA9IDB4MjQwMDAwCitjb25zdCBBcml0aFByb2ZpbGVJbnROdW1iZXIgPSAweDE0MDAwMAor
CiAjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMuCiBpZiBKU1ZBTFVFNjQKICAgICAjIC0gVXNl
IGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50IHRoZSBQQzogb25lIHJlZ2lzdGVyIGZv
ciB0aGUKQEAgLTI4Niw2ICsyOTIsMTAgQEAgaWYgSlNWQUxVRTY0CiAgICAgICAgIGxvYWRwIG9m
ZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAogICAgIGVuZAogICAgIAorICAgIG1hY3JvIHN0b3Jl
aXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCisgICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zm
c2V0ICogOFtQQiwgUEMsIDhdCisgICAgZW5kCisKICAgICBtYWNybyBzdG9yZXBUb0luc3RydWN0
aW9uKHZhbHVlLCBvZmZzZXQpCiAgICAgICAgIHN0b3JlcCB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwg
UEMsIDhdCiAgICAgZW5kCkBAIC0yOTksNiArMzA5LDEwIEBAIGVsc2UKICAgICBtYWNybyBsb2Fk
cEZyb21JbnN0cnVjdGlvbihvZmZzZXQsIGRlc3QpCiAgICAgICAgIGxvYWRwIG9mZnNldCAqIDRb
UENdLCBkZXN0CiAgICAgZW5kCisKKyAgICBtYWNybyBzdG9yZWlzVG9JbnN0cnVjdGlvbih2YWx1
ZSwgb2Zmc2V0KQorICAgICAgICBzdG9yZWkgdmFsdWUsIG9mZnNldCAqIDRbUENdCisgICAgZW5k
CiBlbmQKIAogaWYgWDg2XzY0X1dJTgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9SZXN1bHRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9SZXN1bHRUeXBlLmgJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUmVzdWx0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw0NiArMzIsNDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIHN0cnVjdCBPcGVy
YW5kVHlwZXM7CiAKLSAgICAgICAgdHlwZWRlZiBjaGFyIFR5cGU7CisgICAgICAgIHR5cGVkZWYg
dWludDhfdCBUeXBlOwogICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlSW50MzIgPSAxOwot
ICAgICAgICAKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVtYmVyID0gMHgw
NDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlU3RyaW5nID0gMHgwODsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVsbCAgID0gMHgxMDsKLSAgICAgICAg
c3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlQm9vbCAgID0gMHgyMDsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgVHlwZU1heWJlT3RoZXIgID0gMHg0MDsKKyAgICAgICAgc3RhdGljIGNvbnN0
IFR5cGUgVHlwZU1heWJlTnVtYmVyID0gMHgwMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUg
VHlwZU1heWJlU3RyaW5nID0gMHgwNDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1h
eWJlTnVsbCAgID0gMHgwODsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlQm9v
bCAgID0gMHgxMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlT3RoZXIgID0g
MHgyMDsKIAogICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlQml0cyA9IFR5cGVNYXliZU51
bWJlciB8IFR5cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZU51bGwgfCBUeXBlTWF5YmVCb29sIHwg
VHlwZU1heWJlT3RoZXI7CiAKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
bnVtQml0c05lZWRlZCA9IDY7CisgICAgICAgIHN0YXRpY19hc3NlcnQoKFR5cGVCaXRzICYgKCgx
IDw8IG51bUJpdHNOZWVkZWQpIC0gMSkpID09IFR5cGVCaXRzLCAiVGhpcyBpcyBuZWNlc3Nhcnkg
Zm9yIGNvcnJlY3RuZXNzLiIpOworCiAgICAgICAgIGV4cGxpY2l0IFJlc3VsdFR5cGUoVHlwZSB0
eXBlKQotICAgICAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAgICAgIDogbV9iaXRzKHR5
cGUpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgcHVibGljOgogICAgICAgICBib29sIGlz
SW50MzIoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV90eXBlICYgVHlw
ZUludDMyOworICAgICAgICAgICAgcmV0dXJuIG1fYml0cyAmIFR5cGVJbnQzMjsKICAgICAgICAg
fQogCiAgICAgICAgIGJvb2wgZGVmaW5pdGVseUlzTnVtYmVyKCkgY29uc3QKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlTnVtYmVy
OworICAgICAgICAgICAgcmV0dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlTnVt
YmVyOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBib29sIGRlZmluaXRlbHlJc1N0cmlu
ZygpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAobV90eXBlICYgVHlwZUJp
dHMpID09IFR5cGVNYXliZVN0cmluZzsKKyAgICAgICAgICAgIHJldHVybiAobV9iaXRzICYgVHlw
ZUJpdHMpID09IFR5cGVNYXliZVN0cmluZzsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgZGVm
aW5pdGVseUlzQm9vbGVhbigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAo
bV90eXBlICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7CisgICAgICAgICAgICByZXR1cm4g
KG1fYml0cyAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVCb29sOwogICAgICAgICB9CiAKICAgICAg
ICAgYm9vbCBtaWdodEJlTnVtYmVyKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIG1fdHlwZSAmIFR5cGVNYXliZU51bWJlcjsKKyAgICAgICAgICAgIHJldHVybiBtX2JpdHMg
JiBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KIAogICAgICAgICBib29sIGlzTm90TnVtYmVy
KCkgY29uc3QKQEAgLTE0MSw4ICsxNDMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gbnVtYmVyVHlwZUlzSW50MzIoKTsKICAgICAgICAgfQogCisgICAgICAgIFR5cGUg
Yml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
VHlwZSBtX3R5cGU7CisgICAgICAgIFR5cGUgbV9iaXRzOwogICAgIH07CiAgICAgCiAgICAgc3Ry
dWN0IE9wZXJhbmRUeXBlcwpAQCAtMTUyLDggKzE1Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgLy8gV2UgaGF2ZSB0byBpbml0aWFsaXplIG9uZSBvZiB0aGUgaW50IHRvIGVuc3Vy
ZSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgZW50aXJlIHN0cnVjdCBpcyBpbml0aWFsaXplZC4K
ICAgICAgICAgICAgIG1fdS5pID0gMDsKLSAgICAgICAgICAgIG1fdS5yZHMuZmlyc3QgPSBmaXJz
dC5tX3R5cGU7Ci0gICAgICAgICAgICBtX3UucmRzLnNlY29uZCA9IHNlY29uZC5tX3R5cGU7Cisg
ICAgICAgICAgICBtX3UucmRzLmZpcnN0ID0gZmlyc3QubV9iaXRzOworICAgICAgICAgICAgbV91
LnJkcy5zZWNvbmQgPSBzZWNvbmQubV9iaXRzOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICB1bmlvbiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMu
aCIKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIK
QEAgLTM1OSwyMiArMzYwLDIxIEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZWdhdGUpCiB9
CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLXN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVG
b3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBKU1ZhbHVl
IHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBKU1ZhbHVlIHJpZ2h0KQorc3RhdGljIHZvaWQgdXBkYXRl
QXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9u
KiBwYywgSlNWYWx1ZSByZXN1bHQsIEpTVmFsdWUgbGVmdCwgSlNWYWx1ZSByaWdodCkKIHsKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwotICAgIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0ID0gY29kZUJsb2NrLT5ieXRlY29kZU9mZnNldChwYyk7Ci0gICAgUmVz
dWx0UHJvZmlsZSogcHJvZmlsZSA9IGNvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShieXRl
Y29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxlJiBwcm9maWxlID0gY29kZUJsb2NrLT5hcml0
aFByb2ZpbGVGb3JQQyhwYyk7CiAKICAgICBpZiAocmVzdWx0LmlzTnVtYmVyKCkpIHsKICAgICAg
ICAgaWYgKCFyZXN1bHQuaXNJbnQzMigpKSB7CiAgICAgICAgICAgICBpZiAobGVmdC5pc0ludDMy
KCkgJiYgcmlnaHQuaXNJbnQzMigpKQotICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2Vy
dmVkSW50MzJPdmVyZmxvdygpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWRJ
bnQzMk92ZXJmbG93KCk7CiAKICAgICAgICAgICAgIGRvdWJsZSBkb3VibGVWYWwgPSByZXN1bHQu
YXNOdW1iZXIoKTsKICAgICAgICAgICAgIGlmICghZG91YmxlVmFsICYmIHN0ZDo6c2lnbmJpdChk
b3VibGVWYWwpKQotICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTmVnWmVyb0Rv
dWJsZSgpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWROZWdaZXJvRG91Ymxl
KCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNl
cnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLnNldE9ic2Vy
dmVkTm9uTmVnWmVyb0RvdWJsZSgpOwogCiAgICAgICAgICAgICAgICAgLy8gVGhlIEludDUyIG92
ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxp
ZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KICAgICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdl
IHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRpdmUgaWYgdGhlIHJlc3VsdCBpcyB0aGF0IHZhbHVlLiBU
aGlzIGlzIGludGVudGlvbmFsbHkKQEAgLTM4MiwxNCArMzgyLDE0IEBAIHN0YXRpYyB2b2lkIHVw
ZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnkKICAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qg
aW50NjRfdCBpbnQ1Mk92ZXJmbG93UG9pbnQgPSAoMWxsIDw8IDUxKTsKICAgICAgICAgICAgICAg
ICBpbnQ2NF90IGludDY0VmFsID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjphYnMoZG91Ymxl
VmFsKSk7CiAgICAgICAgICAgICAgICAgaWYgKGludDY0VmFsID49IGludDUyT3ZlcmZsb3dQb2lu
dCkKLSAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93
KCk7CisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWRJbnQ1Mk92ZXJmbG93
KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgcHJvZmls
ZS0+c2V0T2JzZXJ2ZWROb25OdW1iZXIoKTsKKyAgICAgICAgcHJvZmlsZS5zZXRPYnNlcnZlZE5v
bk51bWJlcigpOwogfQogI2Vsc2UKLXN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JC
aW5hcnlBcml0aE9wKEV4ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgSlNWYWx1ZSwgSlNWYWx1ZSwg
SlNWYWx1ZSkgeyB9CitzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0
aE9wKEV4ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSkg
eyB9CiAjZW5kaWYKIAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RvX251bWJlcikKQEAgLTQw
Nyw2ICs0MDcsOSBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfYWRkKQogICAgIEpTVmFsdWUg
djIgPSBPUF9DKDMpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHJlc3VsdDsKIAorICAgIEFyaXRo
UHJvZmlsZSYgYXJpdGhQcm9maWxlID0gZXhlYy0+Y29kZUJsb2NrKCktPmFyaXRoUHJvZmlsZUZv
clBDKHBjKTsKKyAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZUxIU0FuZFJIUyh2MSwgdjIpOworCiAg
ICAgaWYgKHYxLmlzU3RyaW5nKCkgJiYgIXYyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJlc3VsdCA9
IGpzU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKHYxKSwgdjIudG9TdHJpbmcoZXhlYykpOwogICAgIGVs
c2UgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkKQEAgLTQxNSw3ICs0MTgsNyBA
QCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfYWRkKQogICAgICAgICByZXN1bHQgPSBqc0FkZFNs
b3dDYXNlKGV4ZWMsIHYxLCB2Mik7CiAKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0
LCB7Ci0gICAgICAgIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBj
LCByZXN1bHQsIHYxLCB2Mik7CisgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFy
aXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgdjEsIHYyKTsKICAgICB9KTsKIH0KIApAQCAtNDMyLDcg
KzQzNSw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9tdWwpCiAgICAgZG91YmxlIGIgPSBy
aWdodC50b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBi
KTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgIHVwZGF0ZVJl
c3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0
KTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywg
cmVzdWx0LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ0NSw3ICs0NDgsNyBAQCBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfc3ViKQogICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1i
ZXIoZXhlYyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC0gYik7CiAgICAgUkVU
VVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1bHRQcm9maWxl
Rm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAg
IHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVm
dCwgcmlnaHQpOwogICAgIH0pOwogfQogCkBAIC00NTgsNyArNDYxLDcgQEAgU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2RpdikKICAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAvIGIpOwogICAgIFJFVFVSTl9XSVRIX1BS
T0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFy
aXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAgICB1cGRhdGVBcml0
aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsK
ICAgICB9KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9v
cC1hZGQtZXhjZXB0aW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL29wLWFkZC1leGNlcHRpb25zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcC1hZGQtZXhjZXB0aW9ucy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACitmdW5jdGlvbiBhc3NlcnQoYikgeworICAgIGlmICgh
YikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIik7Cit9Citub0lubGluZShhc3NlcnQp
OworCitmdW5jdGlvbiBmMSgpIHsgcmV0dXJuICJmMSI7IH0KK25vSW5saW5lKGYxKTsKK2Z1bmN0
aW9uIGYyKCkgeyByZXR1cm4gImYyIjsgfQorbm9JbmxpbmUoZjIpOworZnVuY3Rpb24gZjMoKSB7
IHJldHVybiAiZjMiOyB9Citub0lubGluZShmMyk7CisKK2xldCBvRXhjZXB0aW9uID0geworICAg
IHZhbHVlT2YoKSB7IHRocm93IG5ldyBFcnJvcigiIik7IH0KK307CisKK2Z1bmN0aW9uIGZvbyhh
cmcxLCBhcmcyKSB7CisgICAgbGV0IGEgPSBmMSgpOworICAgIGxldCBiID0gZjIoKTsKKyAgICBs
ZXQgYyA9IGYzKCk7CisgICAgdHJ5IHsKKyAgICAgICAgYXJnMSArIGFyZzI7CisgICAgfSBjYXRj
aChlKSB7CisgICAgICAgIGFzc2VydChhcmcxID09PSBvRXhjZXB0aW9uKTsKKyAgICAgICAgYXNz
ZXJ0KGFyZzIgPT09IG9FeGNlcHRpb24pOworICAgIH0KKyAgICBhc3NlcnQoYSA9PT0gImYxIik7
CisgICAgYXNzZXJ0KGIgPT09ICJmMiIpOworICAgIGFzc2VydChjID09PSAiZjMiKTsKK30KK25v
SW5saW5lKGZvbyk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CisgICAgZm9v
KGksIHt9KTsKKyAgICBmb28oe30sIGkpOworfQorZm9vKG9FeGNlcHRpb24sIG9FeGNlcHRpb24p
OworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgZm9vKGksIHt9KTsKKyAg
ICBmb28oe30sIGkpOworfQorZm9vKG9FeGNlcHRpb24sIG9FeGNlcHRpb24pOworCisKK2Z1bmN0
aW9uIGlkZW50KHgpIHsgcmV0dXJuIHg7IH0KK25vSW5saW5lKGlkZW50KTsKKworZnVuY3Rpb24g
YmFyKGFyZzEsIGFyZzIpIHsKKyAgICBsZXQgYSA9IGYxKCk7CisgICAgbGV0IGIgPSBmMigpOwor
ICAgIGxldCBjID0gZjMoKTsKKyAgICBsZXQgeCA9IGlkZW50KGFyZzEpOworICAgIGxldCB5ID0g
aWRlbnQoYXJnMik7CisKKyAgICB0cnkgeworICAgICAgICBhcmcxICsgYXJnMjsKKyAgICB9IGNh
dGNoKGUpIHsKKyAgICAgICAgYXNzZXJ0KGFyZzEgPT09IG9FeGNlcHRpb24pOworICAgICAgICBh
c3NlcnQoYXJnMiA9PT0gb0V4Y2VwdGlvbik7CisgICAgICAgIGFzc2VydCh4ID09PSBvRXhjZXB0
aW9uKTsKKyAgICAgICAgYXNzZXJ0KHkgPT09IG9FeGNlcHRpb24pOworICAgIH0KKyAgICBhc3Nl
cnQoYSA9PT0gImYxIik7CisgICAgYXNzZXJ0KGIgPT09ICJmMiIpOworICAgIGFzc2VydChjID09
PSAiZjMiKTsKK30KK25vSW5saW5lKGJhcik7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsg
aSsrKSB7CisgICAgYmFyKGksIHt9KTsKKyAgICBiYXIoe30sIGkpOworfQorYmFyKG9FeGNlcHRp
b24sIG9FeGNlcHRpb24pOworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAg
YmFyKGksIHt9KTsKKyAgICBiYXIoe30sIGkpOworfQorYmFyKG9FeGNlcHRpb24sIG9FeGNlcHRp
b24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNDYxKQorKysgU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDctMjAgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgb3BfYWRkL1ZhbHVlQWRk
IHNob3VsZCBiZSBhbiBJQyBpbiBhbGwgSklUIHRpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBC
ZW5qYW1pbiBQb3VsYWluLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaml0L0pJVE1h
dGhJQ0ZvcndhcmRzLmg6IEFkZGVkLgorCiAyMDE2LTA3LTIwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbi5zZXRQcm9wZXJ0eSgp
IHNob3VsZCBiZSBhYmxlIHRvIHVuc2V0ICJpbXBvcnRhbnQiIG9uIGEgcHJvcGVydHkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRN
YXRoSUNGb3J3YXJkcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pJVE1hdGhJQ0ZvcndhcmRzX2gKKyNkZWZpbmUg
V2ViQ29yZV9GV0RfSklUTWF0aElDRm9yd2FyZHNfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pJVE1hdGhJQ0ZvcndhcmRzLmg+CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284277</attachid>
            <date>2016-07-21 16:06:28 -0700</date>
            <delta_ts>2016-07-21 16:06:28 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>164361</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzNTM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5MCBA
QAorMjAxNi0wNy0yMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgVGhpcyBwYXRjaCBt
YWtlcyBBZGQgYW4gSUMgaW5zaWRlIGFsbCBKSVQgdGllcnMuIEl0IGRvZXMgc28gaW4gYQorICAg
ICAgICBzaW1wbGUsIGJ1dCBlZmZlY3RpdmUsIHdheS4gV2Ugd2lsbCB0cnkgdG8gZ2VuZXJhdGUg
YW4gaW50K2ludCBhZGQKKyAgICAgICAgdGhhdCB3aWxsIHJlcGF0Y2ggaXRzZWxmIGlmIGl0cyB0
eXBlIGNoZWNrcyBmYWlsLiBTb21ldGltZXMgdGhvdWdoLAorICAgICAgICB3ZSBoYXZlIHJ1bnRp
bWUgdHlwZSBkYXRhIHNheWluZyB0aGF0IHRoZSBhZGQgd29uJ3QgYmUgaW50K2ludC4KKyAgICAg
ICAgSW4gdGhvc2UgY2FzZXMsIHdlIHdpbGwganVzdCBnZW5lcmF0ZSBhIGZ1bGwgc25pcHBldCB0
aGF0IGRvZXNuJ3QgcGF0Y2ggaXRzZWxmLgorICAgICAgICBPdGhlciB0aW1lcywgd2UgbWF5IGdl
bmVyYXRlIG5vIGlubGluZSBjb2RlIGFuZCBkZWZlciB0byBtYWtpbmcgYSBDIGNhbGwuIEEgbG90
CisgICAgICAgIG9mIHRoaXMgcGF0Y2ggaXMganVzdCByZWZhY3RvcmluZyBSZXN1bHRQcm9maWxl
IGludG8gd2hhdCB3ZSdyZSBub3cgY2FsbGluZyBBcml0aFByb2ZpbGUuCisgICAgICAgIEFyaXRo
UHJvZmlsZSBkb2VzIGV2ZXJ5dGhpbmcgUmVzdWx0UHJvZmlsZSB1c2VkIHRvIGRvLCBhbmQgbW9y
ZS4gSXQgcmVjb3JkcyBzaW1wbGUgdHlwZQorICAgICAgICBkYXRhIGFib3V0IHRoZSBMSFMvUkhT
IG9wZXJhbmRzIGl0IHNlZXMuIFRoaXMgYWxsb3dzIHVzIHRvIGRldGVybWluZSBpZiBhbiBvcF9h
ZGQKKyAgICAgICAgaGFzIG9ubHkgc2VlbiBpbnQraW50IG9wZXJhbmRzLCBldGMuIEFyaXRoUHJv
ZmlsZSB3aWxsIGFsc28gY29udGFpbiB0aGUgUmVzdWx0VHlwZQorICAgICAgICBmb3IgdGhlIExI
Uy9SSFMgdGhhdCB0aGUgcGFyc2VyIGZlZWRzIGludG8gb3BfYWRkLiBBcml0aFByb2ZpbGUgbm93
IGZpdHMgaW50byAzMi1iaXRzLgorICAgICAgICBUaGlzIG1lYW5zIGluc3RlYWQgb2YgaGF2aW5n
IGEgc2lkZSB0YWJsZSBsaWtlIHdlIGRpZCBmb3IgUmVzdWx0UHJvZmlsZSwgd2UganVzdAorICAg
ICAgICBpbmplY3QgdGhlIEFyaXRoUHJvZmlsZSBpbnRvIHRoZSBieXRlY29kZSBpbnN0cnVjdGlv
biBzdHJlYW0uIFRoaXMgbWFrZXMgYXNraW5nCisgICAgICAgIGZvciBBcml0aFByb2ZpbGUgZmFz
dGVyOyB3ZSBubyBsb25nZXIgbmVlZCB0byBsb2NrIGFyb3VuZCB0aGlzIG9wZXJhdGlvbi4KKwor
ICAgICAgICBUaGUgc2l6ZSBvZiBhbiBBZGQgaGFzIGdvbmUgZG93biBvbiBhdmVyYWdlLCBidXQg
d2UgY2FuIHN0aWxsIGRvIGJldHRlci4KKyAgICAgICAgV2Ugc3RpbGwgZ2VuZXJhdGUgYSBsb3Qg
b2YgY29kZSBiZWNhdXNlIHdlIGdlbmVyYXRlIGNhbGxzIHRvIHRoZSBzbG93IHBhdGguCisgICAg
ICAgIEkgdGhpbmsgd2UgY2FuIG1ha2UgdGhpcyBiZXR0ZXIgYnkgbW92aW5nIHRoZSBzbG93IHBh
dGggdG8gYSBzaGFyZWQgdGh1bmsKKyAgICAgICAgc3lzdGVtLiBUaGlzIHBhdGNoIG1vc3RseSBs
YXlzIHRoZSBmb3VuZGF0aW9uIGZvciBmdXR1cmUgaW1wcm92ZW1lbnRzIHRvIEFkZCwKKyAgICAg
ICAgYW5kIGEgZnJhbWV3b3JrIHRvIG1vdmUgYWxsIG90aGVyIGFyaXRobWV0aWMgb3BlcmF0aW9u
cyB0byBiZSB0eXBlZC1iYXNlZCBJQ3MuCisKKyAgICAgICAgSGVyZSBpcyBzb21lIGRhdGEgSSB0
b29rIG9uIHRoZSBhdmVyYWdlIG9wX2FkZC9WYWx1ZUFkZCBzaXplIG9uIHZhcmlvdXMgYmVuY2ht
YXJrczoKKyAgICAgICAgICAgICAgICAgICB8ICAgSmV0U3RyZWFtICB8ICBTcGVlZG9tZXRlciB8
ICBVbml0eSAzRCAgfAorICAgICAgICAgICAgIC0tLS0tLXwgLS0tLS0tLS0tLS0tLXwtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBPbGQgIHwgIDE4OSBieXRlcyAg
IHwgIDE2OSBieXRlcyAgIHwgIDE5MiBieXRlcyB8CisgICAgICAgICAgICAgLS0tLS0tfCAtLS0t
LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIE5l
dyAgfCAgMTQ4IGJ5dGVzICAgfCAgMTI0IGJ5dGVzICAgfCAgMTQzIGJ5dGVzIHwKKyAgICAgICAg
ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgICAgICBNYWtpbmcgYW4gYXJpdGhtZXRpYyBJQyBpcyBub3cgZWFzeS4gVGhlIEpJVE1h
dGhJQyBjbGFzcyB3aWxsIGhvbGQgYSBzbmlwcGV0CisgICAgICAgIGdlbmVyYXRvciBhcyBhIG1l
bWJlciB2YXJpYWJsZS4gVG8gbWFrZSBhIHNuaXBwZXQgYW4gSUMsIHlvdSBuZWVkIHRvIGltcGxl
bWVudAorICAgICAgICBhIGdlbmVyYXRlSW5saW5lKC4pIG1ldGhvZCwgd2hpY2ggZ2VuZXJhdGVz
IHRoZSBpbmxpbmUgSUMuIFRoZW4sIHlvdSBuZWVkIHRvCisgICAgICAgIGdlbmVyYXRlIHRoZSBJ
QyB3aGVyZSB5b3UgdXNlZCB0byBnZW5lcmF0ZSB0aGUgc25pcHBldC4gV2hlbiBnZW5lcmF0aW5n
IHRoZQorICAgICAgICBJQywgd2UgbmVlZCB0byBpbmZvcm0gSklUTWF0aElDIG9mIHZhcmlvdXMg
ZGF0YSBsaWtlIHdlIGRvIHdpdGggU3RydWN0dXJlU3R1YkluZm8uCisgICAgICAgIFdlIG5lZWQg
dG8gdGVsbCBpdCBhYm91dCB3aGVyZSB0aGUgc2xvdyBwYXRoIHN0YXJ0cywgd2hlcmUgdGhlIHNs
b3cgcGF0aCBjYWxsIGlzLCBldGMuCisgICAgICAgIFdoZW4gZ2VuZXJhdGluZyBhIEpJVE1hdGhJ
QywgaXQgbWF5IHRlbGwgeW91IHRoYXQgaXQgZGlkbid0IGdlbmVyYXRlIGFueSBjb2RlIGlubGlu
ZS4KKyAgICAgICAgVGhpcyBpcyBhIHJlcXVlc3QgdG8gdGhlIHVzZXIgb2YgSklUTWF0aElDIHRv
IGp1c3QgZ2VuZXJhdGUgYSBDIGNhbGwgYWxvbmcgdGhlCisgICAgICAgIGZhc3QgcGF0aC4gSklU
TWF0aElDIG1heSBhbHNvIGhhdmUgdGhlIHNuaXBwZXQgdGVsbCBpdCB0byBqdXN0IGdlbmVyYXRl
IHRoZSBmdWxsCisgICAgICAgIHNuaXBwZXQgaW5zdGVhZCBvZiB0aGUgaW50K2ludCBwYXRoIGFs
b25nIHRoZSBmYXN0IHBhdGguCisKKyAgICAgICAgSW4gc3Vic2VxdWVudCBwYXRjaGVzLCB3ZSBj
YW4gaW1wcm92ZSB1cG9uIGhvdyB3ZSBkZWNpZGUgdG8gZ2VuZXJhdGUgaW50K2ludCBvcgorICAg
ICAgICB0aGUgZnVsbCBzbmlwcGV0LiBJIHRyaWVkIHRvIGdldCBjbGV2ZXIgYnkgaGF2aW5nIGRv
dWJsZStkb3VibGUsIGRvdWJsZStpbnQsIGludCtkb3VibGUsCisgICAgICAgIGZhc3QgcGF0aHMs
IGJ1dCB0aGV5IGRpZG4ndCB3b3JrIG91dCBuZWFybHkgYXMgd2VsbCBhcyB0aGUgaW50K2ludCBm
YXN0IHBhdGguIEkgZW5kZWQgdXAKKyAgICAgICAgZ2VuZXJhdGluZyBhIGxvdCBvZiBjb2RlIHdo
ZW4gSSBkaWQgdGhpcyBhbmQgZW5kZWQgdXAgdXNpbmcgbW9yZSBtZW1vcnkgdGhhbiBqdXN0IGdl
bmVyYXRpbmcKKyAgICAgICAgdGhlIGZ1bGwgc25pcHBldC4gVGhlcmUgaXMgcHJvYmFibHkgc29t
ZSB3YXkgd2UgY2FuIGJlIGNsZXZlciBhbmQgZ2VuZXJhdGUgc3BlY2lhbGl6ZWQgZmFzdAorICAg
ICAgICBwYXRocyB0aGF0IGFyZSBtb3JlIHN1Y2Nlc3NmdWwgdGhhbiB3aGF0IEkgdHJpZWQgaW1w
bGVtZW50aW5nLCBidXQgSSB0aGluayB0aGF0J3Mgd29ydGggZGVmZXJyaW5nCisgICAgICAgIHRo
aXMgdG8gZm9sbG93IHVwIHBhdGNoZXMgb25jZSB0aGUgSklUTWF0aElDIGZvdW5kYXRpb24gaGFz
IGxhbmRlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgYSBidWcgaW5zaWRlIHRo
ZSBzbG93IHBhdGggbGFtYmRhcyBpbiB0aGUgREZHLgorICAgICAgICBCZWZvcmUsIGl0IHdhcyBu
b3QgbGVnYWwgdG8gZW1pdCBhbiBleGNlcHRpb24gY2hlY2sgaW5zaWRlIHRoZW0uIE5vdywKKyAg
ICAgICAgaXQgaXMuIFNvIGl0J3Mgbm93IGVhc3kgdG8gZGVmaW5lIGFyYml0cmFyeSBsYXRlIHBh
dGhzIHVzaW5nIHRoZSBERkcKKyAgICAgICAgc2xvdyBwYXRoIGxhbWJkYSBBUEkuCisKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcDog
QWRkZWQuCisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZW1pdE9ic2VydmVSZXN1bHQpOgor
ICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNob3VsZEVtaXRTZXREb3VibGUpOgorICAgICAg
ICAoSlNDOjpBcml0aFByb2ZpbGU6OmVtaXRTZXREb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0
aFByb2ZpbGU6OnNob3VsZEVtaXRTZXROb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFBy
b2ZpbGU6OmVtaXRTZXROb25OdW1iZXIpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToK
KyAgICAgICAgKiBieXRlY29kZS9Bcml0aFByb2ZpbGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6
Ok9ic2VydmVkVHlwZTo6T2JzZXJ2ZWRUeXBlKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBl
OjpzYXdJbnQzMik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNPbmx5SW50MzIpOgor
ICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OnNhd051bWJlcik6CisgICAgICAgIChKU0M6Ok9i
c2VydmVkVHlwZTo6aXNPbmx5TnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpz
YXdOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzT25seU5vbk51bWJl
cik6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6aXNFbXB0eSk6CisgICAgICAgIChKU0M6
Ok9ic2VydmVkVHlwZTo6Yml0cyk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6d2l0aElu
dDMyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRoTnVtYmVyKToKKyAgICAgICAg
KEpTQzo6T2JzZXJ2ZWRUeXBlOjp3aXRoTm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2
ZWRUeXBlOjp3aXRob3V0Tm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjpv
cGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpBcml0aFByb2ZpbGUpOgor
ICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmZyb21JbnQpOgorICAgICAgICAoSlNDOjpBcml0
aFByb2ZpbGU6Omxoc1Jlc3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnJo
c1Jlc3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc09ic2VydmVkVHlw
ZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6cmhzT2JzZXJ2ZWRUeXBlKToKKyAgICAg
ICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRMaHNPYnNlcnZlZFR5cGUpOgorICAgICAgICAoSlND
OjpBcml0aFByb2ZpbGU6OnNldFJoc09ic2VydmVkVHlwZSk6CisgICAgICAgIChKU0M6OkFyaXRo
UHJvZmlsZTo6dG9va1NwZWNpYWxGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmls
ZTo6ZGlkT2JzZXJ2ZU5vbkludDMyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRP
YnNlcnZlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlTm9u
TmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6ZGlkT2JzZXJ2ZU5l
Z1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVOb25O
dW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpkaWRPYnNlcnZlSW50NTJPdmVyZmxv
dyk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91
YmxlKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9Eb3Vi
bGUpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkTm9uTnVtYmVyKToK
KyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3cpOgor
ICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldE9ic2VydmVkSW50NTJPdmVyZmxvdyk6Cisg
ICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6YWRkcmVzc09mQml0cyk6CisgICAgICAgIChKU0M6
OkFyaXRoUHJvZmlsZTo6b2JzZXJ2ZVJlc3VsdCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmls
ZTo6bGhzU2F3SW50MzIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Omxoc1Nhd051bWJl
cik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzU2F3Tm9uTnVtYmVyKToKKyAgICAg
ICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNTYXdJbnQzMik6CisgICAgICAgIChKU0M6OkFyaXRo
UHJvZmlsZTo6cmhzU2F3TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNT
YXdOb25OdW1iZXIpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Om9ic2VydmVMSFNBbmRS
SFMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmJpdHMpOgorICAgICAgICAoSlNDOjpB
cml0aFByb2ZpbGU6Omhhc0JpdHMpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OnNldEJp
dCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpk
dW1wQXJpdGhQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUp
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjphZGRKSVRBZGRJQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluZFN0
dWJJbmZvKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXNldEpJVERhdGEpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
OjpkdW1wVmFsdWVQcm9maWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmFyZUNhc2VQ
cm9maWxlQ291bnRGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OmFyaXRoUHJvZmlsZUZvclBDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjb3VsZFRha2VT
cGVjaWFsRmFzdENhc2UpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBSZXN1bHRQcm9m
aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyZXN1bHRQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNwZWNp
YWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjplbnN1cmVSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHVi
SW5mb0JlZ2luKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHViSW5mb0VuZCk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6Y291bGRUYWtlU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6Om51bWJlck9mUmVzdWx0UHJvZmlsZXMpOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAq
IGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6
UmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdE51bWVyaWNuZXNzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6Z2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVEb3VibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZlTm9uTmVnWmVy
b0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6
ZGlkT2JzZXJ2ZU5vbk51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVz
dWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk51
bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNl
dE9ic2VydmVkSW50NTJPdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlc3VsdFBy
b2ZpbGU6OmFkZHJlc3NPZkZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVzdWx0UHJv
ZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291bnQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3ROdW1lcmljbmVzcyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlc3VsdFByb2ZpbGU6Omhhc0JpdHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzZXRCaXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZXRSZXN1bHRQ
cm9maWxlQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0QmluYXJ5T3ApOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAgKiBkZmcv
REZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjptZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlRm9yKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGNlcHRpb25DaGVjayk6CisgICAgICAgICog
ZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2xvd1BhdGhH
ZW5lcmF0b3I6OmdlbmVyYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJh
dG9ycyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFk
ZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVWYWx1ZUFkZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVTdHJDYXQpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoK
KyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUp
OgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAg
KiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVEFkZEdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVJbmxpbmUpOgorICAgICAgICAoSlNDOjpK
SVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAqIGppdC9KSVRBZGRH
ZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpKSVRBZGRHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmRpZEVtaXRGYXN0UGF0aCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkpJVEFkZEdlbmVyYXRvcjo6ZW5kSnVtcExpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcExpc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2psZXNzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF91cnNo
aWZ0KToKKyAgICAgICAgKEpTQzo6Z2V0T3BlcmFuZFR5cGVzKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfYWRkKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211bCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3N1
Yik6CisgICAgICAgICogaml0L0pJVERpdkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJ
VERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVERpdkdl
bmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVREaXZHZW5lcmF0b3I6OkpJVERpdkdlbmVyYXRv
cik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjpjYWxs
T3BlcmF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUTWF0aElDLmg6IEFkZGVkLgorICAgICAgICAo
SlNDOjpKSVRNYXRoSUM6OmRvbmVMb2NhdGlvbik6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6
c2xvd1BhdGhTdGFydExvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6SklUTWF0aElDOjpzbG93UGF0
aENhbGxMb2NhdGlvbik6CisgICAgICAgIChKU0M6OkpJVE1hdGhJQzo6Z2VuZXJhdGVJbmxpbmUp
OgorICAgICAgICAoSlNDOjpKSVRNYXRoSUM6OmdlbmVyYXRlT3V0T2ZMaW5lKToKKyAgICAgICAg
KEpTQzo6SklUTWF0aElDOjpmaW5hbGl6ZUlubGluZUNvZGUpOgorICAgICAgICAqIGppdC9KSVRN
YXRoSUNGb3J3YXJkcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvSklUTWF0aElDSW5saW5lUmVz
dWx0Lmg6IEFkZGVkLgorICAgICAgICAqIGppdC9KSVRNdWxHZW5lcmF0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAqIGpp
dC9KSVRNdWxHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUTXVsR2VuZXJhdG9yOjpKSVRN
dWxHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9KSVRTdWJHZW5lcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAg
ICAgICAqIGppdC9KSVRTdWJHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUU3ViR2VuZXJh
dG9yOjpKSVRTdWJHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAg
ICAgKEpTQzo6cmVhZENhbGxUYXJnZXQpOgorICAgICAgICAoSlNDOjpmdGxUaHVua0F3YXJlUmVw
YXRjaENhbGwpOgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAoSlND
OjpyZXBhdGNoR2V0QnlJRCk6CisgICAgICAgIChKU0M6OmFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5
SWRGdW5jdGlvbik6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAgIChK
U0M6OnJlcGF0Y2hQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6dHJ5UmVwYXRjaEluKToKKyAgICAg
ICAgKEpTQzo6cmVwYXRjaEluKToKKyAgICAgICAgKEpTQzo6bGlua1Nsb3dGb3IpOgorICAgICAg
ICAoSlNDOjpyZXNldEdldEJ5SUQpOgorICAgICAgICAoSlNDOjpyZXNldFB1dEJ5SUQpOgorICAg
ICAgICAoSlNDOjpyZXBhdGNoQ2FsbCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L1JlcGF0Y2gu
aDoKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6
RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBw
YXJzZXIvUmVzdWx0VHlwZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpSZXN1bHRUeXBl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNJbnQzMik6CisgICAgICAgIChKU0M6OlJl
c3VsdFR5cGU6OmRlZmluaXRlbHlJc051bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6
OmRlZmluaXRlbHlJc1N0cmluZyk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmRlZmluaXRl
bHlJc0Jvb2xlYW4pOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjptaWdodEJlTnVtYmVyKToK
KyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNOb3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRUeXBlOjpmb3JCaXRPcCk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OmJpdHMpOgor
ICAgICAgICAoSlNDOjpPcGVyYW5kVHlwZXM6Ok9wZXJhbmRUeXBlcyk6CisgICAgICAgICogcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6
CisgICAgICAgIChKU0M6OnVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3ApOgorICAg
ICAgICAoSlNDOjp1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcCk6IERlbGV0ZWQu
CisgICAgICAgICogdGVzdHMvc3RyZXNzL29wLWFkZC1leGNlcHRpb25zLmpzOiBBZGRlZC4KKyAg
ICAgICAgKGFzc2VydCk6CisgICAgICAgIChmMSk6CisgICAgICAgIChmMik6CisgICAgICAgIChm
Myk6CisgICAgICAgIChsZXQub0V4Y2VwdGlvbi52YWx1ZU9mKToKKyAgICAgICAgKGZvbyk6Cisg
ICAgICAgIChpZGVudCk6CisgICAgICAgIChiYXIpOgorCiAyMDE2LTA3LTIxICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2xhcmlmeSB0ZXN0aW5nIG1v
ZGUgbmFtZXMgaW4gcnVuLWpzYy1zdHJlc3MtdGVzdHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDYgKzE3Niw3IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVDcmVh
dG9yLmNwcAogCiAgICAgYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRj
aHBvaW50QmFzZS5jcHAKKyAgICBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNv
ZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAKICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUu
Y3BwCiAgICAgYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjc5LDE2ICsxMjc5LDIxIEBACiAJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAv
KiBJbmxpbmVBY2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OTE2MERCRDFDOEUz
RUM4MDA4QzA4NUEgLyogUHJveHlSZXZva2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzkxNjBEQkIxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2
b2tlLmNwcCAqLzsgfTsKIAkJNzkxNjBEQkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OTE2MERC
QzFDOEUzRUM4MDA4QzA4NUEgLyogUHJveHlSZXZva2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4MzQgLyog
SklUTWF0aElDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEz
QUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9y
aWdpbk1hcC5jcHAgKi87IH07CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29k
ZU9yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzkyQ0IzNDgxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk2NDY1NkExQjk1
MkZGMDAwMzA1OUVFIC8qIEdldFB1dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZv
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk3
RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5N0UwN0E3MUI4
RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJ
CTc5N0UwN0FBMUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk3RTA3QTgx
QjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzk5RUY3QzQxQzU2RUQ5
NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09y
aWdpbk1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBMjI4MzMxRDM1RDcxRTAw
RDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgKi87IH07CisJCTc5QTIyODM2MUQzNUQ3MUYwMEQ4
RTA2NyAvKiBBcml0aFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuaCAq
LzsgfTsKKwkJNzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBRjBC
RTMxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5QjAwQ0JDMUM2QUIwN0Uw
MDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0I4MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNv
bnN0cnVjdG9yLmNwcCAqLzsgfTsKIAkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc5QjAwQ0I5MUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlCMDBDQkUxQzZB
QjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QjAwQ0JBMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9i
amVjdC5jcHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tb3B0aW1pemUt
c2libGluZy1jYWxscyI7IH07IH07CiAJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94
eU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzlCMDBDQkIxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzlCMTc4OEUxRDM5OUI4MDAwQjFB
NTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9y
d2FyZHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3OUM0QjE1RDFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2
YXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUM0QjE1QjFCQTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVz
ZXJ2YXRpb25QaGFzZS5jcHAgKi87IH07CiAJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBE
RkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUM0QjE1QzFCQTIxNThGMDBGRDU5MkUgLyog
REZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5Q0ZDNkYwMUMzM0IxMDAwMEM3NjhF
QSAvKiBMTEludFBDUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3OUNGQzZFRjFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDc5LDEy
ICszNDg0LDE3IEBACiAJCTc5MDVCQjY3MUQxMjA1MEUwMDE5RkU1NyAvKiBJbmxpbmVBY2Nlc3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQWNjZXNzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94
eVJldm9rZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVJl
dm9rZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MTYwREJDMUM4RTNFQzgw
MDhDMDg1QSAvKiBQcm94eVJldm9rZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQcm94eVJldm9rZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTIzM0MyOTFE
MzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpJVE1hdGhJQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0
NzFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUENUb0NvZGVPcmlnaW5NYXAuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVP
cmlnaW5NYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENUb0NvZGVPcmln
aW5NYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzk2NDY1NjgxQjk1MkZGMDAw
MzA1OUVFIC8qIEdldFB1dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R2V0UHV0SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBNzFCOEZD
RkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTdFMDdBODFCOEZDRkI5MDA4NDAwQkEg
LyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzk5RUY3QzMxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BDVG9PcmlnaW5NYXAuaDsgcGF0
aCA9IGIzL0IzUENUb09yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
OUEyMjgzMzFEMzVENzFFMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyaXRoUHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTc5QTIyODM0MUQzNUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdGhQcm9maWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRN
YXRoSUNGb3J3YXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRNYXRo
SUNGb3J3YXJkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OUFGMEJFMzFEM0VG
RDRDMDBFOTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3OUIwMENCODFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eUNvbnN0cnVj
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlCMDBDQjkxQzZBQjA3RTAw
ODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHJveHlDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
OUIwMENCQTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJveHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTA3MCw2ICs1MDgwLDkgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAz
RDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3MDAw
Qjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJ
VC5oICovLAorCQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLywK
KwkJCQk3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAqLywK
KwkJCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0Lmgg
Ki8sCiAJCQkJRkUxMjIwMjUxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAg
Ki8sCiAJCQkJRkUxMjIwMjYxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICov
LAogCQkJCTg2QTkwRUNGMEVFN0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAqLywK
QEAgLTY1NzEsNiArNjU4NCw4IEBACiAJCQkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFy
cmF5QWxsb2NhdGlvblByb2ZpbGUuaCAqLywKIAkJCQkwRjYzOTQ1MTE1RDA3MDUxMDA2QTU5N0Mg
LyogQXJyYXlQcm9maWxlLmNwcCAqLywKIAkJCQkwRjYzOTQ1MjE1RDA3MDUxMDA2QTU5N0MgLyog
QXJyYXlQcm9maWxlLmggKi8sCisJCQkJNzlBMjI4MzMxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRo
UHJvZmlsZS5jcHAgKi8sCisJCQkJNzlBMjI4MzQxRDM1RDcxRTAwRDhFMDY3IC8qIEFyaXRoUHJv
ZmlsZS5oICovLAogCQkJCUMyRkNBRTBDMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2lj
QmxvY2suY3BwICovLAogCQkJCUMyRkNBRTBEMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJh
c2ljQmxvY2suaCAqLywKIAkJCQkwRjIxQzI3RTE0QkVBQTgwMDBBREM2NEIgLyogQnl0ZWNvZGVD
b252ZW50aW9ucy5oICovLApAQCAtNzA4Myw2ICs3MDk4LDcgQEAKIAkJCQlBNUVBNzBFODE5RjVC
MTAxMDA5OEY1RUMgLyogQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVDODRGRjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJl
Z1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMTFCREFDREFDMDA4MEZGNzQgLyog
QjNCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OTIzM0MyQjFEMzQ3MTU3MDBDNUE4
MzQgLyogSklUTWF0aElDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMjFCREFDREFDMDA4
MEZGNzQgLyogQjNCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
MDMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9ja1V0aWxzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUwNDFCREFDREFDMDA4MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTc2NjMsNiArNzY3OSw3IEBACiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFC
MTc0IC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAw
ODA2NkREIC8qIEludGVybmFsRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlENzdD
MEVEMjBENzMwMEI4OTYxOSAvKiBJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlB
RjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJlc3VsdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTFCOUUyM0ExQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRv
ckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEw
MjkgLyogSW50bENvbGxhdG9yQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3
NzIsNiArNzc4OSw3IEBACiAJCQkJQTUxMDA3QzExODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFs
T2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQx
ODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTAzRkEyQTE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3Jp
cHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhF
MDY3IC8qIEFyaXRoUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzAxODVCRkFD
QzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTEzRTVDMjE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM0NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0
cy5qc29uIGluIEhlYWRlcnMgKi8sCkBAIC04MTk3LDYgKzgyMTUsNyBAQAogCQkJCTBGQzgxNTBB
MTQwNDNCRjUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5Njg4Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5OTU5RTkyRTFCRDE3RkE0MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzlCMTc4OEUxRDM5OUI4MDAwQjFBNTY3IC8qIEpJVE1hdGhJQ0ZvcndhcmRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnBy
ZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlh
cnJKSVQuaCBpbiBIZWFkZXJzICovLApAQCAtOTI4Miw2ICs5MzAxLDcgQEAKIAkJCQkwRkVCM0VD
RjE2MjM3RjZDMDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODZDNTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxl
ckFSTTY0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc5QTIyODM1MUQzNUQ3MUUwMEQ4RTA2NyAv
KiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTAwOUMxNzk3NkM2MDAw
MzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2
OEM2MzgxQjkwREUwQjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKwor
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKKyNpZiBFTkFCTEUoSklUKQordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRP
YnNlcnZlUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdp
c3RlcnNNb2RlIG1vZGUpCit7CisgICAgaWYgKCFzaG91bGRFbWl0U2V0RG91YmxlKCkgJiYgIXNo
b3VsZEVtaXRTZXROb25OdW1iZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25O
b3RJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBlbWl0U2V0RG91YmxlKGppdCk7CisgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIG5vdERvdWJsZS5saW5rKCZqaXQp
OworICAgIGVtaXRTZXROb25OdW1iZXIoaml0KTsKKyAgICBkb25lLmxpbmsoJmppdCk7CisgICAg
aXNJbnQzMi5saW5rKCZqaXQpOworfQorCitib29sIEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNl
dERvdWJsZSgpIGNvbnN0Cit7CisgICAgdWludDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6SW50
MzJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6
TmVnWmVyb0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZTsKKyAgICByZXR1
cm4gKG1fYml0cyAmIG1hc2spICE9IG1hc2s7Cit9CisKK3ZvaWQgQXJpdGhQcm9maWxlOjplbWl0
U2V0RG91YmxlKENDYWxsSGVscGVycyYgaml0KQoreworICAgIGlmIChzaG91bGRFbWl0U2V0RG91
YmxlKCkpCisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRo
UHJvZmlsZTo6SW50MzJPdmVyZmxvdyB8IEFyaXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IEFy
aXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJsZSB8IEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJs
ZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKGFkZHJlc3NPZkJpdHMoKSkpOworfQor
Citib29sIEFyaXRoUHJvZmlsZTo6c2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0Cit7Cisg
ICAgdWludDMyX3QgbWFzayA9IEFyaXRoUHJvZmlsZTo6Tm9uTnVtYmVyOworICAgIHJldHVybiAo
bV9iaXRzICYgbWFzaykgIT0gbWFzazsKK30KKwordm9pZCBBcml0aFByb2ZpbGU6OmVtaXRTZXRO
b25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaWYgKHNob3VsZEVtaXRTZXROb25O
dW1iZXIoKSkKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQXJp
dGhQcm9maWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRy
ZXNzT2ZCaXRzKCkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKKworbmFtZXNwYWNlIFdURiB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgQXJpdGhQcm9maWxlJiBw
cm9maWxlKQoreworICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOworCisgICAgb3V0LnBy
aW50KCJSZXN1bHQ6PCIpOworICAgIGlmICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkg
eworICAgICAgICBvdXQucHJpbnQoIkludDMyIik7CisgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJs
ZSgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIp
OworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChw
cm9maWxlLmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5w
cmludChzZXBhcmF0b3IsICJOb25OZWdaZXJvRG91YmxlIik7CisgICAgICAgICAgICBzZXBhcmF0
b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51
bWJlcigpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTm9uTnVtYmVyIik7
CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBy
b2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50
KHNlcGFyYXRvciwgIkludDMyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8
IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxv
dygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiSW50NTJPdmVyZmxvdyIp
OworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgfQorICAgIGlm
IChwcm9maWxlLnRvb2tTcGVjaWFsRmFzdFBhdGgoKSkKKyAgICAgICAgb3V0LnByaW50KHNlcGFy
YXRvciwgIlRvb2sgc3BlY2lhbCBmYXN0IHBhdGguIik7CisgICAgb3V0LnByaW50KCI+Iik7CisK
KyAgICBvdXQucHJpbnQoIiBMSFMgT2JzZXJ2ZWRUeXBlOjwiKTsKKyAgICBvdXQucHJpbnQocHJv
ZmlsZS5saHNPYnNlcnZlZFR5cGUoKSk7CisgICAgb3V0LnByaW50KCI+IFJIUyBPYnNlcnZlZFR5
cGU6PCIpOworICAgIG91dC5wcmludChwcm9maWxlLnJoc09ic2VydmVkVHlwZSgpKTsKKyAgICBv
dXQucHJpbnQoIj4iKTsKKworICAgIG91dC5wcmludCgiIExIUyBSZXN1bHRUeXBlOjwiLCBSYXdQ
b2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pihwcm9maWxl
Lmxoc1Jlc3VsdFR5cGUoKS5iaXRzKCkpKSkpOworICAgIG91dC5wcmludCgiPiBSSFMgUmVzdWx0
VHlwZTo8IiwgUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRw
dHJfdD4ocHJvZmlsZS5yaHNSZXN1bHRUeXBlKCkuYml0cygpKSkpKTsKKyAgICBvdXQucHJpbnQo
Ij4iKTsKK30KKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEpT
Qzo6T2JzZXJ2ZWRUeXBlJiBvYnNlcnZlZFR5cGUpCit7CisgICAgY29uc3QgY2hhciogc2VwYXJh
dG9yID0gIiI7CisgICAgaWYgKG9ic2VydmVkVHlwZS5zYXdJbnQzMigpKSB7CisgICAgICAgIG91
dC5wcmludChzZXBhcmF0b3IsICJJbnQzMiIpOworICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgfQorICAgIGlmIChvYnNlcnZlZFR5cGUuc2F3TnVtYmVyKCkpIHsKKyAgICAgICAgb3V0LnBy
aW50KHNlcGFyYXRvciwgIk51bWJlciIpOworICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAg
fQorICAgIGlmIChvYnNlcnZlZFR5cGUuc2F3Tm9uTnVtYmVyKCkpIHsKKyAgICAgICAgb3V0LnBy
aW50KHNlcGFyYXRvciwgIk5vbk51bWJlciIpOworICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSlNDSlNW
YWx1ZS5oIgorI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNN
b2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK3N0cnVj
dCBPYnNlcnZlZFR5cGUgeworICAgIE9ic2VydmVkVHlwZSh1aW50OF90IGJpdHMgPSBUeXBlRW1w
dHkpCisgICAgICAgIDogbV9iaXRzKGJpdHMpCisgICAgeyB9CisKKyAgICBib29sIHNhd0ludDMy
KCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZUludDMyOyB9CisgICAgYm9vbCBpc09ubHlJ
bnQzMigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlSW50MzI7IH0KKyAgICBib29sIHNh
d051bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVOdW1iZXI7IH0KKyAgICBib29s
IGlzT25seU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlTnVtYmVyOyB9Cisg
ICAgYm9vbCBzYXdOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlTm9uTnVt
YmVyOyB9CisgICAgYm9vbCBpc09ubHlOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
PT0gVHlwZU5vbk51bWJlcjsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFt
X2JpdHM7IH0KKyAgICB1aW50OF90IGJpdHMoKSBjb25zdCB7IHJldHVybiBtX2JpdHM7IH0KKwor
ICAgIE9ic2VydmVkVHlwZSB3aXRoSW50MzIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUo
bV9iaXRzIHwgVHlwZUludDMyKTsgfQorICAgIE9ic2VydmVkVHlwZSB3aXRoTnVtYmVyKCkgY29u
c3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVOdW1iZXIpOyB9CisgICAgT2Jz
ZXJ2ZWRUeXBlIHdpdGhOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9i
aXRzIHwgVHlwZU5vbk51bWJlcik7IH0KKyAgICBPYnNlcnZlZFR5cGUgd2l0aG91dE5vbk51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgJiB+VHlwZU5vbk51bWJlcik7
IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBPYnNlcnZlZFR5cGUmIG90aGVyKSBjb25z
dCB7IHJldHVybiBtX2JpdHMgPT0gb3RoZXIubV9iaXRzOyB9CisKKyAgICBzdGF0aWMgY29uc3Qg
dWludDhfdCBUeXBlRW1wdHkgPSAweDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUlu
dDMyID0gMHgxOworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVOdW1iZXIgPSAweDAyOwor
ICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVOb25OdW1iZXIgPSAweDA0OworCisgICAgc3Rh
dGljIGNvbnN0IHVpbnQzMl90IG51bUJpdHNOZWVkZWQgPSAzOworCitwcml2YXRlOgorICAgIHVp
bnQ4X3QgbV9iaXRzOworfTsKKworc3RydWN0IEFyaXRoUHJvZmlsZSB7Citwcml2YXRlOgorICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBudW1iZXJPZkZsYWdCaXRzID0gNTsKKyAgICBzdGF0aWMg
Y29uc3QgdWludDMyX3QgcmhzUmVzdWx0VHlwZVNoaWZ0ID0gbnVtYmVyT2ZGbGFnQml0czsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbGhzUmVzdWx0VHlwZVNoaWZ0ID0gcmhzUmVzdWx0VHlw
ZVNoaWZ0ICsgUmVzdWx0VHlwZTo6bnVtQml0c05lZWRlZDsKKyAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3QgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQgPSBsaHNSZXN1bHRUeXBlU2hpZnQgKyBSZXN1bHRU
eXBlOjpudW1CaXRzTmVlZGVkOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBsaHNPYnNlcnZl
ZFR5cGVTaGlmdCA9IHJoc09ic2VydmVkVHlwZVNoaWZ0ICsgT2JzZXJ2ZWRUeXBlOjpudW1CaXRz
TmVlZGVkOworCisgICAgc3RhdGljX2Fzc2VydChPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVkZWQg
PT0gMywgIldlIG1ha2UgYSBoYXJkIGFzc3VtcHRpb24gYWJvdXQgdGhhdCBoZXJlLiIpOworICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBjbGVhclJoc09ic2VydmVkVHlwZUJpdE1hc2sgPSB+KCgx
IDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0KSB8ICgxIDw8IChyaHNPYnNlcnZlZFR5cGVTaGlmdCAr
IDEpKSB8ICgxIDw8IChyaHNPYnNlcnZlZFR5cGVTaGlmdCArIDIpKSk7CisgICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IGNsZWFyTGhzT2JzZXJ2ZWRUeXBlQml0TWFzayA9IH4oKDEgPDwgbGhzT2Jz
ZXJ2ZWRUeXBlU2hpZnQpIHwgKDEgPDwgKGxoc09ic2VydmVkVHlwZVNoaWZ0ICsgMSkpIHwgKDEg
PDwgKGxoc09ic2VydmVkVHlwZVNoaWZ0ICsgMikpKTsKKworICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCByZXN1bHRUeXBlTWFzayA9ICgxIDw8IFJlc3VsdFR5cGU6Om51bUJpdHNOZWVkZWQpIC0g
MTsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgb2JzZXJ2ZWRUeXBlTWFzayA9ICgxIDw8IE9i
c2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCkgLSAxOworcHVibGljOgorICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBzcGVjaWFsRmFzdFBhdGhCaXQgPSAxIDw8IChsaHNPYnNlcnZlZFR5cGVTaGlm
dCArIE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCk7CisgICAgc3RhdGljX2Fzc2VydCgobGhz
T2JzZXJ2ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVkZWQpIDw9IChzaXpl
b2YodWludDMyX3QpICogOCkgLSAxLCAiU2hvdWxkIGZpdCBpbiBhIHVpbnQzMl90LiIpOworICAg
IHN0YXRpY19hc3NlcnQoIShzcGVjaWFsRmFzdFBhdGhCaXQgJiB+Y2xlYXJMaHNPYnNlcnZlZFR5
cGVCaXRNYXNrKSwgIlRoZXNlIGJpdHMgc2hvdWxkIG5vdCBpbnRlcnNlY3QuIik7CisgICAgc3Rh
dGljX2Fzc2VydChzcGVjaWFsRmFzdFBhdGhCaXQgJiBjbGVhckxoc09ic2VydmVkVHlwZUJpdE1h
c2ssICJUaGVzZSBiaXRzIHNob3VsZCBpbnRlcnNlY3QuIik7CisgICAgc3RhdGljX2Fzc2VydChz
cGVjaWFsRmFzdFBhdGhCaXQgPiB+Y2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRNYXNrLCAiVGhlc2Ug
Yml0cyBzaG91bGQgbm90IGludGVyc2VjdCBhbmQgc3BlY2lhbEZhc3RQYXRoQml0IHNob3VsZCBi
ZSBhIGhpZ2hlciBiaXQuIik7CisKKyAgICBBcml0aFByb2ZpbGUoUmVzdWx0VHlwZSBsaHMsIFJl
c3VsdFR5cGUgcmhzKQorICAgIHsKKyAgICAgICAgbV9iaXRzID0gKGxocy5iaXRzKCkgPDwgbGhz
UmVzdWx0VHlwZVNoaWZ0KSB8IChyaHMuYml0cygpIDw8IHJoc1Jlc3VsdFR5cGVTaGlmdCk7Cisg
ICAgICAgIEFTU0VSVChsaHNSZXN1bHRUeXBlKCkuYml0cygpID09IGxocy5iaXRzKCkgJiYgcmhz
UmVzdWx0VHlwZSgpLmJpdHMoKSA9PSByaHMuYml0cygpKTsKKyAgICAgICAgQVNTRVJUKGxoc09i
c2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7CisgICAgICAgIEFTU0VSVChyaHNPYnNlcnZlZFR5cGUo
KS5pc0VtcHR5KCkpOworICAgIH0KKyAgICBBcml0aFByb2ZpbGUoKSB7IH0KKworICAgIHN0YXRp
YyBBcml0aFByb2ZpbGUgZnJvbUludCh1aW50MzJfdCBiaXRzKQorICAgIHsKKyAgICAgICAgQXJp
dGhQcm9maWxlIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fYml0cyA9IGJpdHM7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgeworICAg
ICAgICBOb25OZWdaZXJvRG91YmxlID0gMSA8PCAwLAorICAgICAgICBOZWdaZXJvRG91YmxlICAg
ID0gMSA8PCAxLAorICAgICAgICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAorICAgICAgICBJ
bnQzMk92ZXJmbG93ICAgID0gMSA8PCAzLAorICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8
PCA0LAorICAgIH07CisKKyAgICBSZXN1bHRUeXBlIGxoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJl
dHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4gbGhzUmVzdWx0VHlwZVNoaWZ0KSAmIHJlc3VsdFR5
cGVNYXNrKTsgfQorICAgIFJlc3VsdFR5cGUgcmhzUmVzdWx0VHlwZSgpIGNvbnN0IHsgcmV0dXJu
IFJlc3VsdFR5cGUoKG1fYml0cyA+PiByaHNSZXN1bHRUeXBlU2hpZnQpICYgcmVzdWx0VHlwZU1h
c2spOyB9CisKKyAgICBPYnNlcnZlZFR5cGUgbGhzT2JzZXJ2ZWRUeXBlKCkgY29uc3QgeyByZXR1
cm4gT2JzZXJ2ZWRUeXBlKChtX2JpdHMgPj4gbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpICYgb2JzZXJ2
ZWRUeXBlTWFzayk7IH0KKyAgICBPYnNlcnZlZFR5cGUgcmhzT2JzZXJ2ZWRUeXBlKCkgY29uc3Qg
eyByZXR1cm4gT2JzZXJ2ZWRUeXBlKChtX2JpdHMgPj4gcmhzT2JzZXJ2ZWRUeXBlU2hpZnQpICYg
b2JzZXJ2ZWRUeXBlTWFzayk7IH0KKyAgICB2b2lkIHNldExoc09ic2VydmVkVHlwZShPYnNlcnZl
ZFR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSBtX2JpdHM7CisgICAg
ICAgIGJpdHMgJj0gY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRNYXNrOworICAgICAgICBiaXRzIHw9
IHR5cGUuYml0cygpIDw8IGxoc09ic2VydmVkVHlwZVNoaWZ0OworICAgICAgICBtX2JpdHMgPSBi
aXRzOworICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkgPT0gdHlwZSk7CisgICAgfQor
CisgICAgdm9pZCBzZXRSaHNPYnNlcnZlZFR5cGUoT2JzZXJ2ZWRUeXBlIHR5cGUpCisgICAgeyAK
KyAgICAgICAgdWludDMyX3QgYml0cyA9IG1fYml0czsKKyAgICAgICAgYml0cyAmPSBjbGVhclJo
c09ic2VydmVkVHlwZUJpdE1hc2s7CisgICAgICAgIGJpdHMgfD0gdHlwZS5iaXRzKCkgPDwgcmhz
T2JzZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAgIG1fYml0cyA9IGJpdHM7CisgICAgICAgIEFTU0VS
VChyaHNPYnNlcnZlZFR5cGUoKSA9PSB0eXBlKTsKKyAgICB9CisKKyAgICBib29sIHRvb2tTcGVj
aWFsRmFzdFBhdGgoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBzcGVjaWFsRmFzdFBhdGhCaXQ7
IH0KKworICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0
cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJlcik7IH0KKyAgICBi
b29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9E
b3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk5lZ1plcm9E
b3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAg
Ym9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTmVn
WmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKEludDUyT3Zl
cmZsb3cpOyB9CisKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpIHsgc2V0
Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CisgICAgdm9pZCBzZXRPYnNlcnZlZE5lZ1plcm9Eb3Vi
bGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25O
dW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CisgICAgdm9pZCBzZXRPYnNlcnZlZEludDMy
T3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2
ZWRJbnQ1Mk92ZXJmbG93KCkgeyBzZXRCaXQoSW50NTJPdmVyZmxvdyk7IH0KKworICAgIHZvaWQq
IGFkZHJlc3NPZkJpdHMoKSB7IHJldHVybiAmbV9iaXRzOyB9CisKKyAgICB2b2lkIG9ic2VydmVS
ZXN1bHQoSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7Cisg
ICAgICAgICAgICBtX2JpdHMgfD0gSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBtX2JpdHMgfD0gTm9uTnVtYmVyOworICAgIH0KKworICAgIHZvaWQgbGhz
U2F3SW50MzIoKSB7IHNldExoc09ic2VydmVkVHlwZShsaHNPYnNlcnZlZFR5cGUoKS53aXRoSW50
MzIoKSk7IH0KKyAgICB2b2lkIGxoc1Nhd051bWJlcigpIHsgc2V0TGhzT2JzZXJ2ZWRUeXBlKGxo
c09ic2VydmVkVHlwZSgpLndpdGhOdW1iZXIoKSk7IH0KKyAgICB2b2lkIGxoc1Nhd05vbk51bWJl
cigpIHsgc2V0TGhzT2JzZXJ2ZWRUeXBlKGxoc09ic2VydmVkVHlwZSgpLndpdGhOb25OdW1iZXIo
KSk7IH0KKyAgICB2b2lkIHJoc1Nhd0ludDMyKCkgeyBzZXRSaHNPYnNlcnZlZFR5cGUocmhzT2Jz
ZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkpOyB9CisgICAgdm9pZCByaHNTYXdOdW1iZXIoKSB7IHNl
dFJoc09ic2VydmVkVHlwZShyaHNPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkpOyB9CisgICAg
dm9pZCByaHNTYXdOb25OdW1iZXIoKSB7IHNldFJoc09ic2VydmVkVHlwZShyaHNPYnNlcnZlZFR5
cGUoKS53aXRoTm9uTnVtYmVyKCkpOyB9CisKKyAgICB2b2lkIG9ic2VydmVMSFNBbmRSSFMoSlNW
YWx1ZSBsaHMsIEpTVmFsdWUgcmhzKQorICAgIHsKKyAgICAgICAgQXJpdGhQcm9maWxlIG5ld1By
b2ZpbGUgPSAqdGhpczsKKyAgICAgICAgaWYgKGxocy5pc051bWJlcigpKSB7CisgICAgICAgICAg
ICBpZiAobGhzLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICBuZXdQcm9maWxlLmxoc1Nhd0lu
dDMyKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3UHJvZmlsZS5saHNT
YXdOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBuZXdQcm9maWxlLmxoc1Nh
d05vbk51bWJlcigpOworCisgICAgICAgIGlmIChyaHMuaXNOdW1iZXIoKSkgeworICAgICAgICAg
ICAgaWYgKHJocy5pc0ludDMyKCkpCisgICAgICAgICAgICAgICAgbmV3UHJvZmlsZS5yaHNTYXdJ
bnQzMigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld1Byb2ZpbGUucmhz
U2F3TnVtYmVyKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbmV3UHJvZmlsZS5yaHNT
YXdOb25OdW1iZXIoKTsKKworICAgICAgICBtX2JpdHMgPSBuZXdQcm9maWxlLmJpdHMoKTsKKyAg
ICB9CisKKyNpZiBFTkFCTEUoSklUKSAgICAKKyAgICAvLyBTZXRzIChJbnQzMk92ZXJmbG93IHwg
SW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKSBpZiBpdCBz
ZWVzIGEKKyAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNlZXMgYSBub24tbnVt
YmVyLgorICAgIHZvaWQgZW1pdE9ic2VydmVSZXN1bHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJl
Z3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICAvLyBT
ZXRzIChJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBO
ZWdaZXJvRG91YmxlKS4KKyAgICBib29sIHNob3VsZEVtaXRTZXREb3VibGUoKSBjb25zdDsKKyAg
ICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7CisgICAgCisgICAgLy8gU2V0cyBO
b25OdW1iZXIuCisgICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYpOworICAg
IGJvb2wgc2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0OworI2VuZGlmIC8vIEVOQUJMRShK
SVQpCisKKyAgICB1aW50MzJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKK3By
aXZhdGU6CisgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
JiBtYXNrOyB9CisgICAgdm9pZCBzZXRCaXQoaW50IG1hc2spIHsgbV9iaXRzIHw9IG1hc2s7IH0K
KworICAgIHVpbnQzMl90IG1fYml0cyB7IDAgfTsgLy8gV2UgdGFrZSBjYXJlIHRvIHVwZGF0ZSBt
X2JpdHMgb25seSBpbiBhIHNpbmdsZSBvcGVyYXRpb24uIFdlIGRvbid0IGV2ZXIgc3RvcmUgYW4g
aW5jb25zaXN0ZW50IGJpdCByZXByZXNlbnRhdGlvbiB0byBpdC4KK307CisKK30gLy8gbmFtZXNw
YWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiwgY29uc3QgSlNDOjpBcml0aFByb2ZpbGUmKTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmlu
dFN0cmVhbSYsIGNvbnN0IEpTQzo6T2JzZXJ2ZWRUeXBlJik7CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJ
KHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUu
aCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRlICJCeXRlY29kZUdl
bmVyYXRvci5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlVXNlRGVmLmgiCkBAIC00NSw2ICs0Niw3IEBA
CiAjaW5jbHVkZSAiSW5saW5lQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKICNpbmNsdWRlICJKU0NK
U1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTGV4aWNhbEVu
dmlyb25tZW50LmgiCkBAIC03NjksNyArNzcxLDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBSYXJl
Q2FzZVByb2ZpbGUoUHJpbgogICAgIG91dC5wcmludChuYW1lLCBwcm9maWxlLT5tX2NvdW50ZXIp
OwogfQogCi12b2lkIENvZGVCbG9jazo6ZHVtcFJlc3VsdFByb2ZpbGUoUHJpbnRTdHJlYW0mIG91
dCwgUmVzdWx0UHJvZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZykKK3Zv
aWQgQ29kZUJsb2NrOjpkdW1wQXJpdGhQcm9maWxlKFByaW50U3RyZWFtJiBvdXQsIEFyaXRoUHJv
ZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZykKIHsKICAgICBpZiAoIXBy
b2ZpbGUpCiAgICAgICAgIHJldHVybjsKQEAgLTE3NzMsOCArMTc3NSw3IEBAIHZvaWQgQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGUoCiAKICAgICBkdW1wUmFyZUNhc2VQcm9maWxlKG91dCwgInJhcmUg
Y2FzZTogIiwgcmFyZUNhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQ
cmludGVkUHJvZmlsaW5nKTsKICAgICB7Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgICAgIGR1bXBSZXN1bHRQcm9maWxlKG91dCwgcmVzdWx0UHJvZmls
ZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgbG9jYXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5n
KTsKKyAgICAgICAgZHVtcEFyaXRoUHJvZmlsZShvdXQsIGFyaXRoUHJvZmlsZUZvckJ5dGVjb2Rl
T2Zmc2V0KGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgfQogICAgIAogI2lm
IEVOQUJMRShERkdfSklUKQpAQCAtMzAwNyw2ICszMDA4LDExIEBAIFN0cnVjdHVyZVN0dWJJbmZv
KiBDb2RlQmxvY2s6OmFkZFN0dWJJbmYKICAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKGFjY2Vz
c1R5cGUpOwogfQogCitKSVRBZGRJQyogQ29kZUJsb2NrOjphZGRKSVRBZGRJQygpCit7CisgICAg
cmV0dXJuIG1fYWRkSUNzLmFkZCgpOworfQorCiBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2Nr
OjpmaW5kU3R1YkluZm8oQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQogewogICAgIGZvciAoU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvIDogbV9zdHViSW5mb3MpIHsKQEAgLTMwNTMsMTEgKzMwNTks
NiBAQCB2b2lkIENvZGVCbG9jazo6cmVzZXRKSVREYXRhKCkKICAgICAvLyBXZSBjYW4gY2xlYXIg
dGhpcyBiZWNhdXNlIHRoZSBERkcncyBxdWVyaWVzIHRvIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBh
cmUgZ3VhcmRlZCBieSB3aGV0aGVyCiAgICAgLy8gdGhlcmUgaXMgSklUIGNvZGUuCiAgICAgbV9y
YXJlQ2FzZVByb2ZpbGVzLmNsZWFyKCk7Ci0gICAgCi0gICAgLy8gV2UgY2FuIGNsZWFyIHRoZXNl
IGJlY2F1c2UgdGhlIERGRyBvbmx5IGFjY2Vzc2VzIG1lbWJlcnMgb2YgdGhpcyBkYXRhIHN0cnVj
dHVyZSB3aGVuCi0gICAgLy8gaG9sZGluZyB0aGUgbG9jayBvciBhZnRlciBxdWVyeWluZyB3aGV0
aGVyIHdlIGhhdmUgSklUIGNvZGUuCi0gICAgbV9yZXN1bHRQcm9maWxlcy5jbGVhcigpOwotICAg
IG1fYnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcCA9IG51bGxwdHI7CiB9CiAj
ZW5kaWYKIApAQCAtMzI4Nyw3ICszMjg4LDYgQEAgdm9pZCBDb2RlQmxvY2s6OnNocmlua1RvRml0
KFNocmlua01vZGUgcwogICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAK
ICAgICBtX3JhcmVDYXNlUHJvZmlsZXMuc2hyaW5rVG9GaXQoKTsKLSAgICBtX3Jlc3VsdFByb2Zp
bGVzLnNocmlua1RvRml0KCk7CiAgICAgCiAgICAgaWYgKHNocmlua01vZGUgPT0gRWFybHlTaHJp
bmspIHsKICAgICAgICAgbV9jb25zdGFudFJlZ2lzdGVycy5zaHJpbmtUb0ZpdCgpOwpAQCAtNDE2
MywxMSArNDE2Myw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wVmFsdWVQcm9maWxlcygpCiAgICAg
ICAgIFJhcmVDYXNlUHJvZmlsZSogcHJvZmlsZSA9IHJhcmVDYXNlUHJvZmlsZShpKTsKICAgICAg
ICAgZGF0YUxvZ0YoIiAgIGJjID0gJWQ6ICV1XG4iLCBwcm9maWxlLT5tX2J5dGVjb2RlT2Zmc2V0
LCBwcm9maWxlLT5tX2NvdW50ZXIpOwogICAgIH0KLSAgICBkYXRhTG9nKCJSZXN1bHRQcm9maWxl
IGZvciAiLCAqdGhpcywgIjpcbiIpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1i
ZXJPZlJlc3VsdFByb2ZpbGVzKCk7ICsraSkgewotICAgICAgICBjb25zdCBSZXN1bHRQcm9maWxl
JiBwcm9maWxlID0gKnJlc3VsdFByb2ZpbGUoaSk7Ci0gICAgICAgIGRhdGFMb2coIiAgIGJjID0g
IiwgcHJvZmlsZS5ieXRlY29kZU9mZnNldCgpLCAiOiAiLCBwcm9maWxlLCAiXG4iKTsKLSAgICB9
CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZFUkJPU0VfVkFMVUVfUFJPRklMRSkKIApAQCAtNDM3MCw1
NiArNDM2NSw1NSBAQCB1bnNpZ25lZCBDb2RlQmxvY2s6OnJhcmVDYXNlUHJvZmlsZUNvdW50CiAg
ICAgcmV0dXJuIDA7CiB9CiAKLVJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6cmVzdWx0UHJvZmls
ZUZvckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQgYnl0ZWNv
ZGVPZmZzZXQpCitBcml0aFByb2ZpbGUqIENvZGVCbG9jazo6YXJpdGhQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQogewotICAgIGlmICghbV9ieXRlY29kZU9mZnNl
dFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBh
dXRvIGl0ZXJhdG9yID0gbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5m
aW5kKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV9ieXRlY29kZU9mZnNl
dFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwLT5lbmQoKSkKKyAgICBhdXRvIG9wY29kZUlEID0gdm0o
KS0+aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGluc3RydWN0aW9ucygpW2J5dGVjb2RlT2Zmc2V0
XS51Lm9wY29kZSk7CisgICAgc3dpdGNoIChvcGNvZGVJRCkgeworICAgIGNhc2Ugb3BfYml0b3I6
CisgICAgY2FzZSBvcF9iaXRhbmQ6CisgICAgY2FzZSBvcF9iaXR4b3I6CisgICAgY2FzZSBvcF9h
ZGQ6CisgICAgY2FzZSBvcF9tdWw6CisgICAgY2FzZSBvcF9zdWI6CisgICAgY2FzZSBvcF9kaXY6
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIHJldHVybiAmbV9yZXN1bHRQcm9maWxlc1tpdGVyYXRvci0+dmFsdWVdOwotfQorICAgIH0K
IAotdW5zaWduZWQgQ29kZUJsb2NrOjpzcGVjaWFsRmFzdENhc2VQcm9maWxlQ291bnRGb3JCeXRl
Y29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCi17Ci0gICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1cm4gc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50
Rm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBieXRlY29kZU9mZnNldCk7CisgICAgcmV0dXJuICZh
cml0aFByb2ZpbGVGb3JQQyhpbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVPZmZzZXQp
OwogfQogCi11bnNpZ25lZCBDb2RlQmxvY2s6OnNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVDb3VudEZv
ckJ5dGVjb2RlT2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgaW50IGJ5
dGVjb2RlT2Zmc2V0KQorQXJpdGhQcm9maWxlJiBDb2RlQmxvY2s6OmFyaXRoUHJvZmlsZUZvclBD
KEluc3RydWN0aW9uKiBwYykKIHsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gcmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlm
ICghcHJvZmlsZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNp
YWxGYXN0UGF0aENvdW50KCk7CisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAg
QVNTRVJUKHBjID49IGluc3RydWN0aW9ucygpLmJlZ2luKCkgJiYgcGMgPCBpbnN0cnVjdGlvbnMo
KS5lbmQoKSk7CisgICAgICAgIGF1dG8gb3Bjb2RlSUQgPSB2bSgpLT5pbnRlcnByZXRlci0+Z2V0
T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpOworICAgICAgICBzd2l0Y2ggKG9wY29kZUlEKSB7Cisg
ICAgICAgIGNhc2Ugb3BfYml0b3I6CisgICAgICAgIGNhc2Ugb3BfYml0YW5kOgorICAgICAgICBj
YXNlIG9wX2JpdHhvcjoKKyAgICAgICAgY2FzZSBvcF9hZGQ6CisgICAgICAgIGNhc2Ugb3BfbXVs
OgorICAgICAgICBjYXNlIG9wX3N1YjoKKyAgICAgICAgY2FzZSBvcF9kaXY6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICpiaXR3aXNlX2Nhc3Q8QXJpdGhQ
cm9maWxlKj4oJnBjWzRdLnUub3BlcmFuZCk7CiB9CiAKIGJvb2wgQ29kZUJsb2NrOjpjb3VsZFRh
a2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KQogewogICAgIGlmICghaGFzQmFz
ZWxpbmVKSVRQcm9maWxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHVuc2lnbmVk
IHNwZWNpYWxGYXN0Q2FzZUNvdW50ID0gc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0
ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIHJldHVybiBzcGVjaWFsRmFzdENhc2VD
b3VudCA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpOwotfQotCi1S
ZXN1bHRQcm9maWxlKiBDb2RlQmxvY2s6OmVuc3VyZVJlc3VsdFByb2ZpbGUoaW50IGJ5dGVjb2Rl
T2Zmc2V0KQotewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAg
cmV0dXJuIGVuc3VyZVJlc3VsdFByb2ZpbGUobG9ja2VyLCBieXRlY29kZU9mZnNldCk7Ci19Ci0K
LVJlc3VsdFByb2ZpbGUqIENvZGVCbG9jazo6ZW5zdXJlUmVzdWx0UHJvZmlsZShjb25zdCBDb25j
dXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGludCBieXRlY29kZU9mZnNldCkKLXsKLSAgICBSZXN1
bHRQcm9maWxlKiBwcm9maWxlID0gcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tl
ciwgYnl0ZWNvZGVPZmZzZXQpOwotICAgIGlmICghcHJvZmlsZSkgewotICAgICAgICBtX3Jlc3Vs
dFByb2ZpbGVzLmFwcGVuZChSZXN1bHRQcm9maWxlKGJ5dGVjb2RlT2Zmc2V0KSk7Ci0gICAgICAg
IHByb2ZpbGUgPSAmbV9yZXN1bHRQcm9maWxlcy5sYXN0KCk7Ci0gICAgICAgIEFTU0VSVCgmbV9y
ZXN1bHRQcm9maWxlcy5sYXN0KCkgPT0gJm1fcmVzdWx0UHJvZmlsZXNbbV9yZXN1bHRQcm9maWxl
cy5zaXplKCkgLSAxXSk7Ci0gICAgICAgIGlmICghbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJv
ZmlsZUluZGV4TWFwKQotICAgICAgICAgICAgbV9ieXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmls
ZUluZGV4TWFwID0gc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZU9mZnNldFRvUmVzdWx0UHJvZmls
ZUluZGV4TWFwPigpOwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0VG9SZXN1bHRQcm9maWxlSW5k
ZXhNYXAtPmFkZChieXRlY29kZU9mZnNldCwgbV9yZXN1bHRQcm9maWxlcy5zaXplKCkgLSAxKTsK
LSAgICB9Ci0gICAgcmV0dXJuIHByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBwcm9maWxlID0g
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOworICAgIGlmICgh
cHJvZmlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwcm9maWxlLT50b29r
U3BlY2lhbEZhc3RQYXRoKCk7CiB9CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMjAzNTM0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSGFuZGxlckluZm8uaCIKICNpbmNsdWRlICJJ
bnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUNG
b3J3YXJkcy5oIgogI2luY2x1ZGUgIkpJVFdyaXRlQmFycmllci5oIgogI2luY2x1ZGUgIkpTQ2Vs
bC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkBAIC03OSw2ICs4MCw3IEBACiBuYW1l
c3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSklUQWRkR2VuZXJhdG9yOwog
Y2xhc3MgSlNNb2R1bGVFbnZpcm9ubWVudDsKIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsK
IGNsYXNzIFBDVG9Db2RlT3JpZ2luTWFwOwpAQCAtODgsNiArOTAsOCBAQCBjbGFzcyBUeXBlTG9j
YXRpb247CiAKIGVudW0gY2xhc3MgQWNjZXNzVHlwZSA6IGludDhfdDsKIAorc3RydWN0IEFyaXRo
UHJvZmlsZTsKKwogdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0cnVjdHVyZVN0dWJJbmZv
KiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9NYXA7CiAKIGVudW0gUmVvcHRp
bWl6YXRpb25Nb2RlIHsgRG9udENvdW50UmVvcHRpbWl6YXRpb24sIENvdW50UmVvcHRpbWl6YXRp
b24gfTsKQEAgLTI0NSw2ICsyNDksNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkK
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oQWNjZXNzVHlwZSk7CisgICAgSklU
QWRkSUMqIGFkZEpJVEFkZElDKCk7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0
b3Igc3R1YkluZm9CZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmJlZ2luKCk7IH0KICAgICBC
YWc8U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBzdHViSW5mb0VuZCgpIHsgcmV0dXJuIG1f
c3R1YkluZm9zLmVuZCgpOyB9CiAgICAgCkBAIC00NDAsMTMgKzQ0NSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHZhbHVlID49IE9wdGlvbnM6OmNvdWxkVGFrZVNsb3dDYXNlTWluaW11bUNv
dW50KCk7CiAgICAgfQogCi0gICAgUmVzdWx0UHJvZmlsZSogZW5zdXJlUmVzdWx0UHJvZmlsZShp
bnQgYnl0ZWNvZGVPZmZzZXQpOwotICAgIFJlc3VsdFByb2ZpbGUqIGVuc3VyZVJlc3VsdFByb2Zp
bGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCk7Ci0gICAg
dW5zaWduZWQgbnVtYmVyT2ZSZXN1bHRQcm9maWxlcygpIHsgcmV0dXJuIG1fcmVzdWx0UHJvZmls
ZXMuc2l6ZSgpOyB9Ci0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZUZvckJ5dGVjb2Rl
T2Zmc2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBpbnQgYnl0ZWNvZGVPZmZzZXQpOwot
Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZz
ZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGludCBieXRlY29kZU9mZnNldCk7Ci0gICAg
dW5zaWduZWQgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUNvdW50Rm9yQnl0ZWNvZGVPZmZzZXQoaW50
IGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZUZvckJ5dGVj
b2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCk7CisgICAgQXJpdGhQcm9maWxlJiBhcml0aFBy
b2ZpbGVGb3JQQyhJbnN0cnVjdGlvbiopOwogCiAgICAgYm9vbCBjb3VsZFRha2VTcGVjaWFsRmFz
dENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKIApAQCAtOTU3LDcgKzk1Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVj
dGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICB2b2lkIGR1bXBBcnJheVBy
b2ZpbGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3RydWN0aW9uKiYsIGJvb2wmIGhhc1ByaW50
ZWRQcm9maWxpbmcpOwogICAgIHZvaWQgZHVtcFJhcmVDYXNlUHJvZmlsZShQcmludFN0cmVhbSYs
IGNvbnN0IGNoYXIqIG5hbWUsIFJhcmVDYXNlUHJvZmlsZSosIGJvb2wmIGhhc1ByaW50ZWRQcm9m
aWxpbmcpOwotICAgIHZvaWQgZHVtcFJlc3VsdFByb2ZpbGUoUHJpbnRTdHJlYW0mLCBSZXN1bHRQ
cm9maWxlKiwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisgICAgdm9pZCBkdW1wQXJpdGhQ
cm9maWxlKFByaW50U3RyZWFtJiwgQXJpdGhQcm9maWxlKiwgYm9vbCYgaGFzUHJpbnRlZFByb2Zp
bGluZyk7CiAKICAgICBib29sIHNob3VsZFZpc2l0U3Ryb25nbHkoKTsKICAgICBib29sIHNob3Vs
ZEpldHRpc29uRHVlVG9XZWFrUmVmZXJlbmNlKCk7CkBAIC0xMDEzLDYgKzEwMTMsNyBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0PiBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZv
PiBtX3N0dWJJbmZvczsKKyAgICBCYWc8SklUQWRkSUM+IG1fYWRkSUNzOwogICAgIEJhZzxCeVZh
bEluZm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5m
b3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5l
bE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwpAQCAtMTAyOSw5ICsxMDMwLDYg
QEAgcHJpdmF0ZToKICAgICBSZWZDb3VudGVkQXJyYXk8VmFsdWVQcm9maWxlPiBtX2FyZ3VtZW50
VmFsdWVQcm9maWxlczsKICAgICBSZWZDb3VudGVkQXJyYXk8VmFsdWVQcm9maWxlPiBtX3ZhbHVl
UHJvZmlsZXM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFJhcmVDYXNlUHJvZmlsZSwgOD4gbV9yYXJl
Q2FzZVByb2ZpbGVzOwotICAgIFNlZ21lbnRlZFZlY3RvcjxSZXN1bHRQcm9maWxlLCA4PiBtX3Jl
c3VsdFByb2ZpbGVzOwotICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgdW5zaWduZWQsIElu
dEhhc2g8dW5zaWduZWQ+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVuc2ln
bmVkPj4gQnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcDsKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8Qnl0ZWNvZGVPZmZzZXRUb1Jlc3VsdFByb2ZpbGVJbmRleE1hcD4gbV9ieXRlY29k
ZU9mZnNldFRvUmVzdWx0UHJvZmlsZUluZGV4TWFwOwogICAgIFJlZkNvdW50ZWRBcnJheTxBcnJh
eUFsbG9jYXRpb25Qcm9maWxlPiBtX2FycmF5QWxsb2NhdGlvblByb2ZpbGVzOwogICAgIEFycmF5
UHJvZmlsZVZlY3RvciBtX2FycmF5UHJvZmlsZXM7CiAgICAgUmVmQ291bnRlZEFycmF5PE9iamVj
dEFsbG9jYXRpb25Qcm9maWxlPiBtX29iamVjdEFsbG9jYXRpb25Qcm9maWxlczsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAK
KyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCkBAIC02NSw4ICs2
Niw4IEBAIHZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFIKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsK
LSAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0ZWN0TnVtZXJpY25lc3Moaml0LCByZWdz
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgIGNhc2UgQXJpdGhQcm9maWxlUmVhZHk6IHsK
KyAgICAgICAgdS5hcml0aFByb2ZpbGUtPmVtaXRPYnNlcnZlUmVzdWx0KGppdCwgcmVncywgRG9O
b3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0gfQogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ0Nh
bGxIZWxwZXJzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVByb2Zp
bGVLZXk7Ci1zdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKK3N0cnVjdCBBcml0aFByb2ZpbGU7CiBzdHJ1
Y3QgVmFsdWVQcm9maWxlOwogCiBjbGFzcyBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIHsK
QEAgLTU5LDExICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tpbmQgPSBOb25lOwog
ICAgIH0KICAgICAKLSAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFJlc3VsdFByb2Zp
bGUqIHByb2ZpbGUpCisgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZShBcml0aFByb2Zp
bGUqIHByb2ZpbGUpCiAgICAgewogICAgICAgICBpZiAocHJvZmlsZSkgewotICAgICAgICAgICAg
bV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OwotICAgICAgICAgICAgdS5yZXN1bHRQcm9maWxl
ID0gcHJvZmlsZTsKKyAgICAgICAgICAgIG1fa2luZCA9IEFyaXRoUHJvZmlsZVJlYWR5OworICAg
ICAgICAgICAgdS5hcml0aFByb2ZpbGUgPSBwcm9maWxlOwogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQpAQCAtNzksMTQgKzc5LDE0IEBAIHByaXZhdGU6
CiAgICAgZW51bSBLaW5kIHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCi0gICAgICAg
IFJlc3VsdFByb2ZpbGVSZWFkeSwKKyAgICAgICAgQXJpdGhQcm9maWxlUmVhZHksCiAgICAgICAg
IExhenlPcGVyYW5kCiAgICAgfTsKICAgICAKICAgICBLaW5kIG1fa2luZDsKICAgICB1bmlvbiB7
CiAgICAgICAgIFZhbHVlUHJvZmlsZSogcHJvZmlsZTsKLSAgICAgICAgUmVzdWx0UHJvZmlsZSog
cmVzdWx0UHJvZmlsZTsKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGU7CiAgICAg
ICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKICAgICAgICAg
ICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMzUzNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw3MCArMzEsNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShK
SVQpCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBl
cnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlKQotewotICAg
IENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIocmVncywgbW9k
ZSk7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5icmFuY2hJZk5vdERv
dWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7Ci0gICAgLy8gRklYTUU6IFdlIGNvdWxkIGJl
IG1vcmUgcHJlY2lzZSBoZXJlLgotICAgIGVtaXRTZXREb3VibGUoaml0KTsKLSAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7Ci0gICAgbm90RG91YmxlLmxpbmsoJmppdCk7
Ci0gICAgZW1pdFNldE5vbk51bWJlcihqaXQpOwotICAgIGRvbmUubGluaygmaml0KTsKLSAgICBp
c0ludDMyLmxpbmsoJmppdCk7Ci19Ci0KLXZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJs
ZShDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0UHJvZmlsZTo6SW50
NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBSZXN1bHRQcm9maWxl
OjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVz
c09mRmxhZ3MoKSkpOwotfQotCi12b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIo
Q0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOwotfQotI2VuZGlmIC8vIEVOQUJMRShKSVQpCi0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RGIHsKLSAgICAKLXVzaW5nIG5hbWVzcGFj
ZSBKU0M7Ci0KLXZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBSZXN1
bHRQcm9maWxlJiBwcm9maWxlKQotewotICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciA9ICIiOwot
Ci0gICAgaWYgKCFwcm9maWxlLmRpZE9ic2VydmVOb25JbnQzMigpKSB7Ci0gICAgICAgIG91dC5w
cmludCgiSW50MzIiKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAg
ICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWdaZXJvRG91YmxlIik7Ci0gICAgICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2
ZU5vbk5lZ1plcm9Eb3VibGUoKSkgewotICAgICAgICAgICAgb3V0LnByaW50KCJOb25OZWdaZXJv
RG91YmxlIik7Ci0gICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgICAgICBvdXQu
cHJpbnQoIk5vbk51bWJlciIpOwotICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkpIHsKLSAg
ICAgICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIpOwotICAgICAgICAgICAgc2VwYXJh
dG9yID0gInwiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQ1
Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwot
ICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChw
cm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpIHsKLSAgICAgICAgb3V0LnByaW50KCIgc3Bl
Y2lhbCBmYXN0IHBhdGg6ICIpOwotICAgICAgICBvdXQucHJpbnQocHJvZmlsZS5zcGVjaWFsRmFz
dFBhdGhDb3VudCgpKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24g
MjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDksODggKzIwOSw2IEBAIGlubGluZSBpbnQgZ2V0UmFyZUNh
c2VQcm9maWxlQnl0ZWNvZGVPZmYKICAgICByZXR1cm4gcmFyZUNhc2VQcm9maWxlLT5tX2J5dGVj
b2RlT2Zmc2V0OwogfQogCi1zdHJ1Y3QgUmVzdWx0UHJvZmlsZSB7Ci1wcml2YXRlOgotICAgIHN0
YXRpYyBjb25zdCBpbnQgbnVtYmVyT2ZGbGFnQml0cyA9IDU7Ci0KLXB1YmxpYzoKLSAgICBSZXN1
bHRQcm9maWxlKGludCBieXRlY29kZU9mZnNldCkKLSAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0
QW5kRmxhZ3MoYnl0ZWNvZGVPZmZzZXQgPDwgbnVtYmVyT2ZGbGFnQml0cykKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVCgoKGJ5dGVjb2RlT2Zmc2V0IDw8IG51bWJlck9mRmxhZ0JpdHMpID4+IG51bWJl
ck9mRmxhZ0JpdHMpID09IGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICB9Ci0KLSAgICBlbnVtIE9ic2Vy
dmVkUmVzdWx0cyB7Ci0gICAgICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8IDAsCi0gICAgICAg
IE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDEsCi0gICAgICAgIE5vbk51bWJlciAgICAgICAgPSAx
IDw8IDIsCi0gICAgICAgIEludDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCi0gICAgICAgIEludDUy
T3ZlcmZsb3cgICAgPSAxIDw8IDQsCi0gICAgfTsKLQotICAgIGludCBieXRlY29kZU9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyA+PiBudW1iZXJPZkZsYWdC
aXRzOyB9Ci0gICAgdW5zaWduZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBjb25zdCB7IHJldHVy
biBtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0KLSAgICBib29sIGRpZE9ic2VydmVOb25JbnQz
MigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3Vi
bGUgfCBOb25OdW1iZXIpOyB9Ci0gICAgYm9vbCBkaWRPYnNlcnZlRG91YmxlKCkgY29uc3QgeyBy
ZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSk7IH0KLSAgICBi
b29sIGRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhO
b25OZWdaZXJvRG91YmxlKTsgfQotICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSBj
b25zdCB7IHJldHVybiBoYXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9Ci0gICAgYm9vbCBkaWRPYnNl
cnZlTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1iZXIpOyB9Ci0gICAg
Ym9vbCBkaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50
MzJPdmVyZmxvdyk7IH0KLSAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkgY29uc3Qg
eyByZXR1cm4gaGFzQml0cyhJbnQ1Mk92ZXJmbG93KTsgfQotCi0gICAgdm9pZCBzZXRPYnNlcnZl
ZE5vbk5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91YmxlKTsgfQotICAgIHZv
aWQgc2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVyb0RvdWJsZSk7IH0K
LSAgICB2b2lkIHNldE9ic2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9uTnVtYmVyKTsgfQot
ICAgIHZvaWQgc2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQoSW50MzJPdmVyZmxv
dyk7IH0KLSAgICB2b2lkIHNldE9ic2VydmVkSW50NTJPdmVyZmxvdygpIHsgc2V0Qml0KEludDUy
T3ZlcmZsb3cpOyB9Ci0KLSAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsgcmV0dXJuICZtX2J5
dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KLSAgICB2b2lkKiBhZGRyZXNzT2ZTcGVjaWFsRmFzdFBh
dGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Ci0gICAgCi0gICAg
dm9pZCBkZXRlY3ROdW1lcmljbmVzcyhKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYg
KHZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKHZhbHVl
LmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBJ
bnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJv
RG91YmxlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIG1fYnl0ZWNv
ZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1iZXI7Ci0gICAgfQotCi0jaWYgRU5BQkxFKEpJVCkg
ICAgCi0gICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWda
ZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCi0gICAgLy8gZG91YmxlLiBT
ZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KLSAgICB2b2lkIGVtaXREZXRl
Y3ROdW1lcmljbmVzcyhDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9k
ZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwotICAgIAotICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cg
fCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgotICAg
IHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKLSAgICAKLSAgICAvLyBTZXRzIE5v
bk51bWJlci4KLSAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7Ci0jZW5k
aWYgLy8gRU5BQkxFKEpJVCkKLQotcHJpdmF0ZToKLSAgICBib29sIGhhc0JpdHMoaW50IG1hc2sp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyAmIG1hc2s7IH0KLSAgICB2
b2lkIHNldEJpdChpbnQgbWFzaykgeyBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgfD0gbWFzazsg
fQotCi0gICAgaW50IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFnczsKLSAgICB1bnNpZ25lZCBtX3Nw
ZWNpYWxGYXN0UGF0aENvdW50IHsgMCB9OwotfTsKLQotaW5saW5lIGludCBnZXRSZXN1bHRQcm9m
aWxlQnl0ZWNvZGVPZmZzZXQoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKLXsKLSAgICByZXR1cm4g
cHJvZmlsZS0+Ynl0ZWNvZGVPZmZzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKLW5h
bWVzcGFjZSBXVEYgewotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBK
U0M6OlJlc3VsdFByb2ZpbGUmKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KICNlbmRpZiAvLyBW
YWx1ZVByb2ZpbGVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAzNTM0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxl
LmgiCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVM
aXZlbmVzc0FuYWx5c2lzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTE2MDAsNyAr
MTYwMSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0QmluYXIKIAogICAg
IGlmIChvcGNvZGVJRCA9PSBvcF9iaXRvciB8fCBvcGNvZGVJRCA9PSBvcF9iaXRhbmQgfHwgb3Bj
b2RlSUQgPT0gb3BfYml0eG9yIHx8CiAgICAgICAgIG9wY29kZUlEID09IG9wX2FkZCB8fCBvcGNv
ZGVJRCA9PSBvcF9tdWwgfHwgb3Bjb2RlSUQgPT0gb3Bfc3ViIHx8IG9wY29kZUlEID09IG9wX2Rp
dikKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHR5cGVzLnRvSW50KCkpOworICAgICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoQXJpdGhQcm9maWxlKHR5cGVzLmZpcnN0KCksIHR5cGVz
LnNlY29uZCgpKS5iaXRzKCkpOwogCiAgICAgcmV0dXJuIGRzdDsKIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAy
MDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQp
CiAKKyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9y
LmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQ2FsbExpbmtT
dGF0dXMuaCIKQEAgLTkxNCwyOSArOTE1LDI4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1
cm4gbm9kZTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7Ci0gICAgICAg
ICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBtX2N1
cnJlbnRJbmRleCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAg
ICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2Zp
bGVkQmxvY2stPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fY3VycmVudEluZGV4KTsK
KyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUpIHsKICAgICAgICAgICAgICAgICBzd2l0Y2gg
KG5vZGUtPm9wKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgogICAgICAgICAg
ICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgp
KQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURv
dWJsZVJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRP
YnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUt
PmRpZE9ic2VydmVOb25OdW1iZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjYXNlIEFyaXRoTXVs
OiB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlSW50
NTJPdmVyZmxvdygpKQorICAgICAgICAgICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRP
YnNlcnZlSW50NTJPdmVyZmxvdygpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVy
Z2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQ1Mik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChy
ZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tU
b3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDMyT3Zl
cmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBPdmVyZmxvdykpCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1f
aW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgs
IE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRp
ZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmls
ZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUo
KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJs
ZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2
ZURvdWJsZVJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5k
aWRPYnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcml0aFByb2Zp
bGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUt
Pm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NDgsOSArMTU0OCw4IEBA
IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGgKICAgICAgICAgICAgIHJl
dHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5v
cmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAogICAgICAgICB7Ci0gICAg
ICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5tX2xvY2sp
OwogICAgICAgICAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5n
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0gcHJvZmls
ZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGxvY2tlciwgbm9kZS0+b3Jp
Z2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICAgICAgICAgIGlmIChBcml0aFBy
b2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPmFyaXRoUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDIw
MzUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MDQsNyArNjA0LDcgQEAgdm9pZCBKSVRDb21waWxlcjo6ZXhjZXB0
aW9uQ2hlY2soKQogICAgIEhhbmRsZXJJbmZvKiBleGNlcHRpb25IYW5kbGVyOwogICAgIGJvb2wg
d2lsbENhdGNoRXhjZXB0aW9uID0gbV9ncmFwaC53aWxsQ2F0Y2hFeGNlcHRpb25Jbk1hY2hpbmVG
cmFtZShtX3NwZWN1bGF0aXZlLT5tX2N1cnJlbnROb2RlLT5vcmlnaW4uZm9yRXhpdCwgb3BDYXRj
aE9yaWdpbiwgZXhjZXB0aW9uSGFuZGxlcik7IAogICAgIGlmICh3aWxsQ2F0Y2hFeGNlcHRpb24p
IHsKLSAgICAgICAgdW5zaWduZWQgc3RyZWFtSW5kZXggPSBtX3NwZWN1bGF0aXZlLT5tX291dE9m
TGluZVN0cmVhbUluZGV4ICE9IFVJTlRfTUFYID8gbV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVT
dHJlYW1JbmRleCA6IG1fc3BlY3VsYXRpdmUtPm1fc3RyZWFtLT5zaXplKCk7CisgICAgICAgIHVu
c2lnbmVkIHN0cmVhbUluZGV4ID0gbV9zcGVjdWxhdGl2ZS0+bV9vdXRPZkxpbmVTdHJlYW1JbmRl
eCA/ICptX3NwZWN1bGF0aXZlLT5tX291dE9mTGluZVN0cmVhbUluZGV4IDogbV9zcGVjdWxhdGl2
ZS0+bV9zdHJlYW0tPnNpemUoKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaGFkRXhj
ZXB0aW9uID0gZW1pdE5vblBhdGNoYWJsZUV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIC8vIFdl
IGFzc3VtZSBoZXJlIHRoYXQgdGhpcyBpcyBjYWxsZWQgYWZ0ZXIgY2FsbE9wZWFydGlvbigpL2Fw
cGVuZENhbGwoKSBpcyBjYWxsZWQuCiAgICAgICAgIGFwcGVuZEV4Y2VwdGlvbkhhbmRsaW5nT1NS
RXhpdChFeGNlcHRpb25DaGVjaywgc3RyZWFtSW5kZXgsIG9wQ2F0Y2hPcmlnaW4sIGV4Y2VwdGlv
bkhhbmRsZXIsIG1faml0Q29kZS0+Y29tbW9uLmxhc3RDYWxsU2l0ZSgpLCBoYWRFeGNlcHRpb24p
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5l
cmF0b3IuaAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTbG93UGF0aEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHB1
YmxpYzoKICAgICAgICAgaml0LT5tX291dE9mTGluZVN0cmVhbUluZGV4ID0gbV9zdHJlYW1JbmRl
eDsKICAgICAgICAgaml0LT5tX29yaWdpbiA9IG1fb3JpZ2luOwogICAgICAgICBnZW5lcmF0ZUlu
dGVybmFsKGppdCk7Ci0gICAgICAgIGppdC0+bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9IFVJTlRf
TUFYOworICAgICAgICBqaXQtPm1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPSBOdWxsb3B0OwogICAg
ICAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkKICAgICAgICAgICAgIGppdC0+bV9qaXQuYWJvcnRX
aXRoUmVhc29uKERGR1Nsb3dQYXRoR2VuZXJhdG9yRmVsbFRocm91Z2gpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShy
ZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpJ
VEJpdFhvckdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVERpdkdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkpJVExlZnRTaGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJQy5oIgogI2lu
Y2x1ZGUgIkpJVE11bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFJpZ2h0U2hpZnRHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKQEAgLTU2LDYgKzU3LDcgQEAKICNp
bmNsdWRlICJTY29wZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXJCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Qm94Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewpAQCAtMzYyLDcgKzM2NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmFk
ZFNsb3dQYXRoR2VuZXJhdG8KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5l
cmF0b3Ioc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGxhbWJkYSkKIHsKLSAgICBtX3Nsb3dQYXRoTGFt
YmRhcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobGFtYmRhLCBtX2N1cnJlbnROb2RlKSk7CisgICAg
bV9zbG93UGF0aExhbWJkYXMuYXBwZW5kKFNsb3dQYXRoTGFtYmRheyBsYW1iZGEsIG1fY3VycmVu
dE5vZGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3N0cmVhbS0+c2l6ZSgpKSB9KTsKIH0KIAog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6cnVuU2xvd1BhdGhHZW5lcmF0b3JzKFBDVG9Db2RlT3JpZ2lu
TWFwQnVpbGRlciYgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyKQpAQCAtMzcxLDExICszNzMsMTMg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6cnVuU2xvd1BhdGhHZW5lcmF0bwogICAgICAgICBwY1Rv
Q29kZU9yaWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBzbG93UGF0aEdl
bmVyYXRvci0+b3JpZ2luKCkuc2VtYW50aWMpOwogICAgICAgICBzbG93UGF0aEdlbmVyYXRvci0+
Z2VuZXJhdGUodGhpcyk7CiAgICAgfQotICAgIGZvciAoYXV0byYgZ2VuZXJhdG9yUGFpciA6IG1f
c2xvd1BhdGhMYW1iZGFzKSB7Ci0gICAgICAgIE5vZGUqIGN1cnJlbnROb2RlID0gZ2VuZXJhdG9y
UGFpci5zZWNvbmQ7CisgICAgZm9yIChhdXRvJiBzbG93UGF0aExhbWJkYSA6IG1fc2xvd1BhdGhM
YW1iZGFzKSB7CisgICAgICAgIE5vZGUqIGN1cnJlbnROb2RlID0gc2xvd1BhdGhMYW1iZGEuY3Vy
cmVudE5vZGU7CiAgICAgICAgIG1fY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZTsKKyAgICAgICAg
bV9vdXRPZkxpbmVTdHJlYW1JbmRleCA9IHNsb3dQYXRoTGFtYmRhLnN0cmVhbUluZGV4OwogICAg
ICAgICBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBj
dXJyZW50Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLSAgICAgICAgZ2VuZXJhdG9yUGFpci5maXJz
dCgpOworICAgICAgICBzbG93UGF0aExhbWJkYS5nZW5lcmF0b3IoKTsKKyAgICAgICAgbV9vdXRP
ZkxpbmVTdHJlYW1JbmRleCA9IE51bGxvcHQ7CiAgICAgfQogfQogCkBAIC0zMzc5LDMxICszMzgz
LDY0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2QKICAgICAgICAg
cmlnaHRSZWdzID0gcmlnaHQtPmpzVmFsdWVSZWdzKCk7CiAgICAgfQogCi0gICAgSklUQWRkR2Vu
ZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLAotICAgICAgICBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRjaEdQUiwgc2Ny
YXRjaEZQUik7Ci0gICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIEpJVEFkZElD
KiBhZGRJQyA9IG1faml0LmNvZGVCbG9jaygpLT5hZGRKSVRBZGRJQygpOworICAgIEJveDxNYXRo
SUNHZW5lcmF0aW9uU3RhdGU+IGFkZElDR2VuZXJhdGlvblN0YXRlID0gQm94PE1hdGhJQ0dlbmVy
YXRpb25TdGF0ZT46OmNyZWF0ZSgpOworICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0g
bV9qaXQuZ3JhcGgoKS5iYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMp
LT5hcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0
ZWNvZGVJbmRleCk7CisgICAgYWRkSUMtPm1fZ2VuZXJhdG9yID0gSklUQWRkR2VuZXJhdG9yKGxl
ZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3Ms
IGxlZnRGUFIsIHJpZ2h0RlBSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0aFByb2ZpbGUp
OworCisgICAgYm9vbCBnZW5lcmF0ZWRJbmxpbmUgPSBhZGRJQy0+Z2VuZXJhdGVJbmxpbmUobV9q
aXQsICphZGRJQ0dlbmVyYXRpb25TdGF0ZSk7CisKKyAgICBpZiAoZ2VuZXJhdGVkSW5saW5lKSB7
CisgICAgICAgIEFTU0VSVCghYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVtcHMuZW1w
dHkoKSk7CisKKyAgICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4+IHNhdmVQbGFu
czsKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMs
IHJlc3VsdFJlZ3MpOworCisgICAgICAgIGF1dG8gZG9uZSA9IG1faml0LmxhYmVsKCk7CisKKyAg
ICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoWz0sIHNhdmVQbGFucyA9IFdURk1vdmUoc2F2ZVBs
YW5zKV0gKCkgeworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoSnVt
cHMubGluaygmbV9qaXQpOworICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQ
YXRoU3RhcnQgPSBtX2ppdC5sYWJlbCgpOworCisgICAgICAgICAgICBzaWxlbnRTcGlsbChzYXZl
UGxhbnMpOworCisgICAgICAgICAgICBhdXRvIGlubmVyTGVmdFJlZ3MgPSBsZWZ0UmVnczsKKyAg
ICAgICAgICAgIGF1dG8gaW5uZXJSaWdodFJlZ3MgPSByaWdodFJlZ3M7CisgICAgICAgICAgICBp
ZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICAgICAgaW5uZXJMZWZ0UmVn
cyA9IHJlc3VsdFJlZ3M7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVZhbHVlKGxlZnRDaGls
ZC0+YXNKU1ZhbHVlKCksIGlubmVyTGVmdFJlZ3MpOworICAgICAgICAgICAgfSBlbHNlIGlmIChy
aWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICAgICAgaW5uZXJSaWdodFJlZ3Mg
PSByZXN1bHRSZWdzOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmVWYWx1ZShyaWdodENoaWxk
LT5hc0pTVmFsdWUoKSwgaW5uZXJSaWdodFJlZ3MpOworICAgICAgICAgICAgfQogCi0gICAgQVNT
RVJUKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7Ci0gICAgZ2VuLmVuZEp1bXBMaXN0KCkuYXBwZW5k
KG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICBpZiAoYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNo
b3VsZFNsb3dQYXRoUmVwYXRjaCkKKyAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0
ZS0+c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXpl
LCByZXN1bHRSZWdzLCBpbm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncywgYWRkSUMpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93
UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkLCByZXN1bHRSZWdzLCBp
bm5lckxlZnRSZWdzLCBpbm5lclJpZ2h0UmVncyk7CiAKLSAgICBnZW4uc2xvd1BhdGhKdW1wTGlz
dCgpLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIHNpbGVudEZpbGwoc2F2ZVBsYW5zKTsKKyAg
ICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICBtX2ppdC5qdW1w
KCkubGlua1RvKGRvbmUsICZtX2ppdCk7CiAKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhy
ZXN1bHRSZWdzKTsKKyAgICAgICAgICAgIG1faml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZl
ciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNv
ZGUoKmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25z
dCgpKSB7CisgICAgICAgICAgICBsZWZ0ID0gSlNWYWx1ZU9wZXJhbmQodGhpcywgbGVmdENoaWxk
KTsKKyAgICAgICAgICAgIGxlZnRSZWdzID0gbGVmdC0+anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAg
fSBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKSB7CisgICAgICAgICAgICByaWdodCA9
IEpTVmFsdWVPcGVyYW5kKHRoaXMsIHJpZ2h0Q2hpbGQpOworICAgICAgICAgICAgcmlnaHRSZWdz
ID0gcmlnaHQtPmpzVmFsdWVSZWdzKCk7CisgICAgICAgIH0KIAotICAgIGlmIChsZWZ0T3BlcmFu
ZC5pc0NvbnN0KCkpIHsKLSAgICAgICAgbGVmdFJlZ3MgPSByZXN1bHRSZWdzOwotICAgICAgICBt
X2ppdC5tb3ZlVmFsdWUobGVmdENoaWxkLT5hc0pTVmFsdWUoKSwgbGVmdFJlZ3MpOwotICAgIH0g
ZWxzZSBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkgewotICAgICAgICByaWdodFJlZ3MgPSBy
ZXN1bHRSZWdzOwotICAgICAgICBtX2ppdC5tb3ZlVmFsdWUocmlnaHRDaGlsZC0+YXNKU1ZhbHVl
KCksIHJpZ2h0UmVncyk7CisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJl
Z3MpOworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgIH0KIAotICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJl
Z3MpOwotCi0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKLSAgICBtX2pp
dC5leGNlcHRpb25DaGVjaygpOwotCi0gICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmbV9qaXQp
OwogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgcmV0dXJuOwogfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAko
cmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODgsMTMgKzM4OCwxNSBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMs
IEludmFsaWRHUFJSZWcsIEludmFsaWRHUFJSZWcsIGV4Y2x1ZGUpOwogICAgIH0KLSNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgogICAg
IHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGJvb2wgZG9TcGlsbCwgQ29sbGVjdGlv
blR5cGUmIHBsYW5zLCBKU1ZhbHVlUmVncyBleGNsdWRlKQogICAgIHsKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxh
bnMsIGV4Y2x1ZGUudGFnR1BSKCksIGV4Y2x1ZGUucGF5bG9hZEdQUigpKTsKLSAgICB9CisjZWxz
ZQorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZG9TcGlsbCwgcGxhbnMsIGV4
Y2x1ZGUuZ3ByKCkpOwogI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgc2lsZW50U3BpbGxB
bGxSZWdpc3RlcnMoR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBleGNsdWRlMiA9IEludmFsaWRHUFJS
ZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJlZykKICAgICB7CkBAIC0xMjg1LDYg
KzEyODcsMTMgQEAgcHVibGljOgogCiAKICNpZiBVU0UoSlNWQUxVRTY0KQorCisgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpKYWljIG9wZXJhdGlv
biwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcy
LCBKSVRBZGRJQyogYWRkSUMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMS5ncHIoKSwgYXJnMi5ncHIoKSwgVHJ1c3RlZEltbVB0cihhZGRJQykp
OworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5n
cHIoKSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIodWlk
KSk7CkBAIC0xNzAyLDYgKzE3MTEsMTIgQEAgcHVibGljOgogICAgIH0KICNlbHNlIC8vIFVTRShK
U1ZBTFVFMzJfNjQpCiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSkphaWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVS
ZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKKyAgICB7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFy
ZzIudGFnR1BSKCksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVu
ZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFn
R1BSKCkpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1
bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJn
MlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsK
ICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVN
TVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3Rl
ZEltbVB0cih1aWQpKTsKQEAgLTI4MzIsOSArMjg0NywxNCBAQCBwdWJsaWM6CiAgICAgTWluaWZp
ZWRHcmFwaCogbV9taW5pZmllZEdyYXBoOwogICAgIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8U2xvd1BhdGhHZW5lcmF0b3I+LCA4PiBtX3Nsb3dQYXRoR2VuZXJhdG9yczsKLSAgICBWZWN0
b3I8c3RkOjpwYWlyPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgTm9kZSo+LCA4PiBtX3Nsb3dQYXRo
TGFtYmRhczsKKyAgICBzdHJ1Y3QgU2xvd1BhdGhMYW1iZGEgeworICAgICAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZ2VuZXJhdG9yOworICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZTsKKyAgICAg
ICAgdW5zaWduZWQgc3RyZWFtSW5kZXg7CisgICAgfTsKKyAgICBWZWN0b3I8U2xvd1BhdGhMYW1i
ZGE+IG1fc2xvd1BhdGhMYW1iZGFzOwogICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFu
PiBtX3BsYW5zOwotICAgIHVuc2lnbmVkIG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggeyBVSU5UX01B
WCB9OworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX291dE9mTGluZVN0cmVhbUluZGV4OwogfTsK
IAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCShyZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRl
ICJKSVREaXZHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5o
IgogI2luY2x1ZGUgIkpJVExlZnRTaGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJ
Qy5oIgogI2luY2x1ZGUgIkpJVE11bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVFJpZ2h0U2hp
ZnRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKQEAgLTE1MzgsNyAr
MTUzOSw3MiBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZVZhbHVlQWRkKCkKICAg
ICB7Ci0gICAgICAgIGVtaXRCaW5hcnlTbmlwcGV0PEpJVEFkZEdlbmVyYXRvcj4ob3BlcmF0aW9u
VmFsdWVBZGQpOworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOworICAgICAgICAKKyAgICAg
ICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZh
bHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDIoKSk7CisKKyAgICAgICAgU25pcHBl
dE9wZXJhbmQgbGVmdE9wZXJhbmQobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5yZXN1
bHRUeXBlKCkpOworICAgICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQobV9zdGF0ZS5m
b3JOb2RlKG5vZGUtPmNoaWxkMigpKS5yZXN1bHRUeXBlKCkpOworICAgICAgICAgICAgCisgICAg
ICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50NjQp
OworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIobGVmdCk7CisgICAgICAg
IHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihyaWdodCk7CisgICAgICAgIHBhdGNocG9p
bnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ01hc2tS
ZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBW
YWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAg
ICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9Cisg
ICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2ludCk7Cisg
ICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IDE7CisgICAgICAgIHBh
dGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IDI7CisgICAgICAgIHBhdGNocG9pbnQt
PmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAg
U3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVy
YXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1Nj
cmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworCisgICAgICAgICAgICAgICAg
Qm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMgPQorICAgICAgICAgICAgICAg
ICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uKHBhcmFtcyktPmp1bXBz
KGppdCk7CisKKyAgICAgICAgICAgICAgICBKSVRBZGRJQyogYWRkSUMgPSBqaXQuY29kZUJsb2Nr
KCktPmFkZEpJVEFkZElDKCk7CisgICAgICAgICAgICAgICAgQm94PE1hdGhJQ0dlbmVyYXRpb25T
dGF0ZT4gYWRkSUNHZW5lcmF0aW9uU3RhdGUgPSBCb3g8TWF0aElDR2VuZXJhdGlvblN0YXRlPjo6
Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBz
dGF0ZS0+Z3JhcGguYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+
YXJpdGhQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVj
b2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGFkZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdl
bmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0u
Z3ByKCkpLAorICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkp
LCBKU1ZhbHVlUmVncyhwYXJhbXNbMl0uZ3ByKCkpLCBwYXJhbXMuZnBTY3JhdGNoKDApLAorICAg
ICAgICAgICAgICAgICAgICBwYXJhbXMuZnBTY3JhdGNoKDEpLCBwYXJhbXMuZ3BTY3JhdGNoKDAp
LCBJbnZhbGlkRlBSUmVnLCBhcml0aFByb2ZpbGUpOworCisgICAgICAgICAgICAgICAgYm9vbCBn
ZW5lcmF0ZWRJbmxpbmUgPSBhZGRJQy0+Z2VuZXJhdGVJbmxpbmUoaml0LCAqYWRkSUNHZW5lcmF0
aW9uU3RhdGUpOworCisgICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRlZElubGluZSkgeworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoIWFkZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aEp1
bXBzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGRvbmUgPSBqaXQubGFiZWwo
KTsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExhdGVQYXRoKFs9XSAoQ0NhbGxIZWxw
ZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFk
ZElDR2VuZXJhdGlvblN0YXRlLT5zbG93UGF0aEp1bXBzLmxpbmsoJmppdCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhTdGFydCA9IGppdC5s
YWJlbCgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkSUNHZW5lcmF0aW9uU3Rh
dGUtPnNob3VsZFNsb3dQYXRoUmVwYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNsb3dQYXRoQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigqc3RhdGUsIHBhcmFtcy51bmF2YWls
YWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucy5n
ZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVmFsdWVBZGRP
cHRpbWl6ZSwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIo
KSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGFkZElDKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkSUNHZW5lcmF0aW9uU3RhdGUtPnNsb3dQYXRoQ2FsbCA9IGNhbGwuY2Fs
bCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTbG93UGF0aENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oKnN0YXRlLCBwYXJh
bXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuZ2V0KCksIG9wZXJhdGlv
blZhbHVlQWRkLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdw
cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+
c2xvd1BhdGhDYWxsID0gY2FsbC5jYWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmaml0KTsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYg
bGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZElDLT5maW5hbGl6
ZUlubGluZUNvZGUoKmFkZElDR2VuZXJhdGlvblN0YXRlLCBsaW5rQnVmZmVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAg
ICAgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwg
aml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsIGV4Y2VwdGlvbnMuZ2V0KCksCisgICAgICAgICAg
ICAgICAgICAgICAgICBvcGVyYXRpb25WYWx1ZUFkZCwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNb
MV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlU3RyQ2F0KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9D
Q2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtODI2LDYgKzgyNiwxOCBAQCBw
dWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc2KTsKICAgICB9CiAKKyAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVzdGVkSW1tUHRyIGFyZzUs
IFRydXN0ZWRJbW1QdHIgYXJnNikKKyAgICB7CisgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygp
OworICAgICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwor
ICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChh
cmcyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAgICAgICBhZGRDYWxsQXJn
dW1lbnQoYXJnNCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc1KTsKKyAgICAgICAgYWRk
Q2FsbEFyZ3VtZW50KGFyZzYpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcg
YXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1LCBHUFJSZWcgYXJnNiwgVHJ1c3RlZEltbVB0
ciBhcmc3KQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CkBAIC0xNTk0LDYg
KzE2MDYsMTQgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczLCBHUFJSZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1LCBUcnVzdGVkSW1tUHRyIGFyZzYp
CisgICAgeworICAgICAgICBwb2tlKGFyZzYsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMik7Cisg
ICAgICAgIHBva2UoYXJnNSwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAxKTsKKyAgICAgICAgcG9r
ZShhcmc0LCBQT0tFX0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBUcnVzdGVkSW1tUHRyIGFyZzUpCiAgICAgewog
ICAgICAgICBwb2tlKGFyZzUsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMSk7CkBAIC0yMDk5LDYg
KzIxMTksMTQgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
LCBUcnVzdGVkSW1tUHRyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisgICAgICAg
IHNldHVwVHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjI+KGFyZzEsIGFyZzIpOworICAgICAgICBtb3ZlKGFyZzMsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJndW1lbnRHUFI0KTsKKyAg
ICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0ZWRJbW0zMiBh
cmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICBzZXR1cFRocmVl
U3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjQs
IEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJnNSk7CkBAIC0yMjA3LDYgKzIy
MzUsMTUgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAgIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIpCisg
ICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpKTsKKyNlbHNlCisgICAgICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwg
YXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCkpOworI2VuZGlm
CisgICAgfQorCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSlNWYWx1ZVJl
Z3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQogICAgIHsKICNp
ZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjIxNSw2ICsyMjUyLDE1IEBAIHB1YmxpYzoKICAgICAgICAg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5
bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIo
KSwgYXJnMyk7CiAjZW5kaWYKICAgICB9CisKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVzdGVkSW1tUHRy
IGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFyZzIuZ3ByKCks
IGFyZzMsIGFyZzQpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBh
cmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgYXJnMywgYXJnNCk7CisjZW5kaWYKKyAg
ICB9CiAgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50cyhKU1ZhbHVlUmVncyBhcmcxKQogICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjAzNTM0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQz
LDEwIEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVREaXNhc3NlbWJs
ZXIuaCIKICNpbmNsdWRlICJKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJ
VE1hdGhJQy5oIgogI2luY2x1ZGUgIkpTSW50ZXJmYWNlSklULmgiCiAjaW5jbHVkZSAiT3Bjb2Rl
LmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmlnaW5NYXAuaCIKLSNpbmNsdWRlICJSZXN1bHRUeXBl
LmgiCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQz
NSw3ICs0MzUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjb21waWxlR2V0QnlJ
ZEhvdFBhdGgoY29uc3QgSWRlbnRpZmllciopOwogCiAgICAgICAgIC8vIEFyaXRobWV0aWMgb3Bj
b2RlIGhlbHBlcnMKLSAgICAgICAgdm9pZCBlbWl0U3ViMzJDb25zdGFudChpbnQgZHN0LCBpbnQg
b3AsIGludDMyX3QgY29uc3RhbnQsIFJlc3VsdFR5cGUgb3BUeXBlKTsKICAgICAgICAgdm9pZCBl
bWl0QmluYXJ5RG91YmxlT3AoT3Bjb2RlSUQsIGludCBkc3QsIGludCBvcDEsIGludCBvcDIsIE9w
ZXJhbmRUeXBlcywgSnVtcExpc3QmIG5vdEludDMyT3AxLCBKdW1wTGlzdCYgbm90SW50MzJPcDIs
IGJvb2wgb3AxSXNJblJlZ2lzdGVycyA9IHRydWUsIGJvb2wgb3AySXNJblJlZ2lzdGVycyA9IHRy
dWUpOwogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNzY0LDcgKzc2MywxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJSZWcsIFVuaXF1ZWRTdHJpbmdJ
bXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCwgSlNWYWx1ZVJlZ3Ms
IEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmlsZSopOworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFycCwgSlNW
YWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgQXJpdGhQcm9maWxlKik7CisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
LCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnBKYWljLCBK
U1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBBcml0aFByb2ZpbGUqLCBKSVRB
ZGRJQyopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSkphaWMsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3Ms
IEpJVEFkZElDKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEFycmF5UHJvZmlsZSop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSk9KLCBHUFJS
ZWcsIEdQUlJlZywgR1BSUmVnKTsKQEAgLTk1NCw2ICs5NTYsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIgbV9wY1RvQ29kZU9yaWdpbk1hcEJ1
aWxkZXI7CiAKKyAgICAgICAgSGFzaE1hcDxJbnN0cnVjdGlvbiosIEpJVEFkZElDKj4gbV9pbnN0
cnVjdGlvblRvSklUQWRkSUM7CisgICAgICAgIEhhc2hNYXA8SW5zdHJ1Y3Rpb24qLCBNYXRoSUNH
ZW5lcmF0aW9uU3RhdGU+IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlOwor
CiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZDsKICAgICAgICAgYm9vbCBtX2NhbkJlT3B0
aW1pemVkT3JJbmxpbmVkOwogICAgICAgICBib29sIG1fc2hvdWxkRW1pdFByb2ZpbGluZzsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDUyIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAKKyNpbmNsdWRlICJBcml0aFBy
b2ZpbGUuaCIKKyNpbmNsdWRlICJKSVRNYXRoSUMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgi
CisKICNpZiBFTkFCTEUoSklUKQogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBKSVRBZGRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCitKSVRNYXRoSUNJbmxp
bmVSZXN1bHQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmIGpp
dCwgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKK3sKKyAgICAvLyBXZSBkZWZhdWx0IHRv
IHNwZWN1bGF0aW5nIGludDMyLgorICAgIE9ic2VydmVkVHlwZSBsaHMgPSBPYnNlcnZlZFR5cGUo
KS53aXRoSW50MzIoKTsKKyAgICBPYnNlcnZlZFR5cGUgcmhzID0gT2JzZXJ2ZWRUeXBlKCkud2l0
aEludDMyKCk7CisgICAgaWYgKG1fYXJpdGhQcm9maWxlKSB7CisgICAgICAgIGxocyA9IG1fYXJp
dGhQcm9maWxlLT5saHNPYnNlcnZlZFR5cGUoKTsKKyAgICAgICAgcmhzID0gbV9hcml0aFByb2Zp
bGUtPnJoc09ic2VydmVkVHlwZSgpOworICAgICAgICBpZiAobGhzLmlzRW1wdHkoKSB8fCByaHMu
aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBsaHMgPSBPYnNlcnZlZFR5cGUoKS53aXRoSW50MzIo
KTsKKyAgICAgICAgICAgIHJocyA9IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGxocy5pc09ubHlOb25OdW1iZXIoKSAmJiByaHMuaXNPbmx5
Tm9uTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBKSVRNYXRoSUNJbmxpbmVSZXN1bHQ6OkRvbnRH
ZW5lcmF0ZTsKKworICAgIGlmICgobGhzLmlzT25seUludDMyKCkgfHwgbV9sZWZ0T3BlcmFuZC5p
c0NvbnN0SW50MzIoKSkgJiYgKHJocy5pc09ubHlJbnQzMigpIHx8IG1fcmlnaHRPcGVyYW5kLmlz
Q29uc3RJbnQzMigpKSkgeworICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25zdElu
dDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKKyAgICAgICAgaWYgKCFt
X2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgc3RhdGUuc2xvd1BhdGhK
dW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KSk7CisgICAgICAgIGlmICgh
bV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpCisgICAgICAgICAgICBzdGF0ZS5zbG93UGF0
aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KSk7CisKKyAgICAgICAg
aWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgbV9yaWdodE9wZXJhbmQuaXNDb25z
dEludDMyKCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhciA9IG1fbGVmdE9wZXJhbmQu
aXNDb25zdEludDMyKCkgPyBtX3JpZ2h0IDogbV9sZWZ0OworICAgICAgICAgICAgaW50MzJfdCBj
b25zdFZhbHVlID0gbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSA/IG1fbGVmdE9wZXJhbmQu
YXNDb25zdEludDMyKCkgOiBtX3JpZ2h0T3BlcmFuZC5hc0NvbnN0SW50MzIoKTsKKyAgICAgICAg
ICAgIHN0YXRlLnNsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBl
cnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0
VmFsdWUpLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdGF0
ZS5zbG93UGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoQWRkMzIoQ0NhbGxIZWxwZXJzOjpPdmVy
ZmxvdywgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRj
aEdQUikpOworICAgICAgICBqaXQuYm94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7Cisg
ICAgICAgIHJldHVybiBKSVRNYXRoSUNJbmxpbmVSZXN1bHQ6OkdlbmVyYXRlZEZhc3RQYXRoOwor
ICAgIH0KKworICAgIHJldHVybiBKSVRNYXRoSUNJbmxpbmVSZXN1bHQ6OkdlbmVyYXRlRnVsbFNu
aXBwZXQ7Cit9CisKK2Jvb2wgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxs
SGVscGVycyYgaml0LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCkKIHsKICAgICBBU1NFUlQobV9zY3Jh
dGNoR1BSICE9IEludmFsaWRHUFJSZWcpOwogICAgIEFTU0VSVChtX3NjcmF0Y2hHUFIgIT0gbV9s
ZWZ0LnBheWxvYWRHUFIoKSk7CkBAIC00MywxMiArODQsOCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25z
dEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICAKLSAgICBp
ZiAoIW1fbGVmdE9wZXJhbmQubWlnaHRCZU51bWJlcigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5taWdo
dEJlTnVtYmVyKCkpIHsKLSAgICAgICAgQVNTRVJUKCFtX2RpZEVtaXRGYXN0UGF0aCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2RpZEVtaXRGYXN0UGF0aCA9IHRydWU7CisgICAg
aWYgKCFtX2xlZnRPcGVyYW5kLm1pZ2h0QmVOdW1iZXIoKSB8fCAhbV9yaWdodE9wZXJhbmQubWln
aHRCZU51bWJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9sZWZ0T3Bl
cmFuZC5pc0NvbnN0SW50MzIoKSB8fCBtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgewog
ICAgICAgICBKU1ZhbHVlUmVncyB2YXIgPSBtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpID8g
bV9yaWdodCA6IG1fbGVmdDsKQEAgLTU4LDIwICs5NSwyMCBAQCB2b2lkIEpJVEFkZEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIC8vIFRyeSB0byBkbyBpbnRWYXIgKyBpbnRD
b25zdGFudC4KICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdEludDMyID0gaml0LmJyYW5j
aElmTm90SW50MzIodmFyKTsKIAotICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGpp
dC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBD
Q2FsbEhlbHBlcnM6OkltbTMyKGNvbnN0T3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3JhdGNoR1BS
KSk7CisgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2Fs
bEhlbHBlcnM6Ok92ZXJmbG93LCB2YXIucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMy
KGNvbnN0T3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3JhdGNoR1BSKSk7CiAKICAgICAgICAgaml0
LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOwotICAgICAgICBtX2VuZEp1bXBMaXN0
LmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1w
KCkpOwogCiAgICAgICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7Ci0gICAg
ICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKG5vdEludDMyKTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVHJ5IHRv
IGRvIGRvdWJsZVZhciArIGRvdWJsZShpbnRDb25zdGFudCkuCiAgICAgICAgIG5vdEludDMyLmxp
bmsoJmppdCk7CiAgICAgICAgIGlmICghdmFyT3ByLmRlZmluaXRlbHlJc051bWJlcigpKQotICAg
ICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIo
dmFyLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5k
KGppdC5icmFuY2hJZk5vdE51bWJlcih2YXIsIG1fc2NyYXRjaEdQUikpOwogCiAgICAgICAgIGpp
dC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKHZhciwgbV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIs
IG1fc2NyYXRjaEZQUik7CiAKQEAgLTg5LDIyICsxMjYsMjMgQEAgdm9pZCBKSVRBZGRHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBsZWZ0Tm90SW50ID0gaml0LmJyYW5jaElm
Tm90SW50MzIobV9sZWZ0KTsKICAgICAgICAgcmlnaHROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJ
bnQzMihtX3JpZ2h0KTsKIAotICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwg
bV9sZWZ0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgIHNsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKGppdC5icmFuY2hBZGQzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3Jp
Z2h0LnBheWxvYWRHUFIoKSwgbV9sZWZ0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7CiAK
ICAgICAgICAgaml0LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOwotICAgICAgICBt
X2VuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgZW5kSnVtcExpc3QuYXBw
ZW5kKGppdC5qdW1wKCkpOworCiAKICAgICAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1Bv
aW50KCkpIHsKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQobGVmdE5vdElu
dCk7Ci0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKHJpZ2h0Tm90SW50KTsK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5k
KGxlZnROb3RJbnQpOworICAgICAgICAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQocmlnaHRO
b3RJbnQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBs
ZWZ0Tm90SW50LmxpbmsoJmppdCk7CiAgICAgICAgIGlmICghbV9sZWZ0T3BlcmFuZC5kZWZpbml0
ZWx5SXNOdW1iZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaElmTm90TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBz
bG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9sZWZ0LCBtX3Nj
cmF0Y2hHUFIpKTsKICAgICAgICAgaWYgKCFtX3JpZ2h0T3BlcmFuZC5kZWZpbml0ZWx5SXNOdW1i
ZXIoKSkKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElm
Tm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQUikpOworICAgICAgICAgICAgc2xvd1BhdGhK
dW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fcmlnaHQsIG1fc2NyYXRjaEdQ
UikpOwogCiAgICAgICAgIGppdC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1fbGVmdCwgbV9s
ZWZ0RlBSLCBtX3NjcmF0Y2hHUFIsIG1fc2NyYXRjaEZQUik7CiAgICAgICAgIENDYWxsSGVscGVy
czo6SnVtcCByaWdodElzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CkBA
IC0xMTQsNyArMTUyLDcgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
QwogCiAgICAgICAgIHJpZ2h0Tm90SW50LmxpbmsoJmppdCk7CiAgICAgICAgIGlmICghbV9yaWdo
dE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCi0gICAgICAgICAgICBtX3Nsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIp
KTsKKyAgICAgICAgICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51
bWJlcihtX3JpZ2h0LCBtX3NjcmF0Y2hHUFIpKTsKIAogICAgICAgICBqaXQuY29udmVydEludDMy
VG9Eb3VibGUobV9sZWZ0LnBheWxvYWRHUFIoKSwgbV9sZWZ0RlBSKTsKIApAQCAtMTI4LDEwICsx
NjYsMTIgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAg
Ly8gRG8gZG91YmxlVmFyICsgZG91YmxlVmFyLgogICAgIGppdC5hZGREb3VibGUobV9yaWdodEZQ
UiwgbV9sZWZ0RlBSKTsKLSAgICBpZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3Vs
dFByb2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisg
ICAgICAgIG1fYXJpdGhQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CiAgICAgICAgIAogICAg
IGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFkZEdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQWRkR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE2ICsy
OSwyMyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNp
bmNsdWRlICJKSVRNYXRoSUNJbmxpbmVSZXN1bHQuaCIKKyNpbmNsdWRlICJKSVRPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiU25pcHBldE9wZXJhbmQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0
cnVjdCBNYXRoSUNHZW5lcmF0aW9uU3RhdGU7CisKIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBw
dWJsaWM6CisgICAgSklUQWRkR2VuZXJhdG9yKCkKKyAgICB7IH0KKwogICAgIEpJVEFkZEdlbmVy
YXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVy
YW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFs
dWVSZWdzIHJpZ2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBH
UFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJlc3VsdFByb2Zp
bGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyKQorICAgICAgICBBcml0aFByb2ZpbGUqIGFyaXRo
UHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkK
ICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1
bHQocmVzdWx0KQpAQCAtNDgsMTYgKzU1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0
RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAg
ICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShy
ZXN1bHRQcm9maWxlKQorICAgICAgICAsIG1fYXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAg
ICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9y
aWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIH0KIAotICAgIHZvaWQgZ2VuZXJhdGVG
YXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKLQotICAgIGJvb2wgZGlkRW1pdEZhc3RQYXRoKCkgY29u
c3QgeyByZXR1cm4gbV9kaWRFbWl0RmFzdFBhdGg7IH0KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0JiBlbmRKdW1wTGlzdCgpIHsgcmV0dXJuIG1fZW5kSnVtcExpc3Q7IH0KLSAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0JiBzbG93UGF0aEp1bXBMaXN0KCkgeyByZXR1cm4gbV9zbG93UGF0aEp1
bXBMaXN0OyB9CisgICAgSklUTWF0aElDSW5saW5lUmVzdWx0IGdlbmVyYXRlSW5saW5lKENDYWxs
SGVscGVycyYsIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYpOworICAgIGJvb2wgZ2VuZXJhdGVGYXN0
UGF0aChDQ2FsbEhlbHBlcnMmLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0JiBlbmRKdW1wTGlzdCwg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCYgc2xvd1BhdGhKdW1wTGlzdCk7CiAKIHByaXZhdGU6CiAg
ICAgU25pcHBldE9wZXJhbmQgbV9sZWZ0T3BlcmFuZDsKQEAgLTY5LDExICs3Myw3IEBAIHByaXZh
dGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsKICAg
ICBGUFJSZWcgbV9zY3JhdGNoRlBSOwotICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJvZmls
ZTsKLSAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKLQotICAgIENDYWxsSGVs
cGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IG1fc2xvd1BhdGhKdW1wTGlzdDsKKyAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQXJpdGhtZXRpYy5jcHAJKHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNpZiBFTkFCTEUoSklUKQogI2luY2x1ZGUgIkpJVC5oIgogCisjaW5jbHVkZSAiQXJp
dGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSklUQWRkR2Vu
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCkBAIC0zNiw2ICszNyw3
IEBACiAjaW5jbHVkZSAiSklURGl2R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpJVExlZnRTaGlmdEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpJVE1hdGhJ
Qy5oIgogI2luY2x1ZGUgIkpJVE11bEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVE5lZ0dlbmVy
YXRvci5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKQEAgLTQ1LDEwICs0NywxMCBAQAog
I2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVz
dWx0VHlwZS5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogCi0KIG5hbWVzcGFjZSBKU0Mg
ewogCiB2b2lkIEpJVDo6ZW1pdF9vcF9qbGVzcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQpAQCAtNjc1LDIwICs2NzcsMjYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Vyc2hpZnQo
SW5zdHJ1Y3RpbwogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKK0FMV0FZU19JTkxJTkUg
c3RhdGljIE9wZXJhbmRUeXBlcyBnZXRPcGVyYW5kVHlwZXMoSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uKQoreworICAgIHJldHVybiBPcGVyYW5kVHlwZXMoQXJpdGhQcm9maWxlOjpmcm9tSW50KGlu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCkubGhzUmVzdWx0VHlwZSgpLCBBcml0aFByb2ZpbGU6OmZy
b21JbnQoaW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKS5yaHNSZXN1bHRUeXBlKCkpOworfQorCiB2
b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBp
bnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMg
PSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7
CiAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJh
bmRUeXBlcyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1Zh
bHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyBy
aWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
cyA9IGxlZnRSZWdzOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gcmVnVDI7CiAgICAgRlBSUmVn
IHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOwogI2Vsc2UKKyAgICBPcGVyYW5kVHlwZXMgdHlw
ZXMgPSBnZXRPcGVyYW5kVHlwZXMoY3VycmVudEluc3RydWN0aW9uKTsKICAgICBKU1ZhbHVlUmVn
cyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKICAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzID0gbGVmdFJlZ3M7CkBAIC02OTYsOSArNzA0LDkgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gZnBSZWdU
MjsKICNlbmRpZgogCi0gICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7
CisgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91
bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+
ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgYXJpdGhQcm9m
aWxlID0gJm1fY29kZUJsb2NrLT5hcml0aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24p
OwogCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAg
U25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKQEAgLTcxNSw0NyAr
NzIzLDQ3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAgICBp
ZiAoIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AyLCByaWdodFJlZ3MpOwogCi0gICAgSklUQWRkR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFu
ZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAg
ICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxl
KTsKKyAgICBKSVRBZGRJQyogYWRkSUMgPSBtX2NvZGVCbG9jay0+YWRkSklUQWRkSUMoKTsKIAot
ICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKKyAgICBtX2luc3RydWN0aW9uVG9KSVRB
ZGRJQy5hZGQoY3VycmVudEluc3RydWN0aW9uLCBhZGRJQyk7CisgICAgTWF0aElDR2VuZXJhdGlv
blN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2Vu
ZXJhdGlvblN0YXRlLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIE1hdGhJQ0dlbmVyYXRpb25TdGF0
ZSgpKS5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICBpZiAoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKSB7
Ci0gICAgICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxpbmsodGhpcyk7Ci0gICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKLSAgICAgICAgCi0gICAgICAgIGFk
ZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXBMaXN0KCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgQVNTRVJUKGdlbi5z
bG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7
Ci0gICAgICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAgICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgICAgICBpZiAo
cmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVz
dWx0UHJvZmlsZSk7Ci0gICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwg
cmVzdWx0UmVncyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBKSVRTbG93UGF0aENh
bGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7
Ci0gICAgICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwotICAgICAgICB9Ci0gICAgfQorICAg
IGFkZElDLT5tX2dlbmVyYXRvciA9IEpJVEFkZEdlbmVyYXRvcihsZWZ0T3BlcmFuZCwgcmlnaHRP
cGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBmcFJlZ1QwLCBmcFJlZ1Qx
LCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0aFByb2ZpbGUpOworCisgICAgYm9vbCBnZW5l
cmF0ZWRJbmxpbmVDb2RlID0gYWRkSUMtPmdlbmVyYXRlSW5saW5lKCp0aGlzLCBhZGRJQ0dlbmVy
YXRpb25TdGF0ZSk7CisgICAgaWYgKCFnZW5lcmF0ZWRJbmxpbmVDb2RlKSB7CisgICAgICAgIGlm
IChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBlbHNlIGlmIChyaWdodE9wZXJhbmQuaXNDb25z
dCgpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7
CisKKyAgICAgICAgaWYgKGFyaXRoUHJvZmlsZSkKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVn
cywgYXJpdGhQcm9maWxlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25WYWx1ZUFkZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGFkZFNsb3dDYXNlKGFkZElDR2VuZXJhdGlvblN0YXRlLnNsb3dQ
YXRoSnVtcHMpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdz
KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAg
IGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9i
eXRlY29kZU9mZnNldCk7CiAKKyAgICBNYXRoSUNHZW5lcmF0aW9uU3RhdGUmIGFkZElDR2VuZXJh
dGlvblN0YXRlID0gbV9pbnN0cnVjdGlvblRvSklUQWRkSUNHZW5lcmF0aW9uU3RhdGUuZmluZChj
dXJyZW50SW5zdHJ1Y3Rpb24pLT52YWx1ZTsKKyAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93
UGF0aFN0YXJ0ID0gbGFiZWwoKTsKKwogICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOwogICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwot
ICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgT3BlcmFu
ZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGNvcGllZEluc3RydWN0aW9uKGN1cnJlbnRJ
bnN0cnVjdGlvbikpOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CiAjZWxzZQorICAgIE9wZXJhbmRU
eXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpT
VmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1Zh
bHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFs
dWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTc2OSwxOCArNzc3LDI2IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGMKICAgICBlbHNlIGlmIChpc09wZXJh
bmRDb25zdGFudEludChvcDIpKQogICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihn
ZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSk7CiAKKyAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25z
dCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAg
IGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMiwgcmlnaHRSZWdzKTsKKworICAgIEpJVEFkZElDKiBhZGRJQyA9IG1faW5zdHJ1Y3Rp
b25Ub0pJVEFkZElDLmdldChjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIGlmIChzaG91bGRFbWl0
UHJvZmlsaW5nKCkpIHsKLSAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKLSAgICAg
ICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Ci0gICAgICAgIGlm
IChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQotICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDIsIHJpZ2h0UmVncyk7Ci0gICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2Zp
bGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsK
LSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRS
ZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKLSAgICAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9u
LCBzbG93X3BhdGhfYWRkKTsKLSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKLSAgICB9Cisg
ICAgICAgIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJv
ZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CisgICAgICAgIGlmIChhZGRJQ0dlbmVyYXRp
b25TdGF0ZS5zaG91bGRTbG93UGF0aFJlcGF0Y2gpCisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRp
b25TdGF0ZS5zbG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJv
ZmlsZWRPcHRpbWl6ZSwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgJmFyaXRoUHJv
ZmlsZSwgYWRkSUMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhZGRJQ0dlbmVyYXRpb25T
dGF0ZS5zbG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmls
ZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsICZhcml0aFByb2ZpbGUpOworICAg
IH0gZWxzZQorICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS5zbG93UGF0aENhbGwgPSBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIHJlc3VsdFJlZ3MsIGxlZnRSZWdz
LCByaWdodFJlZ3MsIGFkZElDKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwg
cmVzdWx0UmVncyk7CisKKyAgICBhZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZm
ZXIpIHsKKyAgICAgICAgTWF0aElDR2VuZXJhdGlvblN0YXRlJiBhZGRJQ0dlbmVyYXRpb25TdGF0
ZSA9IG1faW5zdHJ1Y3Rpb25Ub0pJVEFkZElDR2VuZXJhdGlvblN0YXRlLmZpbmQoY3VycmVudElu
c3RydWN0aW9uKS0+dmFsdWU7CisgICAgICAgIGFkZElDLT5maW5hbGl6ZUlubGluZUNvZGUoYWRk
SUNHZW5lcmF0aW9uU3RhdGUsIGxpbmtCdWZmZXIpOworICAgIH0pOwogfQogCiB2b2lkIEpJVDo6
ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTc4OCwxNCAr
ODA0LDE1IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmUKICAgICBp
bnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgb3Ax
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgb3AyID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVy
YW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CiAKICNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBl
cyhjb3BpZWRJbnN0cnVjdGlvbihjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKICAgICBKU1ZhbHVlUmVn
cyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJl
Z3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxl
ZnRSZWdzOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gcmVnVDI7CiAjZWxzZQorICAgIE9wZXJh
bmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRUeXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAg
IEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBK
U1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKQEAgLTgwMyw5ICs4MjAsOSBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAjZW5kaWYKICAgICBGUFJSZWcg
c2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAKLSAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxl
ID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAg
ICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1f
Y29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAg
ICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJ
bnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJz
dCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpA
QCAtODMxLDcgKzg0OCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3Vy
cmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAKICAg
ICBKSVREaXZHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0
Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBmcFJlZ1QwLCBmcFJl
Z1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0aFByb2ZpbGUpOwogCiAgICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC04NjEsMTUgKzg3OCwxNiBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24o
Y3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMik7CiAg
ICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZWdUMzsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IElu
dmFsaWRGUFJSZWc7CiAjZWxzZQorICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IGdldE9wZXJhbmRU
eXBlcyhjdXJyZW50SW5zdHJ1Y3Rpb24pOwogICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMywgcmVnVDIpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0
UmVnczsKQEAgLTg3Nyw5ICs4OTUsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmco
KSkKLSAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9m
aWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxv
Y2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCBy
aWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtODk3LDcgKzkxNSw3IEBAIHZvaWQgSklU
OjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAKICAgICBKSVRNdWxHZW5lcmF0b3IgZ2VuKGxlZnRP
cGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0g
ICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFBy
b2ZpbGUpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBS
LCBhcml0aFByb2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBA
IC05MDksMTIgKzkyNywxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlzdCgpLmVtcHR5
KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAg
ICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsKKyAgICAgICAgaWYgKGFyaXRoUHJvZmlsZSkgewog
ICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCiAgICAg
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKICAgICAg
ICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKLSAgICAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCBy
aWdodFJlZ3MsIGFyaXRoUHJvZmlsZSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBK
SVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xv
d19wYXRoX211bCk7CkBAIC05MzAsMTMgKzk0OCwxNCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
bXVsKEluc3RydWN0aW9uKiBjCiAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAg
T3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcGVyYW5kVHlw
ZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rpb24oY3VycmVudEluc3Ry
dWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7
CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwogICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVz
IHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVS
ZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpAQCAtOTU1LDggKzk3NCw4IEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CiAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3Np
dGl2ZUNvbnN0SW50MzIoKSkKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3Ay
LCByaWdodFJlZ3MpOwotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9j
b2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7Ci0gICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIEFyaXRoUHJvZmlsZSYg
YXJpdGhQcm9maWxlID0gbV9jb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0
cnVjdGlvbik7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxl
ZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgJmFyaXRoUHJvZmlsZSk7CiAgICAg
ICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKICAgICB9IGVs
c2UgewogICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CkBAIC05NjksMTUgKzk4OCwxNiBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgaW50IHJlc3VsdCA9IGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7Ci0gICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50
KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBnZXRPcGVyYW5kVHlwZXMoY29waWVkSW5zdHJ1Y3Rp
b24oY3VycmVudEluc3RydWN0aW9uKSk7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDEpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKICAgICBHUFJS
ZWcgc2NyYXRjaEdQUiA9IHJlZ1QyOwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQ
UlJlZzsKICNlbHNlCisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gZ2V0T3BlcmFuZFR5cGVzKGN1
cnJlbnRJbnN0cnVjdGlvbik7CiAgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApOwogICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QzLCByZWdUMik7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwpA
QCAtOTg1LDkgKzEwMDUsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKLSAgICBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBBcml0aFByb2ZpbGUqIGFy
aXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAg
ICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1f
Ynl0ZWNvZGVPZmZzZXQpOworICAgICAgICBhcml0aFByb2ZpbGUgPSAmbV9jb2RlQmxvY2stPmFy
aXRoUHJvZmlsZUZvclBDKGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKICAgICBTbmlwcGV0T3BlcmFu
ZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9w
ZXJhbmQodHlwZXMuc2Vjb25kKCkpOwpAQCAtOTk2LDcgKzEwMTYsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihv
cDIsIHJpZ2h0UmVncyk7CiAKICAgICBKSVRTdWJHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCBy
aWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZw
UmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOwor
ICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCBhcml0aFBy
b2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC0xMDIzLDgg
KzEwNDMsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bfc3ViKEluc3RydWN0aW9uKiBjCiAjZW5k
aWYKIAogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKLSAgICAgICAgUmVzdWx0UHJv
ZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1f
Ynl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3Vi
UHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUp
OworICAgICAgICBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hcml0
aFByb2ZpbGVGb3JQQyhjdXJyZW50SW5zdHJ1Y3Rpb24pOworICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJl
Z3MsICZhcml0aFByb2ZpbGUpOwogICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3Vs
dCwgcmVzdWx0UmVncyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9zdWIpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAkocmV2
aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklU
KQogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCiAKQEAgLTEwMSw5ICsxMDIsOSBAQCB2b2lk
IEpJVERpdkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgfQogCiAgICAgLy8gSXMg
dGhlIHJlc3VsdCBhY3R1YWxseSBhbiBpbnRlZ2VyPyBUaGUgREZHIEpJVCB3b3VsZCByZWFsbHkg
bGlrZSB0byBrbm93LiBJZiBpdCdzCi0gICAgLy8gbm90IGFuIGludGVnZXIsIHdlIGluY3JlbWVu
dCBhIGNvdW50LiBJZiB0aGlzIHRvZ2V0aGVyIHdpdGggdGhlIHNsb3cgY2FzZSBjb3VudGVyCi0g
ICAgLy8gYXJlIGJlbG93IHRocmVzaG9sZCB0aGVuIHRoZSBERkcgSklUIHdpbGwgY29tcGlsZSB0
aGlzIGRpdmlzaW9uIHdpdGggYSBzcGVjdWxhdGlvbgotICAgIC8vIHRoYXQgdGhlIHJlbWFpbmRl
ciBpcyB6ZXJvLgorICAgIC8vIG5vdCBhbiBpbnRlZ2VyLCB3ZSBzZXQgYSBiaXQuIElmIHRoaXMg
dG9nZXRoZXIgd2l0aCB0aGUgc2xvdyBjYXNlIGNvdW50ZXIgYXJlIGJlbG93CisgICAgLy8gdGhy
ZXNob2xkIHRoZW4gdGhlIERGRyBKSVQgd2lsbCBjb21waWxlIHRoaXMgZGl2aXNpb24gd2l0aCBh
IHNwZWN1bGF0aW9uIHRoYXQgdGhlCisgICAgLy8gcmVtYWluZGVyIGlzIHplcm8uCiAKICAgICAv
LyBBcyB3ZWxsLCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgYSBkb3VibGUgcmVzdWx0IGhlcmUgd291
bGQgY2F1c2UgYW4gaW1wb3J0YW50IGZpZWxkCiAgICAgLy8gaW4gdGhlIGhlYXAgdG8gc29tZXRp
bWVzIGhhdmUgZG91YmxlcyBpbiBpdCwgcmVzdWx0aW5nIGluIGRvdWJsZSBwcmVkaWN0aW9ucyBn
ZXR0aW5nCkBAIC0xMjgsOCArMTI5LDggQEAgdm9pZCBKSVREaXZHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoQwogCiAgICAgbm90RG91YmxlWmVyby5saW5rKCZqaXQpOwogI2VuZGlmCi0gICAg
aWYgKG1fcmVzdWx0UHJvZmlsZSkKLSAgICAgICAgaml0LmFkZDMyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2Zp
bGUtPmFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkpKTsKKyAgICBpZiAobV9hcml0aFBy
b2ZpbGUpCisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRo
UHJvZmlsZTo6c3BlY2lhbEZhc3RQYXRoQml0KSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MobV9hcml0aFByb2ZpbGUtPmFkZHJlc3NPZkJpdHMoKSkpOwogICAgIGppdC5ib3hEb3VibGUo
bV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklURGl2R2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVREaXZHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyAr
MzgsNyBAQCBwdWJsaWM6CiAgICAgSklURGl2R2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRP
cGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdz
IHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCiAgICAgICAgIEZQ
UlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcg
c2NyYXRjaEZQUiwKLSAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxw
dHIpCisgICAgICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbnVsbHB0cikKICAgICAg
ICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5k
KHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00OCw3ICs0OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1f
c2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBS
KQotICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQorICAgICAgICAsIG1f
YXJpdGhQcm9maWxlKGFyaXRoUHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0
T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkp
OwogICAgIH0KQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQ
UjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7Ci0g
ICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOworICAgIEFyaXRoUHJvZmlsZSogbV9h
cml0aFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw5ICs0
MTYsMzMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLWlubGlu
ZSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKUnAgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpT
VmFsdWVSZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpT
VmFsdWVSZWdzIGFyZzIpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEs
IGFyZzIsIFRydXN0ZWRJbW1QdHIocmVzdWx0UHJvZmlsZSkpOworICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7Cisg
ICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFycCBvcGVyYXRpb24sIEpTVmFs
dWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgQXJpdGhQ
cm9maWxlKiBhcml0aFByb2ZpbGUpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIoYXJpdGhQcm9maWxlKSk7CisgICAgQ2FsbCBjYWxs
ID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVz
dWx0cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcnBK
YWljIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1Zh
bHVlUmVncyBhcmcyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqIGFkZElD
KQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVk
SW1tUHRyKGFyaXRoUHJvZmlsZSksIFRydXN0ZWRJbW1QdHIoYWRkSUMpKTsKKyAgICBDYWxsIGNh
bGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBS
ZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkph
aWMgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFs
dWVSZWdzIGFyZzIsIEpJVEFkZElDKiBhZGRJQykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhZGRJQykpOwogICAgIENhbGwgY2Fs
bCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKICAgICBzZXR1cFJl
c3VsdHMocmVzdWx0KTsKICAgICByZXR1cm4gY2FsbDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUTWF0aElDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRNYXRoSUMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUTWF0aElDLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklU
QWRkR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSklUTWF0aElDSW5saW5lUmVzdWx0LmgiCisjaW5j
bHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlJlcGF0Y2guaCIKKyNpbmNsdWRlICJTbmlw
cGV0T3BlcmFuZC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgTGlua0J1ZmZlcjsKKwor
c3RydWN0IE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSB7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IGZhc3RQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGZhc3RQYXRoRW5kOwor
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93UGF0aFN0YXJ0OworICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIHNsb3dQYXRoQ2FsbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xv
d1BhdGhKdW1wczsKKyAgICBib29sIHNob3VsZFNsb3dQYXRoUmVwYXRjaDsKK307CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBHZW5lcmF0b3JUeXBlPgorY2xhc3MgSklUTWF0aElDIHsKK3B1YmxpYzoK
KyAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lTG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0
YXJ0LmxhYmVsQXRPZmZzZXQobV9pbmxpbmVTaXplKTsgfQorICAgIENvZGVMb2NhdGlvbkxhYmVs
IHNsb3dQYXRoU3RhcnRMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQubGFiZWxBdE9m
ZnNldChtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0KTsgfQorICAgIENvZGVMb2NhdGlv
bkNhbGwgc2xvd1BhdGhDYWxsTG9jYXRpb24oKSB7IHJldHVybiBtX2lubGluZVN0YXJ0LmNhbGxB
dE9mZnNldChtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aENhbGxMb2NhdGlvbik7IH0KKworICAg
IGJvb2wgZ2VuZXJhdGVJbmxpbmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRpb25T
dGF0ZSYgc3RhdGUpCisgICAgeworICAgICAgICBzdGF0ZS5mYXN0UGF0aFN0YXJ0ID0gaml0Lmxh
YmVsKCk7CisgICAgICAgIHNpemVfdCBzdGFydFNpemUgPSBqaXQubV9hc3NlbWJsZXIuYnVmZmVy
KCkuY29kZVNpemUoKTsKKyAgICAgICAgSklUTWF0aElDSW5saW5lUmVzdWx0IHJlc3VsdCA9IG1f
Z2VuZXJhdG9yLmdlbmVyYXRlSW5saW5lKGppdCwgc3RhdGUpOworCisgICAgICAgIHN3aXRjaCAo
cmVzdWx0KSB7CisgICAgICAgIGNhc2UgSklUTWF0aElDSW5saW5lUmVzdWx0OjpHZW5lcmF0ZWRG
YXN0UGF0aDogeworICAgICAgICAgICAgc2l6ZV90IGlubGluZVNpemUgPSBqaXQubV9hc3NlbWJs
ZXIuYnVmZmVyKCkuY29kZVNpemUoKSAtIHN0YXJ0U2l6ZTsKKyAgICAgICAgICAgIGlmIChzdGF0
aWNfY2FzdDxwdHJkaWZmX3Q+KGlubGluZVNpemUpIDwgTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBS
ZXBsYWNlbWVudFNpemUoKSkgeworICAgICAgICAgICAgICAgIHNpemVfdCBub3BzVG9FbWl0SW5C
eXRlcyA9IE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkgLSBpbmxpbmVT
aXplOworICAgICAgICAgICAgICAgIGppdC5lbWl0Tm9wcyhub3BzVG9FbWl0SW5CeXRlcyk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBzdGF0ZS5zaG91bGRTbG93UGF0aFJlcGF0Y2ggPSB0
cnVlOworICAgICAgICAgICAgc3RhdGUuZmFzdFBhdGhFbmQgPSBqaXQubGFiZWwoKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGNhc2UgSklUTWF0aElDSW5s
aW5lUmVzdWx0OjpHZW5lcmF0ZUZ1bGxTbmlwcGV0OiB7CisgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7CisgICAgICAgICAgICBib29sIHJlc3VsdCA9IG1f
Z2VuZXJhdG9yLmdlbmVyYXRlRmFzdFBhdGgoaml0LCBlbmRKdW1wTGlzdCwgc3RhdGUuc2xvd1Bh
dGhKdW1wcyk7CisgICAgICAgICAgICBpZiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgc3Rh
dGUuZmFzdFBhdGhFbmQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgICAgICAgICBzdGF0ZS5zaG91
bGRTbG93UGF0aFJlcGF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBlbmRKdW1wTGlzdC5s
aW5rKCZqaXQpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNhc2UgSklUTWF0
aElDSW5saW5lUmVzdWx0OjpEb250R2VuZXJhdGU6IHsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgdm9pZCBnZW5lcmF0ZU91dE9mTGluZShWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBG
dW5jdGlvblB0ciBjYWxsUmVwbGFjZW1lbnQpCisgICAgeworICAgICAgICAvLyBXZSByZXdpcmUg
dG8gdGhlIGFsdGVybmF0ZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBhbGxv
Y2F0ZSB0aGUgb3V0IG9mIGxpbmUgcGF0aAorICAgICAgICAvLyBiZWNhdXNlIGlmIHdlIGZhaWwg
YWxsb2NhdGluZyB0aGUgb3V0IG9mIGxpbmUgcGF0aCwgd2UgZG9uJ3Qgd2FudCB0byB3YXN0ZSB0
aW1lIHRyeWluZyB0bworICAgICAgICAvLyBhbGxvY2F0ZSBpdCBpbiB0aGUgZnV0dXJlLgorICAg
ICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzbG93UGF0aENhbGxMb2Nh
dGlvbigpLCBjYWxsUmVwbGFjZW1lbnQpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIENDYWxs
SGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOworCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcExpc3QgZW5kSnVtcExpc3Q7IAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXBMaXN0IHNsb3dQYXRoSnVtcExpc3Q7IAorICAgICAgICAgICAgYm9vbCBlbWl0dGVkRmFzdFBh
dGggPSBtX2dlbmVyYXRvci5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgZW5kSnVtcExpc3QsIHNsb3dQ
YXRoSnVtcExpc3QpOworICAgICAgICAgICAgaWYgKCFlbWl0dGVkRmFzdFBhdGgpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1w
KCkpOworCisgICAgICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sIGppdCwgY29kZUJs
b2NrLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICAgICAgaWYgKGxpbmtCdWZmZXIu
ZGlkRmFpbFRvQWxsb2NhdGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIGxpbmtCdWZmZXIubGluayhlbmRKdW1wTGlzdCwgZG9uZUxvY2F0aW9uKCkpOworICAgICAg
ICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dQYXRoSnVtcExpc3QsIHNsb3dQYXRoU3RhcnRMb2Nh
dGlvbigpKTsKKworICAgICAgICAgICAgbV9jb2RlID0gRklOQUxJWkVfQ09ERV9GT1IoCisgICAg
ICAgICAgICAgICAgY29kZUJsb2NrLCBsaW5rQnVmZmVyLCAoIkpJVE1hdGhJQzogZ2VuZXJhdGlu
ZyBvdXQgb2YgbGluZSBJQyBzbmlwcGV0IikpOworICAgICAgICB9CisKKyAgICAgICAgeworICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgICAgICBh
dXRvIGp1bXAgPSBqaXQuanVtcCgpOworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhIG5v
cCBzbGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1bXBpbmcgaW50byB0aGUgbWlk
ZGxlIG9mIGFuIElDLgorICAgICAgICAgICAgYm9vbCBuZWVkc0JyYW5jaENvbXBhY3Rpb24gPSBm
YWxzZTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIo
KS5jb2RlU2l6ZSgpIDw9IHN0YXRpY19jYXN0PHNpemVfdD4obV9pbmxpbmVTaXplKSk7CisgICAg
ICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBtX2lubGluZVN0YXJ0LmRhdGFMb2Nh
dGlvbigpLCBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSwgSklUQ29tcGlsYXRp
b25NdXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21wYWN0aW9uKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsKKyAgICAgICAgICAgIGxpbmtCdWZmZXIu
bGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbChtX2NvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKTsKKyAgICAgICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJKSVRNYXRo
SUM6IGxpbmtpbmcgY29uc3RhbnQganVtcCB0byBvdXQgb2YgbGluZSBzdHViIikpOworICAgICAg
ICB9CisgICAgfQorCisgICAgdm9pZCBmaW5hbGl6ZUlubGluZUNvZGUoY29uc3QgTWF0aElDR2Vu
ZXJhdGlvblN0YXRlJiBzdGF0ZSwgTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKKyAgICB7CisgICAg
ICAgIENvZGVMb2NhdGlvbkxhYmVsIHN0YXJ0ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKHN0YXRl
LmZhc3RQYXRoU3RhcnQpOworICAgICAgICBtX2lubGluZVN0YXJ0ID0gc3RhcnQ7CisKKyAgICAg
ICAgbV9pbmxpbmVTaXplID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0
cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yoc3RhdGUuZmFzdFBh
dGhFbmQpKTsKKyAgICAgICAgQVNTRVJUKG1faW5saW5lU2l6ZSA+IDApOworCisgICAgICAgIG1f
ZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJsZXI6OmRp
ZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2Yoc3RhdGUuc2xvd1BhdGhDYWxsKSk7CisgICAgICAgIG1fZGVsdGFGcm9tU3RhcnRU
b1Nsb3dQYXRoU3RhcnQgPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRy
KAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIubG9jYXRpb25PZihzdGF0ZS5zbG93UGF0
aFN0YXJ0KSk7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG1fY29kZTsKKyAg
ICBDb2RlTG9jYXRpb25MYWJlbCBtX2lubGluZVN0YXJ0OworICAgIGludDMyX3QgbV9pbmxpbmVT
aXplOworICAgIGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb247
CisgICAgaW50MzJfdCBtX2RlbHRhRnJvbVN0YXJ0VG9TbG93UGF0aFN0YXJ0OworICAgIEdlbmVy
YXRvclR5cGUgbV9nZW5lcmF0b3I7Cit9OworCit0eXBlZGVmIEpJVE1hdGhJQzxKSVRBZGRHZW5l
cmF0b3I+IEpJVEFkZElDOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJM
RShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0ZvcndhcmRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUNGb3J3
YXJkcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRo
SUNGb3J3YXJkcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoSklUKQorCituYW1lc3BhY2UgSlNDIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVy
YXRvcj4gY2xhc3MgSklUTWF0aElDOworY2xhc3MgSklUQWRkR2VuZXJhdG9yOworCit0eXBlZGVm
IEpJVE1hdGhJQzxKSVRBZGRHZW5lcmF0b3I+IEpJVEFkZElDOworCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE1hdGhJQ0lubGluZVJlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUTWF0aElDSW5saW5lUmVzdWx0LmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQ0lubGluZVJlc3VsdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSklUKQorCituYW1lc3BhY2Ug
SlNDIHsKKworZW51bSBjbGFzcyBKSVRNYXRoSUNJbmxpbmVSZXN1bHQgeworICAgIEdlbmVyYXRl
ZEZhc3RQYXRoLAorICAgIEdlbmVyYXRlRnVsbFNuaXBwZXQsCisgICAgRG9udEdlbmVyYXRlCit9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAyMDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShKSVQpCiAK
KyNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklU
TXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQpAQCAtMTM3
LDcgKzEzOSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAg
ICAvLyBEbyBkb3VibGVWYXIgKiBkb3VibGVWYXIuCiAgICAgaml0Lm11bERvdWJsZShtX3JpZ2h0
RlBSLCBtX2xlZnRGUFIpOwogCi0gICAgaWYgKCFtX3Jlc3VsdFByb2ZpbGUpCisgICAgaWYgKCFt
X2FyaXRoUHJvZmlsZSkKICAgICAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0
KTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGJlbG93
IGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8IDUxIGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIg
dmFsdWUuCkBAIC0xNDksMTggKzE1MSwxOCBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChDCiAgICAgICAgIGppdC5tb3ZlRG91YmxlVG82NChtX2xlZnRGUFIsIG1fcmVz
dWx0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub3ROZWdhdGl2
ZVplcm8gPSBqaXQuYnJhbmNoNjQoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5
bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChuZWdhdGl2ZVplcm9CaXRzKSk7
CiAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJv
ZmlsZTo6TmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVz
dWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhl
bHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7
CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAg
ICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxs
SGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3Mo
KSkpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFBy
b2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyht
X2FyaXRoUHJvZmlsZS0+YWRkcmVzc09mQml0cygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9y
ZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0
cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LmFu
ZDMyKENDYWxsSGVscGVyczo6SW1tMzIoMHg3ZmYpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgbm9JbnQ1Mk92ZXJmbG93ID0gaml0LmJyYW5jaDMyKENDYWxsSGVs
cGVyczo6TGVzc1RoYW5PckVxdWFsLCBtX3NjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKDB4NDMxKSk7CiAKLSAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1
dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBq
aXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihBcml0aFByb2ZpbGU6OkludDUyT3Zl
cmZsb3cpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX2FyaXRoUHJvZmlsZS0+YWRk
cmVzc09mQml0cygpKSk7CiAgICAgICAgIG5vSW50NTJPdmVyZmxvdy5saW5rKCZqaXQpOwogCiAg
ICAgICAgIGRvbmUubGluaygmaml0KTsKQEAgLTE3MSwxOCArMTczLDE4IEBAIHZvaWQgSklUTXVs
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmFw
cGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgbV9yZXN1bHQucGF5bG9h
ZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOwogICAgICAgICBub3ROZWdh
dGl2ZVplcm8uYXBwZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBtX3Jl
c3VsdC50YWdHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobmVnYXRpdmVaZXJvQml0
cyA+PiAzMikpKTsKIAotICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFk
ZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5v
cjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFyaXRoUHJvZmlsZTo6TmVnWmVyb0RvdWJs
ZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNz
T2ZCaXRzKCkpKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgp
OwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOwotICAgICAgICBqaXQub3Iz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91
YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRy
ZXNzT2ZGbGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKEFyaXRoUHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1
dGVBZGRyZXNzKG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBq
aXQubW92ZShtX3Jlc3VsdC50YWdHUFIoKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVy
c2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0zMig1MiAtIDMyKSwgbV9zY3JhdGNoR1BSKTsKICAg
ICAgICAgaml0LmFuZDMyKENDYWxsSGVscGVyczo6SW1tMzIoMHg3ZmYpLCBtX3NjcmF0Y2hHUFIp
OwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm9JbnQ1Mk92ZXJmbG93ID0gaml0LmJyYW5j
aDMyKENDYWxsSGVscGVyczo6TGVzc1RoYW5PckVxdWFsLCBtX3NjcmF0Y2hHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKDB4NDMxKSk7CiAgICAgICAgIAotICAgICAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93KSwg
Q0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZG
bGFncygpKSk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEFy
aXRoUHJvZmlsZTo6SW50NTJPdmVyZmxvdyksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KG1fYXJpdGhQcm9maWxlLT5hZGRyZXNzT2ZCaXRzKCkpKTsKIAogICAgICAgICBtX2VuZEp1bXBM
aXN0LmFwcGVuZChub0ludDUyT3ZlcmZsb3cpOwogICAgICAgICBpZiAobV9zY3JhdGNoR1BSID09
IG1fcmVzdWx0LnRhZ0dQUigpIHx8IG1fc2NyYXRjaEdQUiA9PSBtX3Jlc3VsdC5wYXlsb2FkR1BS
KCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmgJ
KHJldmlzaW9uIDIwMzUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2Vu
ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEpJ
VE11bEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQg
cmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxl
ZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAogICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJp
Z2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCi0gICAgICAgIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyKQorICAgICAgICBBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0
T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAg
ICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwg
bV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikK
ICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKLSAgICAgICAgLCBtX3Jlc3VsdFBy
b2ZpbGUocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgLCBtX2FyaXRoUHJvZmlsZShhcml0aFByb2Zp
bGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0
SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSk7CiAgICAg
fQpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAg
IEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1
bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAgQXJpdGhQcm9maWxlKiBtX2FyaXRoUHJv
ZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIENDYWxs
SGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkFyaXRoUHJvZmls
ZS5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJDb21tb25TbG93
UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIKQEAgLTIyNDcsMTggKzIy
NDgsODIgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdAogICAgIHJl
dHVybiBqc1N0cmluZyhleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KS5zdHJpbmco
KSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRB
ZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3Ax
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworICAgIAorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNBZGQoZXhlYywgb3AxLCBvcDIpKTsKK30KKworQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcHJvZmlsZWRBZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJv
ZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AyKTsKKworICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOworICAgIGFyaXRoUHJvZmls
ZS0+b2JzZXJ2ZUxIU0FuZFJIUyhvcDEsIG9wMik7CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
QWRkKGV4ZWMsIG9wMSwgb3AyKTsKKyAgICBhcml0aFByb2ZpbGUtPm9ic2VydmVSZXN1bHQocmVz
dWx0KTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7
CisgICAgcmV0dXJuIHVucHJvZmlsZWRBZGQoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7
Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9m
aWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQoreworICAgIHJl
dHVybiBwcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCBhcml0aFByb2Zp
bGUpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRk
UHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
LCBKSVRBZGRJQyogYWRkSUMpCit7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSBv
cDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKKyAg
ICBhcml0aFByb2ZpbGUtPm9ic2VydmVMSFNBbmRSSFMob3AxLCBvcDIpOworICAgIGF1dG8gbm9u
T3B0aW1pemVWYXJpYW50ID0gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vT3B0aW1pemU7Cisg
ICAgYWRkSUMtPmdlbmVyYXRlT3V0T2ZMaW5lKCp2bSwgZXhlYy0+Y29kZUJsb2NrKCksIG5vbk9w
dGltaXplVmFyaWFudCk7CiAgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBv
cDEsIG9wMik7CisgICAgYXJpdGhQcm9maWxlLT5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CisKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSwgSklUQWRkSUMqKQoreworICAgIHJldHVy
biBwcm9maWxlZEFkZChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCBhcml0aFByb2ZpbGUp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0
aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyogYWRkSUMpCit7CisgICAgVk0qIHZtID0gJmV4
ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisK
KyAgICBhdXRvIG5vbk9wdGltaXplVmFyaWFudCA9IG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6
ZTsKKyAgICBhZGRJQy0+Z2VuZXJhdGVPdXRPZkxpbmUoKnZtLCBleGVjLT5jb2RlQmxvY2soKSwg
bm9uT3B0aW1pemVWYXJpYW50KTsKKworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDIpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGQoZXhlYywgb3AxLCBvcDIpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXplKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgSklUQWRkSUMqKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjI2Nyw3ICsyMzMyLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIEpTVmFsdWUgb3Ay
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOwotICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVy
aWNuZXNzKHJlc3VsdCk7CisKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKQEAgLTIyODQsNyArMjM0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxl
ZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKQEAgLTIyOTYs
NyArMjM2MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAg
ICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzTnVtYmVyKGEgKiBiKTsKLSAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVz
cyhyZXN1bHQpOworICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2ZVJlc3VsdChyZXN1bHQpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMjMxMyw3ICsyMzc4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0
UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQ
cm9maWxlKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwpAQCAtMjMyNSw3ICsyMzkwLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIGRvdWJsZSBiID0gb3AyLnRvTnVt
YmVyKGV4ZWMpOwogICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOwot
ICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNuZXNzKHJlc3VsdCk7CisgICAgYXJpdGhQ
cm9maWxlLT5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAkocmV2aXNpb24gMjAzNTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShKSVQpCiAKKyNpbmNsdWRlICJKSVRNYXRoSUNGb3J3YXJkcy5oIgogI2luY2x1ZGUgIk1h
Y3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5j
bHVkZSAiU2xvd1BhdGhSZXR1cm5UeXBlLmgiCkBAIC00Miw2ICs0Myw3IEBAIGNsYXNzIEFycmF5
UHJvZmlsZTsKIGNsYXNzIENhbGxMaW5rSW5mbzsKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIEV4
ZWNTdGF0ZTsKK2NsYXNzIEpJVEFkZEdlbmVyYXRvcjsKIGNsYXNzIEpTQXJyYXk7CiBjbGFzcyBK
U0Z1bmN0aW9uOwogY2xhc3MgSlNMZXhpY2FsRW52aXJvbm1lbnQ7CkBAIC01NCw3ICs1Niw3IEBA
IGNsYXNzIFdhdGNocG9pbnRTZXQ7CiAKIHN0cnVjdCBCeVZhbEluZm87CiBzdHJ1Y3QgSW5saW5l
Q2FsbEZyYW1lOwotc3RydWN0IFJlc3VsdFByb2ZpbGU7CitzdHJ1Y3QgQXJpdGhQcm9maWxlOwog
CiB0eXBlZGVmIEV4ZWNTdGF0ZSBDYWxsRnJhbWU7CiAKQEAgLTY5LDYgKzcxLDcgQEAgdHlwZWRl
ZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgQTogSlNBcnJheSoKICAgICBBYXA6IEFycmF5QWxsb2Nh
dGlvblByb2ZpbGUqCiAgICAgQXA6IEFycmF5UHJvZmlsZSoKKyAgICBBcnA6IEFyaXRoUHJvZmls
ZSoKICAgICBCeTogQnlWYWxJbmZvKgogICAgIEM6IEpTQ2VsbCoKICAgICBDYjogQ29kZUJsb2Nr
KgpAQCAtODEsNiArODQsNyBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBJY2Y6IElu
bGluZUNhbGxGcmFtZSoKICAgICBJZGM6IGNvbnN0IElkZW50aWZpZXIqCiAgICAgSjogRW5jb2Rl
ZEpTVmFsdWUKKyAgICBKYWljOiBKSVRBZGRJQyoKICAgICBKY3A6IGNvbnN0IEpTVmFsdWUqCiAg
ICAgSnNjOiBKU1Njb3BlKgogICAgIEpzZjogSlNGdW5jdGlvbioKQEAgLTkyLDcgKzk2LDYgQEAg
dHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgUTogaW50NjRfdAogICAgIFI6IFJlZ2lzdGVy
CiAgICAgUmVvOiBSZWdFeHBPYmplY3QqCi0gICAgUnA6IFJlc3VsdFByb2ZpbGUqCiAgICAgUzog
c2l6ZV90CiAgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVT
dHViSW5mbyoKQEAgLTEzMyw3ICsxMzYsOSBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRf
T1BFUkFUSU9OICpKCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJ
VE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBBcnJheVByb2ZpbGUqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJ
T04gKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09Q
RVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci10eXBlZGVmIEVuY29kZWRKU1ZhbHVl
IChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpScCkoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxlKik7Cit0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpBcnApKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJpdGhQcm9maWxlKik7Cit0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSkpBcnBK
YWljKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFyaXRoUHJv
ZmlsZSosIEpJVEFkZElDKik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9O
ICpKX0pJVE9wZXJhdGlvbl9FSkpKYWljKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEpJVEFkZElDKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BF
UkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQz
Ml90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0
aW9uX0VKc3NSZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FSnNzUmVv
SnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CkBA
IC00MDgsMTEgKzQxMywxNSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5lCiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3Rh
dGUqLCBpbnQzMl90KTsKIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZUFkZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVB
ZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBBcml0aFByb2ZpbGUqLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vT3B0aW1pemUo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgQXJpdGhQcm9maWxlKiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUQWRkSUMqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
UmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqKSBXVEZf
SU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2Zp
bGVyTG9nKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShy
ZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKIAorI2luY2x1ZGUgIkFyaXRoUHJv
ZmlsZS5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC04Myw4ICs4
NSw4IEBAIHZvaWQgSklUU3ViR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICByaWdo
dFdhc0ludGVnZXIubGluaygmaml0KTsKIAogICAgIGppdC5zdWJEb3VibGUobV9yaWdodEZQUiwg
bV9sZWZ0RlBSKTsKLSAgICBpZiAobV9yZXN1bHRQcm9maWxlKQotICAgICAgICBtX3Jlc3VsdFBy
b2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKKyAgICBpZiAobV9hcml0aFByb2ZpbGUpCisgICAg
ICAgIG1fYXJpdGhQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CiAKICAgICBqaXQuYm94RG91
YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBAIHB1YmxpYzoKICAgICBKSVRTdWJHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVm
dE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKICAgICAgICAg
RlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJl
ZyBzY3JhdGNoRlBSLAotICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVs
bHB0cikKKyAgICAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyKQogICAg
ICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJh
bmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ4LDcgKzQ4
LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwg
bV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hG
UFIpCi0gICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUpCisgICAgICAgICwg
bV9hcml0aFByb2ZpbGUoYXJpdGhQcm9maWxlKQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0
ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAg
IEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVn
IG1fc2NyYXRjaEZQUjsKLSAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CisgICAg
QXJpdGhQcm9maWxlKiBtX2FyaXRoUHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRo
IHsgZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMjAzNTM0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgRnVuY3Rpb25QdHIgcmVhZENhbGxUYXJnZXQoQ29k
ZUJsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIHZvaWQgcmVwYXRjaENhbGwoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVMb2NhdGlvbkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIgbmV3
Q2FsbGVlRnVuY3Rpb24pCit2b2lkIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVG
dW5jdGlvbikKIHsKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICBpZiAoY29kZUJsb2NrLT5qaXRU
eXBlKCkgPT0gSklUQ29kZTo6RlRMSklUKSB7CkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGljIElu
bGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRAogCiAgICAgICAgICAgICAgICAgYm9vbCBn
ZW5lcmF0ZWRDb2RlSW5saW5lID0gSW5saW5lQWNjZXNzOjpnZW5lcmF0ZUFycmF5TGVuZ3RoKCpj
b2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBqc0Nhc3Q8SlNBcnJheSo+KGJhc2VWYWx1ZSkpOwog
ICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5saW5lKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRp
b24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1Yklu
Zm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1
bmN0aW9uKGtpbmQpKTsKICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdEFycmF5TGVu
Z3RoKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlv
biB0cnlDYWNoZUdldEJ5SUQKICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRDb2RlSW5saW5lKSB7
CiAgICAgICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpHZXRCeUlkU2VsZlBhdGNoLCBzdHJ1
Y3R1cmUtPmNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWUpKTsKICAgICAgICAgICAgICAgICBzdHJ1
Y3R1cmUtPnN0YXJ0V2F0Y2hpbmdQcm9wZXJ0eUZvclJlcGxhY2VtZW50cyh2bSwgc2xvdC5jYWNo
ZWRPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAgcmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlk
RnVuY3Rpb24oa2luZCkpOworICAgICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2Fs
bChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJpYXRl
T3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihraW5kKSk7CiAgICAgICAgICAgICAgICAgc3R1Yklu
Zm8uaW5pdEdldEJ5SWRTZWxmKGNvZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNl
dCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAg
ICAgfQpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgcmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiBl
eGVjLCBKU1YKICAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2Rl
QmxvY2soKS0+bV9sb2NrLCBleGVjLT52bSgpLmhlYXApOwogICAgIAogICAgIGlmICh0cnlDYWNo
ZUdldEJ5SUQoZXhlYywgYmFzZVZhbHVlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBr
aW5kKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxv
Y2soKSwgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmlj
R2V0QnlJZEZ1bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxs
KGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHBy
b3ByaWF0ZUdlbmVyaWNHZXRCeUlkRnVuY3Rpb24oa2luZCkpOwogfQogCiBzdGF0aWMgVl9KSVRP
cGVyYXRpb25fRVNzaUpKSSBhcHByb3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oY29uc3Qg
UHV0UHJvcGVydHlTbG90ICZzbG90LCBQdXRLaW5kIHB1dEtpbmQpCkBAIC0zNzIsNyArMzcyLDcg
QEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRAogICAgICAgICAgICAg
ICAgIGJvb2wgZ2VuZXJhdGVkQ29kZUlubGluZSA9IElubGluZUFjY2Vzczo6Z2VuZXJhdGVTZWxm
UHJvcGVydHlSZXBsYWNlKHZtLCBzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNl
dCgpKTsKICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewogICAgICAg
ICAgICAgICAgICAgICBMT0dfSUMoKElDRXZlbnQ6OlB1dEJ5SWRTZWxmUGF0Y2gsIHN0cnVjdHVy
ZS0+Y2xhc3NJbmZvKCksIGlkZW50KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJlcGF0Y2hDYWxs
KGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVP
cHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1Bh
dGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nUHV0QnlJZEZ1bmN0aW9uKHNs
b3QsIHB1dEtpbmQpKTsKICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdFB1dEJ5SWRS
ZXBsYWNlKGNvZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgICAgICB9
CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCByZXBhdGNoUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMs
IEpTVgogICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGV4ZWMtPmNvZGVCbG9j
aygpLT5tX2xvY2ssIGV4ZWMtPnZtKCkuaGVhcCk7CiAgICAgCiAgICAgaWYgKHRyeUNhY2hlUHV0
QnlJRChleGVjLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHVi
SW5mbywgcHV0S2luZCkgPT0gR2l2ZVVwT25DYWNoZSkKLSAgICAgICAgcmVwYXRjaENhbGwoZXhl
Yy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFwcHJvcHJp
YXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7CisgICAgICAgIGZ0bFRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1
dEtpbmQpKTsKIH0KIAogc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeVJlcGF0Y2hJbigKQEAg
LTUyOSw3ICs1MjksNyBAQCB2b2lkIHJlcGF0Y2hJbigKIHsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgaWYgKHRyeVJlcGF0Y2hJbihleGVjLCBi
YXNlLCBpZGVudCwgd2FzRm91bmQsIHNsb3QsIHN0dWJJbmZvKSA9PSBHaXZlVXBPbkNhY2hlKQot
ICAgICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uc2xvd1BhdGhD
YWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uSW4pOworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRj
aENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCks
IG9wZXJhdGlvbkluKTsKIH0KIAogc3RhdGljIHZvaWQgbGlua1Nsb3dGb3IoVk0qLCBDYWxsTGlu
a0luZm8mIGNhbGxMaW5rSW5mbywgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGVSZWYpCkBAIC05
MDEsNyArOTAxLDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogCiB2b2lkIHJlc2V0R2V0
QnlJRChDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBH
ZXRCeUlES2luZCBraW5kKQogewotICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8u
c2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlJZEZ1bmN0
aW9uKGtpbmQpKTsKKyAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHVi
SW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlk
RnVuY3Rpb24oa2luZCkpOwogICAgIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCgqY29k
ZUJsb2NrLT52bSgpLCBzdHViSW5mbywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkp
OwogfQogCkBAIC05MjAsNyArOTIwLDcgQEAgdm9pZCByZXNldFB1dEJ5SUQoQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIAogICAgICAgICBvcHRpbWl6ZWRGdW5jdGlvbiA9IG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3ROb25TdHJpY3RPcHRpbWl6ZTsKICAgICB9CiAKLSAgICByZXBhdGNoQ2FsbChjb2RlQmxv
Y2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIG9wdGltaXplZEZ1bmN0aW9uKTsK
KyAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0
aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRGdW5jdGlvbik7CiAgICAgSW5saW5lQWNjZXNzOjpy
ZXdpcmVTdHViQXNKdW1wKCpjb2RlQmxvY2stPnZtKCksIHN0dWJJbmZvLCBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24oKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5oCShyZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCB2b2lkIGxpbmtQb2x5bW9y
cGhpY0NhbGwoRXhlY1N0YXRlKiwgQ2FsCiB2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBT
dHJ1Y3R1cmVTdHViSW5mbyYsIEdldEJ5SURLaW5kKTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVC
bG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0SW4oQ29kZUJsb2NrKiwgU3Ry
dWN0dXJlU3R1YkluZm8mKTsKK3ZvaWQgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKENvZGVCbG9j
ayosIENvZGVMb2NhdGlvbkNhbGwsIEZ1bmN0aW9uUHRyIG5ld0NhbGxlZUZ1bmN0aW9uKTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludERhdGEuY3BwCShyZXZpc2lvbiAyMDM1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgogCisjaW5jbHVkZSAiQXJp
dGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvZGVUeXBlLmgiCkBAIC0yMjMsNiArMjI0LDQ3IEBA
IHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogI2VuZGlmCiAKICAgICBBU1NF
UlQoU3RyaW5nSW1wbDo6c19oYXNoRmxhZzhCaXRCdWZmZXIgPT0gOCk7CisKKyAgICB7CisgICAg
ICAgIHVpbnQzMl90IGJpdHMgPSAweDEyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMp
OworICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2Zp
bGUubGhzU2F3SW50MzIoKTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd0ludDMyKCk7Cisg
ICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOworICAgICAgICBBU1NF
UlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUlu
dDMyKCkpOworICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09i
c2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQz
Ml90IGJpdHMgPSAweDIyMDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAg
ICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3
TnVtYmVyKCk7CisgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOworICAgICAgICBB
U1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRo
UHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7
CisgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRU
eXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYml0
cyA9IDB4MjQwMDAwOworICAgICAgICBVTlVTRURfUEFSQU0oYml0cyk7CisgICAgICAgIEFyaXRo
UHJvZmlsZSBhcml0aFByb2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZS5saHNTYXdOdW1iZXIo
KTsKKyAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQo
YXJpdGhQcm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmls
ZTo6ZnJvbUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAg
ICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCku
aXNPbmx5TnVtYmVyKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJpdHMgPSAw
eDE0MDAwMDsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOworICAgICAgICBBcml0aFByb2Zp
bGUgYXJpdGhQcm9maWxlOworICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKKyAg
ICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd051bWJlcigpOworICAgICAgICBBU1NFUlQoYXJpdGhQ
cm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKKyAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJv
bUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgQVNT
RVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlO
dW1iZXIoKSk7CisgICAgfQogfQogI2lmIENPTVBJTEVSKENMQU5HKQogI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDIwMzUzNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDE0LDYgKzEwMTQsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDAs
IHQyLCB0MCkKICAgICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDFOb3RJbnQKICAgICBiaW5lcSB0
MywgSW50MzJUYWcsIC5vcDJOb3RJbnQKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUp
CisgICAgb3JpIEFyaXRoUHJvZmlsZUludEludCwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlv
bih0NSwgNCkKICAgICBsb2FkaSA0W1BDXSwgdDIKICAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3Rv
cmUodDMsIHQxLCB0MCwgLnNsb3csIHQyKQogICAgIGRpc3BhdGNoKDUpCkBAIC0xMDIzLDEwICsx
MDI2LDE2IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBi
aWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAgICBiaWIgdDMsIExvd2VzdFRhZywgLm9wMU5vdElu
dE9wMkRvdWJsZQogICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNsb3cKKyAgICBsb2FkaXNGcm9t
SW5zdHJ1Y3Rpb24oNCwgdDUpCisgICAgb3JpIEFyaXRoUHJvZmlsZU51bWJlckludCwgdDUKKyAg
ICBzdG9yZWlzVG9JbnN0cnVjdGlvbih0NSwgNCkKICAgICBjaTJkIHQxLCBmdDEKICAgICBqbXAg
Lm9wMU5vdEludFJlYWR5CiAub3AxTm90SW50T3AyRG91YmxlOgogICAgIGZpaTJkIHQxLCB0Mywg
ZnQxCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQ1KQorICAgIG9yaSBBcml0aFByb2Zp
bGVOdW1iZXJOdW1iZXIsIHQ1CisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odDUsIDQpCiAub3Ax
Tm90SW50UmVhZHk6CiAgICAgbG9hZGkgNFtQQ10sIHQxCiAgICAgZmlpMmQgdDAsIHQyLCBmdDAK
QEAgLTEwMzgsNiArMTA0Nyw5IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9w
ZXJhdGkKICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNv
bmQgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IG5vdC4KICAgICBsb2FkaSA0W1BDXSwgdDIKICAgICBi
aWEgdDMsIExvd2VzdFRhZywgLnNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDUp
CisgICAgb3JpIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUKKyAgICBzdG9yZWlzVG9JbnN0cnVj
dGlvbih0NSwgNCkKICAgICBjaTJkIHQwLCBmdDAKICAgICBmaWkyZCB0MSwgdDMsIGZ0MQogICAg
IGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyMDM1
MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQkod29ya2luZyBjb3B5KQpAQCAtODkzLDYgKzg5Myw5IEBAIG1hY3JvIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBicWIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJO
b3RJbnQKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAgaW50ZWdlck9wZXJh
dGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
big0LCB0MSkKKyAgICBvcmkgQXJpdGhQcm9maWxlSW50SW50LCB0MQorICAgIHN0b3JlaXNUb0lu
c3RydWN0aW9uKHQxLCA0KQogICAgIGRpc3BhdGNoKDUpCiAKIC5vcDFOb3RJbnQ6CkBAIC05MDIs
OCArOTA1LDE0IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAg
ICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdwogICAgIGFkZHEgdGFnVHlwZU51bWJlciwg
dDEKICAgICBmcTJkIHQxLCBmdDEKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisg
ICAgb3JpIEFyaXRoUHJvZmlsZU51bWJlck51bWJlciwgdDIKKyAgICBzdG9yZWlzVG9JbnN0cnVj
dGlvbih0MiwgNCkKICAgICBqbXAgLm9wMU5vdEludFJlYWR5CiAub3AxTm90SW50T3AySW50Ogor
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAgICBvcmkgQXJpdGhQcm9maWxlTnVt
YmVySW50LCB0MgorICAgIHN0b3JlaXNUb0luc3RydWN0aW9uKHQyLCA0KQogICAgIGNpMmQgdDEs
IGZ0MQogLm9wMU5vdEludFJlYWR5OgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikK
QEAgLTkxOSw2ICs5MjgsOSBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVy
YXRpCiAgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25k
IGlzIGRlZmluaXRlbHkgbm90LgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKICAg
ICBidHF6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
big0LCB0MykKKyAgICBvcmkgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0MworICAgIHN0b3JlaXNU
b0luc3RydWN0aW9uKHQzLCA0KQogICAgIGNpMmQgdDAsIGZ0MAogICAgIGFkZHEgdGFnVHlwZU51
bWJlciwgdDEKICAgICBmcTJkIHQxLCBmdDEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDIwMzUzNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQko
d29ya2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1MiwxMiBAQCBjb25zdCBJc0ludmFsaWRhdGVkID0g
MgogIyBTaGFkb3dDaGlja2VuIGRhdGEKIGNvbnN0IFNoYWRvd0NoaWNrZW5UYWlsTWFya2VyID0g
MHg3YTExCiAKKyMgQXJpdGhQcm9maWxlIGRhdGEKK2NvbnN0IEFyaXRoUHJvZmlsZUludEludCA9
IDB4MTIwMDAwCitjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJJbnQgPSAweDIyMDAwMAorY29uc3Qg
QXJpdGhQcm9maWxlTnVtYmVyTnVtYmVyID0gMHgyNDAwMDAKK2NvbnN0IEFyaXRoUHJvZmlsZUlu
dE51bWJlciA9IDB4MTQwMDAwCisKICMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KIGlmIEpT
VkFMVUU2NAogICAgICMgLSBVc2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhl
IFBDOiBvbmUgcmVnaXN0ZXIgZm9yIHRoZQpAQCAtMjg2LDYgKzI5MiwxMCBAQCBpZiBKU1ZBTFVF
NjQKICAgICAgICAgbG9hZHAgb2Zmc2V0ICogOFtQQiwgUEMsIDhdLCBkZXN0CiAgICAgZW5kCiAg
ICAgCisgICAgbWFjcm8gc3RvcmVpc1RvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKKyAgICAg
ICAgc3RvcmVpIHZhbHVlLCBvZmZzZXQgKiA4W1BCLCBQQywgOF0KKyAgICBlbmQKKwogICAgIG1h
Y3JvIHN0b3JlcFRvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKICAgICAgICAgc3RvcmVwIHZh
bHVlLCBvZmZzZXQgKiA4W1BCLCBQQywgOF0KICAgICBlbmQKQEAgLTI5OSw2ICszMDksMTAgQEAg
ZWxzZQogICAgIG1hY3JvIGxvYWRwRnJvbUluc3RydWN0aW9uKG9mZnNldCwgZGVzdCkKICAgICAg
ICAgbG9hZHAgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAgICBlbmQKKworICAgIG1hY3JvIHN0b3Jl
aXNUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCisgICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zm
c2V0ICogNFtQQ10KKyAgICBlbmQKIGVuZAogCiBpZiBYODZfNjRfV0lOCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaAkocmV2aXNpb24gMjAzNTM0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDQ2ICszMiw0OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAg
ICBmcmllbmQgc3RydWN0IE9wZXJhbmRUeXBlczsKIAotICAgICAgICB0eXBlZGVmIGNoYXIgVHlw
ZTsKKyAgICAgICAgdHlwZWRlZiB1aW50OF90IFR5cGU7CiAgICAgICAgIHN0YXRpYyBjb25zdCBU
eXBlIFR5cGVJbnQzMiA9IDE7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBU
eXBlTWF5YmVOdW1iZXIgPSAweDA0OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5
YmVTdHJpbmcgPSAweDA4OwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxs
ICAgPSAweDEwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAw
eDIwOwotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVPdGhlciAgPSAweDQwOwor
ICAgICAgICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDAyOworICAgICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVTdHJpbmcgPSAweDA0OworICAgICAgICBzdGF0
aWMgY29uc3QgVHlwZSBUeXBlTWF5YmVOdWxsICAgPSAweDA4OworICAgICAgICBzdGF0aWMgY29u
c3QgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDEwOworICAgICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBUeXBlTWF5YmVPdGhlciAgPSAweDIwOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBUeXBlIFR5
cGVCaXRzID0gVHlwZU1heWJlTnVtYmVyIHwgVHlwZU1heWJlU3RyaW5nIHwgVHlwZU1heWJlTnVs
bCB8IFR5cGVNYXliZUJvb2wgfCBUeXBlTWF5YmVPdGhlcjsKIAorICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBudW1CaXRzTmVlZGVkID0gNjsKKyAgICAgICAgc3RhdGljX2Fz
c2VydCgoVHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRlZCkgLSAxKSkgPT0gVHlwZUJpdHMs
ICJUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MuIik7CisKICAgICAgICAgZXhwbGlj
aXQgUmVzdWx0VHlwZShUeXBlIHR5cGUpCi0gICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAg
ICAgICAgICAgOiBtX2JpdHModHlwZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICBwdWJs
aWM6CiAgICAgICAgIGJvb2wgaXNJbnQzMigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBtX3R5cGUgJiBUeXBlSW50MzI7CisgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYg
VHlwZUludDMyOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNOdW1iZXIo
KSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gKG1fdHlwZSAmIFR5cGVCaXRz
KSA9PSBUeXBlTWF5YmVOdW1iZXI7CisgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAmIFR5cGVC
aXRzKSA9PSBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGJv
b2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOworICAgICAgICAgICAg
cmV0dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOwogICAgICAgICB9
CiAKICAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNCb29sZWFuKCkgY29uc3QKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlQm9vbDsK
KyAgICAgICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7
CiAgICAgICAgIH0KIAogICAgICAgICBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbV90eXBlICYgVHlwZU1heWJlTnVtYmVyOworICAgICAg
ICAgICAgcmV0dXJuIG1fYml0cyAmIFR5cGVNYXliZU51bWJlcjsKICAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgaXNOb3ROdW1iZXIoKSBjb25zdApAQCAtMTQxLDggKzE0MywxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBudW1iZXJUeXBlSXNJbnQzMigpOwogICAgICAg
ICB9CiAKKyAgICAgICAgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CisKICAg
ICBwcml2YXRlOgotICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgVHlwZSBtX2JpdHM7CiAg
ICAgfTsKICAgICAKICAgICBzdHJ1Y3QgT3BlcmFuZFR5cGVzCkBAIC0xNTIsOCArMTU2LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGluaXRpYWxpemUgb25l
IG9mIHRoZSBpbnQgdG8gZW5zdXJlIHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgc3Ry
dWN0IGlzIGluaXRpYWxpemVkLgogICAgICAgICAgICAgbV91LmkgPSAwOwotICAgICAgICAgICAg
bV91LnJkcy5maXJzdCA9IGZpcnN0Lm1fdHlwZTsKLSAgICAgICAgICAgIG1fdS5yZHMuc2Vjb25k
ID0gc2Vjb25kLm1fdHlwZTsKKyAgICAgICAgICAgIG1fdS5yZHMuZmlyc3QgPSBmaXJzdC5tX2Jp
dHM7CisgICAgICAgICAgICBtX3UucmRzLnNlY29uZCA9IHNlY29uZC5tX2JpdHM7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHVuaW9uIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjAzNTM0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgpAQCAtMzU5LDIyICszNjAsMjEgQEAgU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX25lZ2F0ZSkKIH0KIAogI2lmIEVOQUJMRShERkdfSklUKQotc3RhdGljIHZvaWQg
dXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJbnN0
cnVjdGlvbiogcGMsIEpTVmFsdWUgcmVzdWx0LCBKU1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmlnaHQp
CitzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4ZWNTdGF0
ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBKU1ZhbHVlIHJlc3VsdCwgSlNWYWx1ZSBsZWZ0LCBK
U1ZhbHVlIHJpZ2h0KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJs
b2NrKCk7Ci0gICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjb2RlQmxvY2stPmJ5dGVjb2Rl
T2Zmc2V0KHBjKTsKLSAgICBSZXN1bHRQcm9maWxlKiBwcm9maWxlID0gY29kZUJsb2NrLT5lbnN1
cmVSZXN1bHRQcm9maWxlKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBBcml0aFByb2ZpbGUmIHByb2Zp
bGUgPSBjb2RlQmxvY2stPmFyaXRoUHJvZmlsZUZvclBDKHBjKTsKIAogICAgIGlmIChyZXN1bHQu
aXNOdW1iZXIoKSkgewogICAgICAgICBpZiAoIXJlc3VsdC5pc0ludDMyKCkpIHsKICAgICAgICAg
ICAgIGlmIChsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMyKCkpCi0gICAgICAgICAgICAg
ICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KCk7CisgICAgICAgICAgICAgICAg
cHJvZmlsZS5zZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKTsKIAogICAgICAgICAgICAgZG91Ymxl
IGRvdWJsZVZhbCA9IHJlc3VsdC5hc051bWJlcigpOwogICAgICAgICAgICAgaWYgKCFkb3VibGVW
YWwgJiYgc3RkOjpzaWduYml0KGRvdWJsZVZhbCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZS0+
c2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRP
YnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOworICAgICAgICAgICAg
ICAgIHByb2ZpbGUuc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7CiAKICAgICAgICAgICAg
ICAgICAvLyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sgaGVyZSBpbnRlbnRpb25hbGx5IG9taXRz
IDFsbCA8PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVlLgogICAgICAgICAgICAg
ICAgIC8vIFRoZXJlZm9yZSwgd2Ugd2lsbCBnZXQgYSBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgcmVz
dWx0IGlzIHRoYXQgdmFsdWUuIFRoaXMgaXMgaW50ZW50aW9uYWxseQpAQCAtMzgyLDE0ICszODIs
MTQgQEAgc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeQogICAgICAgICAg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IGludDUyT3ZlcmZsb3dQb2ludCA9ICgxbGwgPDwg
NTEpOwogICAgICAgICAgICAgICAgIGludDY0X3QgaW50NjRWYWwgPSBzdGF0aWNfY2FzdDxpbnQ2
NF90PihzdGQ6OmFicyhkb3VibGVWYWwpKTsKICAgICAgICAgICAgICAgICBpZiAoaW50NjRWYWwg
Pj0gaW50NTJPdmVyZmxvd1BvaW50KQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRP
YnNlcnZlZEludDUyT3ZlcmZsb3coKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS5zZXRP
YnNlcnZlZEludDUyT3ZlcmZsb3coKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0g
ZWxzZQotICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5vbk51bWJlcigpOworICAgICAgICBw
cm9maWxlLnNldE9ic2VydmVkTm9uTnVtYmVyKCk7CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgdXBk
YXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24q
LCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7IH0KK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRo
UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBKU1ZhbHVl
LCBKU1ZhbHVlLCBKU1ZhbHVlKSB7IH0KICNlbmRpZgogCiBTTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfdG9fbnVtYmVyKQpAQCAtNDA3LDYgKzQwNyw5IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9hZGQpCiAgICAgSlNWYWx1ZSB2MiA9IE9QX0MoMykuanNWYWx1ZSgpOwogICAgIEpTVmFsdWUg
cmVzdWx0OwogCisgICAgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUgPSBleGVjLT5jb2RlQmxv
Y2soKS0+YXJpdGhQcm9maWxlRm9yUEMocGMpOworICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhT
QW5kUkhTKHYxLCB2Mik7CisKICAgICBpZiAodjEuaXNTdHJpbmcoKSAmJiAhdjIuaXNPYmplY3Qo
KSkKICAgICAgICAgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgYXNTdHJpbmcodjEpLCB2Mi50b1N0
cmluZyhleGVjKSk7CiAgICAgZWxzZSBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigp
KQpAQCAtNDE1LDcgKzQxOCw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9hZGQpCiAgICAg
ICAgIHJlc3VsdCA9IGpzQWRkU2xvd0Nhc2UoZXhlYywgdjEsIHYyKTsKIAogICAgIFJFVFVSTl9X
SVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJp
bmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgdjEsIHYyKTsKKyAgICAgICAgdXBkYXRlQXJp
dGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCB2MSwgdjIpOwogICAg
IH0pOwogfQogCkBAIC00MzIsNyArNDM1LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211
bCkKICAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNOdW1iZXIoYSAqIGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQs
IHsKLSAgICAgICAgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMs
IHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5h
cnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKIH0KIApA
QCAtNDQ1LDcgKzQ0OCw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zdWIpCiAgICAgZG91
YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVt
YmVyKGEgLSBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAg
IHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChl
eGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1OCw3ICs0
NjEsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGl2KQogICAgIGRvdWJsZSBiID0gcmln
aHQudG9OdW1iZXIoZXhlYyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC8gYik7
CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICB1cGRhdGVSZXN1
bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7
CisgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJl
c3VsdCwgbGVmdCwgcmlnaHQpOwogICAgIH0pOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL29wLWFkZC1leGNlcHRpb25zLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3AtYWRkLWV4Y2VwdGlvbnMuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wLWFkZC1l
eGNlcHRpb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkgQEAKK2Z1bmN0aW9uIGFz
c2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCEiKTsK
K30KK25vSW5saW5lKGFzc2VydCk7CisKK2Z1bmN0aW9uIGYxKCkgeyByZXR1cm4gImYxIjsgfQor
bm9JbmxpbmUoZjEpOworZnVuY3Rpb24gZjIoKSB7IHJldHVybiAiZjIiOyB9Citub0lubGluZShm
Mik7CitmdW5jdGlvbiBmMygpIHsgcmV0dXJuICJmMyI7IH0KK25vSW5saW5lKGYzKTsKKworbGV0
IG9FeGNlcHRpb24gPSB7CisgICAgdmFsdWVPZigpIHsgdGhyb3cgbmV3IEVycm9yKCIiKTsgfQor
fTsKKworZnVuY3Rpb24gZm9vKGFyZzEsIGFyZzIpIHsKKyAgICBsZXQgYSA9IGYxKCk7CisgICAg
bGV0IGIgPSBmMigpOworICAgIGxldCBjID0gZjMoKTsKKyAgICB0cnkgeworICAgICAgICBhcmcx
ICsgYXJnMjsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgYXNzZXJ0KGFyZzEgPT09IG9FeGNl
cHRpb24pOworICAgICAgICBhc3NlcnQoYXJnMiA9PT0gb0V4Y2VwdGlvbik7CisgICAgfQorICAg
IGFzc2VydChhID09PSAiZjEiKTsKKyAgICBhc3NlcnQoYiA9PT0gImYyIik7CisgICAgYXNzZXJ0
KGMgPT09ICJmMyIpOworfQorbm9JbmxpbmUoZm9vKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDAwOyBpKyspIHsKKyAgICBmb28oaSwge30pOworICAgIGZvbyh7fSwgaSk7Cit9Citmb28ob0V4
Y2VwdGlvbiwgb0V4Y2VwdGlvbik7Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsK
KyAgICBmb28oaSwge30pOworICAgIGZvbyh7fSwgaSk7Cit9Citmb28ob0V4Y2VwdGlvbiwgb0V4
Y2VwdGlvbik7CisKKworZnVuY3Rpb24gaWRlbnQoeCkgeyByZXR1cm4geDsgfQorbm9JbmxpbmUo
aWRlbnQpOworCitmdW5jdGlvbiBiYXIoYXJnMSwgYXJnMikgeworICAgIGxldCBhID0gZjEoKTsK
KyAgICBsZXQgYiA9IGYyKCk7CisgICAgbGV0IGMgPSBmMygpOworICAgIGxldCB4ID0gaWRlbnQo
YXJnMSk7CisgICAgbGV0IHkgPSBpZGVudChhcmcyKTsKKworICAgIHRyeSB7CisgICAgICAgIGFy
ZzEgKyBhcmcyOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBhc3NlcnQoYXJnMSA9PT0gb0V4
Y2VwdGlvbik7CisgICAgICAgIGFzc2VydChhcmcyID09PSBvRXhjZXB0aW9uKTsKKyAgICAgICAg
YXNzZXJ0KHggPT09IG9FeGNlcHRpb24pOworICAgICAgICBhc3NlcnQoeSA9PT0gb0V4Y2VwdGlv
bik7CisgICAgfQorICAgIGFzc2VydChhID09PSAiZjEiKTsKKyAgICBhc3NlcnQoYiA9PT0gImYy
Iik7CisgICAgYXNzZXJ0KGMgPT09ICJmMyIpOworfQorbm9JbmxpbmUoYmFyKTsKKworZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICBiYXIoaSwge30pOworICAgIGJhcih7fSwg
aSk7Cit9CitiYXIob0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7Citmb3IgKGxldCBpID0gMDsgaSA8
IDEwMDAwOyBpKyspIHsKKyAgICBiYXIoaSwge30pOworICAgIGJhcih7fSwgaSk7Cit9CitiYXIo
b0V4Y2VwdGlvbiwgb0V4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDM1MzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MiBAQAorMjAxNi0wNy0yMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAg
ICAgICBvcF9hZGQvVmFsdWVBZGQgc2hvdWxkIGJlIGFuIElDIGluIGFsbCBKSVQgdGllcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTY0OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgKiBGb3J3YXJk
aW5nSGVhZGVycy9qaXQvSklUTWF0aElDRm9yd2FyZHMuaDogQWRkZWQuCisKIDIwMTYtMDctMjEg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbnVsbCBoYW5k
bGluZyBvZiBTVkdBbmdsZS9TVkdMZW5ndGgudmFsdWVBc1N0cmluZyBhdHRyaWJ1dGUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRNYXRoSUNGb3J3YXJkcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2ppdC9KSVRN
YXRoSUNGb3J3YXJkcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pJVE1hdGhJQ0ZvcndhcmRzX2gKKyNkZWZpbmUg
V2ViQ29yZV9GV0RfSklUTWF0aElDRm9yd2FyZHNfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pJVE1hdGhJQ0ZvcndhcmRzLmg+CisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>